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

Unified Diff: chrome/browser/resources/pdf/elements/bookmarks-pane/bookmarks-pane.js

Issue 865033002: Implement a slide-in pane for bookmarks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pdf-pane
Patch Set: Document bookmarks.js Created 5 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/pdf/elements/bookmarks-pane/bookmarks-pane.js
diff --git a/chrome/browser/resources/pdf/elements/bookmarks-pane/bookmarks-pane.js b/chrome/browser/resources/pdf/elements/bookmarks-pane/bookmarks-pane.js
new file mode 100644
index 0000000000000000000000000000000000000000..4285f70ef3b5b530a65b412ccd7d8ad86b15664e
--- /dev/null
+++ b/chrome/browser/resources/pdf/elements/bookmarks-pane/bookmarks-pane.js
@@ -0,0 +1,49 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+Polymer('bookmarks-pane', {
+ // An array of top-level bookmarks, each containing a:
+ // - title
+ // - page (optional)
+ // - children (an array of bookmarks)
+ bookmarks: null,
+
+ // Inserts bookmark elements into the pane
raymes 2015/01/28 01:10:20 Take a look at the jsdoc in pdf.js and let's follo
Alexandre Carlton 2015/01/28 07:16:52 Done.
+ bookmarksChanged: function() {
+ for (var i = 0; i < this.bookmarks.length; i++) {
+ var bookmark = this.makeBookmark_(this.bookmarks[i]);
+ this.$.pane.appendChild(bookmark);
+ }
+ },
+
+ // Transforms bookmark object into an HTML element.
+ makeBookmark_: function(bookmark) {
Sam McNally 2015/01/28 03:04:30 It feels like a bookmark could be a custom element
+ var titleNode = document.createElement('paper-item');
+ titleNode.textContent = bookmark.title;
+ if (bookmark.hasOwnProperty('page')) {
+ titleNode.addEventListener('click', function() {
+ this.fire('changePage', {page: bookmark.page});
+ });
+ }
+ if (bookmark.children.length === 0) {
+ return titleNode;
+ } else {
+ var subNode = document.createElement('div');
raymes 2015/01/28 01:10:20 nit: can we call this childBookmarksNode
Alexandre Carlton 2015/01/28 07:16:52 Done.
Alexandre Carlton 2015/01/28 07:16:52 Done.
+ subNode.className += ' sub-bookmark';
+
+ for (var i = 0; i < bookmark.children.length; i++) {
+ var childNode = this.makeBookmark_(bookmark.children[i]);
+ subNode.appendChild(childNode);
+ }
+ var wrapperNode = document.createElement('div');
+ wrapperNode.appendChild(titleNode);
+ wrapperNode.appendChild(subNode);
+ return wrapperNode;
+ }
+ },
+
+ toggle: function() {
+ this.$.pane.toggle();
+ }
+});

Powered by Google App Engine
This is Rietveld 408576698