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 isSelected: { | |
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': 'onSingleClick_', | |
29 'dblclick': 'onDoubleClick_', | |
30 }, | |
31 | |
22 /** | 32 /** |
23 * @param {Event} e | 33 * @param {Event} e |
24 * @private | 34 * @private |
25 */ | 35 */ |
26 onMenuButtonOpenTap_: function(e) { | 36 onMenuButtonOpenTap_: 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 onSingleClick_: function(e) { | |
calamity
2017/01/17 06:12:22
nit: Just onClick_
jiaxi
2017/01/20 04:51:08
Done.
| |
54 if (e.shiftKey) | |
55 this.fire('shift-select-multiple-items', { | |
56 item: this.item, | |
57 }); | |
58 else if (e.ctrlKey) | |
59 this.fire('ctrl-select-multiple-items', { | |
60 item: this.item, | |
61 }); | |
62 else | |
63 this.fire('select-single-item', { | |
64 item: this.item, | |
65 }); | |
calamity
2017/01/17 06:12:22
Braces go around all multiline clauses.
But in an
tsergeant
2017/01/17 06:16:53
Yeah, just fire IDs unless there's a good reason n
jiaxi
2017/01/20 04:51:08
Done.
| |
66 }, | |
67 | |
68 /** | |
69 * @param {Event} e | |
70 * @private | |
71 */ | |
72 onDoubleClick_: function(e) { | |
calamity
2017/01/17 06:12:22
onDblClick_
jiaxi
2017/01/20 04:51:08
Done.
| |
73 /* TODO(jiaxi): Add double click later. */ | |
74 }, | |
75 | |
76 /** | |
77 * @param {Event} e | |
78 * @private | |
79 */ | |
39 updateFavicon_: function(url) { | 80 updateFavicon_: function(url) { |
40 this.$.icon.style.backgroundImage = cr.icon.getFavicon(url); | 81 this.$.icon.style.backgroundImage = cr.icon.getFavicon(url); |
41 }, | 82 }, |
42 }); | 83 }); |
OLD | NEW |