Chromium Code Reviews| Index: chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js |
| diff --git a/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js b/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js |
| index 0a94621a4649c57fd12bba04c0ecee2cdffe37d8..131fe48527877f66c44f3de83c3818db50d6daa2 100644 |
| --- a/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js |
| +++ b/chrome/browser/resources/bookmark_manager/js/bmm/bookmark_tree.js |
| @@ -15,20 +15,27 @@ cr.define('bmm', function() { |
| /** @const */ var TreeItem = cr.ui.TreeItem; |
| var treeLookup = {}; |
| + |
| + /** |
| + * This variable is fake and used only to declare exported bmm.tree name. |
| + * @suppress {suspiciousCode} |
|
Dan Beam
2014/09/23 02:46:55
same
Vitaly Pavlenko
2014/09/23 22:20:55
Done.
|
| + */ |
| var tree; |
| // Manager for persisting the expanded state. |
| - var expandedManager = { |
| + var expandedManager = /** @type {EventListener} */({ |
| /** |
| * A map of the collapsed IDs. |
| * @type {Object} |
| */ |
| - map: 'bookmarkTreeState' in localStorage ? |
| - JSON.parse(localStorage['bookmarkTreeState']) : {}, |
| + map: 'bookmarkTreeState' in window.localStorage ? |
| + /** @type {Object} */(JSON.parse( |
| + window.localStorage['bookmarkTreeState']) |
|
Dan Beam
2014/09/23 02:46:55
why can't we just make an alias, e.g.
var local
Vitaly Pavlenko
2014/09/23 22:20:55
Done.
|
| + ) : {}, |
| /** |
| * Set the collapsed state for an ID. |
| - * @param {string} The bookmark ID of the tree item that was expanded or |
| + * @param {string} id The bookmark ID of the tree item that was expanded or |
| * collapsed. |
| * @param {boolean} expanded Whether the tree item was expanded. |
| */ |
| @@ -80,10 +87,10 @@ cr.define('bmm', function() { |
| var map = this.map; |
| // Save in a timeout so that we can coalesce multiple changes. |
| this.timer = setTimeout(function() { |
| - localStorage['bookmarkTreeState'] = JSON.stringify(map); |
| + window.localStorage['bookmarkTreeState'] = JSON.stringify(map); |
| }, 100); |
| } |
| - }; |
| + }); |
| // Clean up once per session but wait until things settle down a bit. |
| setTimeout(expandedManager.cleanUp.bind(expandedManager), 1e4); |
| @@ -131,12 +138,17 @@ cr.define('bmm', function() { |
| * |
| * @param {!cr.ui.TreeItem} parent The parent tree item. |
| * @param {!cr.ui.TreeItem} treeItem The tree item to add. |
| - * @param {Function=} f A function which gets called after the item has been |
| - * added at the right index. |
| + * @param {Function=} opt_f A function which gets called after the item has |
| + * been added at the right index. |
| */ |
| function addTreeItem(parent, treeItem, opt_f) { |
| chrome.bookmarks.getChildren(parent.bookmarkNode.id, function(children) { |
| - var index = children.filter(bmm.isFolder).map(function(item) { |
| + var index = children.filter( |
| + /** |
| + * @type {function (BookmarkTreeNode, number, |
| + * Array.<(BookmarkTreeNode)>)} |
| + */(bmm.isFolder) |
| + ).map(function(item) { |
|
Dan Beam
2014/09/23 02:46:55
use a temporary variable to keep the code pretty
Vitaly Pavlenko
2014/09/23 22:20:55
Done.
|
| return item.id; |
| }).indexOf(treeItem.bookmarkNode.id); |
| parent.addAt(treeItem, index); |
| @@ -151,7 +163,7 @@ cr.define('bmm', function() { |
| * Creates a new bookmark list. |
| * @param {Object=} opt_propertyBag Optional properties. |
| * @constructor |
| - * @extends {HTMLButtonElement} |
| + * @extends {cr.ui.Tree} |
| */ |
| var BookmarkTree = cr.ui.define('tree'); |
| @@ -172,6 +184,10 @@ cr.define('bmm', function() { |
| treeItem.label = treeItem.bookmarkNode.title = changeInfo.title; |
| }, |
| + /** |
| + * @param {string} id |
| + * @param {ReorderInfo} reorderInfo |
| + */ |
| handleChildrenReordered: function(id, reorderInfo) { |
| var parentItem = treeLookup[id]; |
| // The tree only contains folders. |
| @@ -190,6 +206,10 @@ cr.define('bmm', function() { |
| } |
| }, |
| + /** |
| + * @param {string} id |
| + * @param {MoveInfo} moveInfo |
| + */ |
| handleMoved: function(id, moveInfo) { |
| var treeItem = treeLookup[id]; |
| if (treeItem) { |
| @@ -262,7 +282,8 @@ cr.define('bmm', function() { |
| hasDirectories = true; |
| var item = new BookmarkTreeItem(bookmarkNode); |
| parentTreeItem.add(item); |
|
Dan Beam
2014/09/23 02:46:55
var children = assert(bookmarkNode.children);
var
Vitaly Pavlenko
2014/09/23 22:20:55
Done.
|
| - var anyChildren = buildTreeItems(item, bookmarkNode.children); |
| + var anyChildren = buildTreeItems(item, |
| + assert(bookmarkNode.children)); |
| item.expanded = anyChildren && expandedManager.get(bookmarkNode.id); |
| } |
| } |