Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: chrome/browser/resources/md_bookmarks/store.js

Issue 2617943002: [MD Bookmarks] Edit Bookmarks. (Closed)
Patch Set: test fix Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/md_bookmarks/store.js
diff --git a/chrome/browser/resources/md_bookmarks/store.js b/chrome/browser/resources/md_bookmarks/store.js
index 18506dd4c5fb23e050954454e0357013d7f97005..bdbcb2ebd10de8400a8af2ac44628d861266aede 100644
--- a/chrome/browser/resources/md_bookmarks/store.js
+++ b/chrome/browser/resources/md_bookmarks/store.js
@@ -55,9 +55,14 @@ var BookmarksStore = Polymer({
chrome.bookmarks.getTree(function(results) {
this.setupStore_(results[0]);
}.bind(this));
+ // Attach bookmarks API listeners.
chrome.bookmarks.onRemoved.addListener(this.onBookmarkRemoved_.bind(this));
+ chrome.bookmarks.onChanged.addListener(this.onBookmarkChanged_.bind(this));
},
+////////////////////////////////////////////////////////////////////////////////
+// bookmarks-store, private:
+
/**
* @param {BookmarkTreeNode} rootNode
* @private
@@ -72,35 +77,6 @@ var BookmarksStore = Polymer({
},
/**
- * Selects the folder specified by the event and deselects the previously
- * selected folder.
- * @param {CustomEvent} e
- * @private
- */
- onSelectedFolderChanged_: function(e) {
- // Deselect the old folder if defined.
- if (this.selectedId)
- this.set(this.idToNodeMap_[this.selectedId].path + '.isSelected', false);
-
- var selectedId = /** @type {string} */ (e.detail);
- var newFolder = this.idToNodeMap_[selectedId];
- this.set(newFolder.path + '.isSelected', true);
- this.selectedId = selectedId;
- },
-
- /**
- * Handles events that open and close folders.
- * @param {CustomEvent} e
- * @private
- */
- onFolderOpenChanged_: function(e) {
- var folder = this.idToNodeMap_[e.detail.id];
- this.set(folder.path + '.isOpen', e.detail.open);
- if (!folder.isOpen && this.isAncestorOfSelected_(folder))
- this.fire('selected-folder-changed', folder.id);
- },
-
- /**
* @param {BookmarkTreeNode} folder
* @private
* @return {boolean}
@@ -117,6 +93,26 @@ var BookmarksStore = Polymer({
},
/**
+ * Remove all descendants of a given node from the map.
+ * @param {string} id
+ * @private
+ */
+ removeDescendantsFromMap_: function(id) {
+ var node = this.idToNodeMap_[id];
+ if (!node)
+ return;
+
+ if (node.children) {
+ for (var i = 0; i < node.children.length; i++)
+ this.removeDescendantsFromMap_(node.children[i].id);
+ }
+ delete this.idToNodeMap_[id];
+ },
+
+////////////////////////////////////////////////////////////////////////////////
+// bookmarks-store, bookmarks API event listeners:
+
+ /**
* Callback for when a bookmark node is removed.
* If a folder is selected or is an ancestor of a selected folder, the parent
* of the removed folder will be selected.
@@ -136,23 +132,53 @@ var BookmarksStore = Polymer({
},
/**
- * Remove all descendants of a given node from the map.
- * @param {string} id
+ * Called when the title of a bookmark changes.
+ * @param {string} id The id of changed bookmark node.
+ * @param {!Object} changeInfo
+ */
+ onBookmarkChanged_: function(id, changeInfo) {
+ if (changeInfo.title)
+ this.set(this.idToNodeMap_[id].path + '.title', changeInfo.title);
+ if (changeInfo.url)
+ this.set(this.idToNodeMap_[id].path + '.url', changeInfo.url);
+ },
+
+////////////////////////////////////////////////////////////////////////////////
+// bookmarks-store, bookmarks app event listeners:
+
+ /**
+ * Selects the folder specified by the event and deselects the previously
+ * selected folder.
+ * @param {CustomEvent} e
* @private
*/
- removeDescendantsFromMap_: function(id) {
- var node = this.idToNodeMap_[id];
- if (!node)
- return;
+ onSelectedFolderChanged_: function(e) {
+ // Deselect the old folder if defined.
+ if (this.selectedId)
+ this.set(this.idToNodeMap_[this.selectedId].path + '.isSelected', false);
- if (node.children) {
- for (var i = 0; i < node.children.length; i++)
- this.removeDescendantsFromMap_(node.children[i].id);
- }
- delete this.idToNodeMap_[id];
+ var selectedId = /** @type {string} */ (e.detail);
+ var newFolder = this.idToNodeMap_[selectedId];
+ this.set(newFolder.path + '.isSelected', true);
+ this.selectedId = selectedId;
+ },
+
+ /**
+ * Handles events that open and close folders.
+ * @param {CustomEvent} e
+ * @private
+ */
+ onFolderOpenChanged_: function(e) {
+ var folder = this.idToNodeMap_[e.detail.id];
+ this.set(folder.path + '.isOpen', e.detail.open);
+ if (!folder.isOpen && this.isAncestorOfSelected_(folder))
+ this.fire('selected-folder-changed', folder.id);
},
});
+////////////////////////////////////////////////////////////////////////////////
+// bookmarks-store, static methods:
+
/**
* Stores the path from the store to a node inside the node.
* @param {BookmarkTreeNode} bookmarkNode
« no previous file with comments | « chrome/browser/resources/md_bookmarks/shared_vars.html ('k') | chrome/browser/ui/webui/md_bookmarks/md_bookmarks_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698