| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 /** | 5 /** |
| 6 * A TabView provides the ability to create tabs and switch between tabs. It's | 6 * A TabView provides the ability to create tabs and switch between tabs. It's |
| 7 * responsible for creating the DOM and managing the visibility of each tab. | 7 * responsible for creating the DOM and managing the visibility of each tab. |
| 8 * The first added tab is active by default and the others hidden. | 8 * The first added tab is active by default and the others hidden. |
| 9 */ | 9 */ |
| 10 var TabView = (function() { | 10 var TabView = (function() { |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 this.tabElements_[id].head); | 78 this.tabElements_[id].head); |
| 79 this.tabElements_[id].body.parentNode.removeChild( | 79 this.tabElements_[id].body.parentNode.removeChild( |
| 80 this.tabElements_[id].body); | 80 this.tabElements_[id].body); |
| 81 | 81 |
| 82 delete this.tabElements_[id]; | 82 delete this.tabElements_[id]; |
| 83 if (this.activeTabId_ == id) { | 83 if (this.activeTabId_ == id) { |
| 84 this.switchTab_(Object.keys(this.tabElements_)[0]); | 84 this.switchTab_(Object.keys(this.tabElements_)[0]); |
| 85 } | 85 } |
| 86 }, | 86 }, |
| 87 | 87 |
| 88 makeTabRemovable: function(id) { |
| 89 if (!this.tabElements_[id]) |
| 90 return; |
| 91 var close = document.createElement('a'); |
| 92 close.textContent = '[x]'; |
| 93 close.addEventListener('click', function() { |
| 94 this.removeTab(id); |
| 95 }.bind(this)); |
| 96 this.tabElements_[id].head.appendChild(close); |
| 97 }, |
| 98 |
| 88 /** | 99 /** |
| 89 * Switches the specified tab into view. | 100 * Switches the specified tab into view. |
| 90 * | 101 * |
| 91 * @param {string} activeId The id the of the tab that should be switched to | 102 * @param {string} activeId The id the of the tab that should be switched to |
| 92 * active state. | 103 * active state. |
| 93 * @private | 104 * @private |
| 94 */ | 105 */ |
| 95 switchTab_: function(activeId) { | 106 switchTab_: function(activeId) { |
| 96 if (this.activeTabId_ && this.tabElements_[this.activeTabId_]) { | 107 if (this.activeTabId_ && this.tabElements_[this.activeTabId_]) { |
| 97 this.tabElements_[this.activeTabId_].body.classList.remove( | 108 this.tabElements_[this.activeTabId_].body.classList.remove( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 110 | 121 |
| 111 /** Initializes the bar containing the tab heads. */ | 122 /** Initializes the bar containing the tab heads. */ |
| 112 initializeHeadBar_: function() { | 123 initializeHeadBar_: function() { |
| 113 this.headBar_ = document.createElement('div'); | 124 this.headBar_ = document.createElement('div'); |
| 114 this.root_.appendChild(this.headBar_); | 125 this.root_.appendChild(this.headBar_); |
| 115 this.headBar_.style.textAlign = 'center'; | 126 this.headBar_.style.textAlign = 'center'; |
| 116 }, | 127 }, |
| 117 }; | 128 }; |
| 118 return TabView; | 129 return TabView; |
| 119 })(); | 130 })(); |
| OLD | NEW |