OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 Polymer({ | 5 Polymer({ |
6 is: 'bookmarks-item', | 6 is: 'bookmarks-item', |
7 | 7 |
8 properties: { | 8 properties: { |
9 /** @type {BookmarkTreeNode} */ | 9 /** @type {BookmarkTreeNode} */ |
10 item: { | 10 item: { |
11 type: Object, | 11 type: Object, |
12 observer: 'onItemChanged_', | 12 observer: 'onItemChanged_', |
13 }, | 13 }, |
14 | 14 |
15 isFolder_: Boolean, | 15 isFolder_: Boolean, |
| 16 |
| 17 isSelectedItem: { |
| 18 type: Boolean, |
| 19 reflectToAttribute: true, |
| 20 }, |
16 }, | 21 }, |
17 | 22 |
18 observers: [ | 23 observers: [ |
19 'updateFavicon_(item.url)', | 24 'updateFavicon_(item.url)', |
20 ], | 25 ], |
21 | 26 |
| 27 listeners: { |
| 28 'click': 'onClick_', |
| 29 'dblclick': 'onDblClick_', |
| 30 }, |
| 31 |
22 /** | 32 /** |
23 * @param {Event} e | 33 * @param {Event} e |
24 * @private | 34 * @private |
25 */ | 35 */ |
26 onMenuButtonOpenTap_: function(e) { | 36 onMenuButtonOpenClick_: function(e) { |
| 37 e.stopPropagation(); |
27 this.fire('open-item-menu', { | 38 this.fire('open-item-menu', { |
28 target: e.target, | 39 target: e.target, |
29 item: this.item, | 40 item: this.item, |
30 }); | 41 }); |
31 }, | 42 }, |
32 | 43 |
33 /** @private */ | 44 /** @private */ |
34 onItemChanged_: function() { | 45 onItemChanged_: function() { |
35 this.isFolder_ = !(this.item.url); | 46 this.isFolder_ = !(this.item.url); |
36 }, | 47 }, |
37 | 48 |
38 /** @private */ | 49 /** |
| 50 * @param {Event} e |
| 51 * @private |
| 52 */ |
| 53 onClick_: function(e) { |
| 54 this.fire('select-item', { |
| 55 item: this.item, |
| 56 range: e.shiftKey, |
| 57 add: e.ctrlKey, |
| 58 }); |
| 59 }, |
| 60 |
| 61 /** |
| 62 * @param {Event} e |
| 63 * @private |
| 64 */ |
| 65 onDblClick_: function(e) { |
| 66 /* TODO(jiaxi): Add double click later. */ |
| 67 }, |
| 68 |
| 69 /** |
| 70 * @param {string} url |
| 71 * @private |
| 72 */ |
39 updateFavicon_: function(url) { | 73 updateFavicon_: function(url) { |
40 this.$.icon.style.backgroundImage = cr.icon.getFavicon(url); | 74 this.$.icon.style.backgroundImage = cr.icon.getFavicon(url); |
41 }, | 75 }, |
42 }); | 76 }); |
OLD | NEW |