Chromium Code Reviews| 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(); |
| + } |
| +}); |