| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 /** | 125 /** |
| 126 * @constructor | 126 * @constructor |
| 127 * @extends {WebInspector.TabbedPane} | 127 * @extends {WebInspector.TabbedPane} |
| 128 */ | 128 */ |
| 129 WebInspector.SidebarTabbedPane = function() | 129 WebInspector.SidebarTabbedPane = function() |
| 130 { | 130 { |
| 131 WebInspector.TabbedPane.call(this); | 131 WebInspector.TabbedPane.call(this); |
| 132 this.element.classList.add("sidebar-pane-container", "sidebar-tabbed-pane"); | 132 this.element.classList.add("sidebar-pane-container", "sidebar-tabbed-pane"); |
| 133 } | 133 } |
| 134 | 134 |
| 135 WebInspector.SidebarTabbedPane._toolbarSymbol = Symbol("toolbar"); |
| 136 |
| 135 WebInspector.SidebarTabbedPane.prototype = { | 137 WebInspector.SidebarTabbedPane.prototype = { |
| 136 /** | 138 /** |
| 137 * @param {!WebInspector.View} pane | 139 * @param {!WebInspector.View} pane |
| 138 */ | 140 */ |
| 139 addPane: function(pane) | 141 addPane: function(pane) |
| 140 { | 142 { |
| 143 // Detach first to trigger toolbar cleanup. |
| 144 pane.detach(); |
| 145 |
| 141 var title = pane.title(); | 146 var title = pane.title(); |
| 142 | |
| 143 var toolbarItems = pane.toolbarItems(); | 147 var toolbarItems = pane.toolbarItems(); |
| 144 if (toolbarItems.length) { | 148 if (toolbarItems.length) { |
| 145 var toolbar = new WebInspector.Toolbar(""); | 149 var toolbar = new WebInspector.Toolbar(""); |
| 150 pane[WebInspector.SidebarTabbedPane._toolbarSymbol] = toolbar; |
| 146 pane.element.insertBefore(toolbar.element, pane.element.firstChild); | 151 pane.element.insertBefore(toolbar.element, pane.element.firstChild); |
| 147 for (var item of toolbarItems) | 152 for (var item of toolbarItems) |
| 148 toolbar.appendToolbarItem(item); | 153 toolbar.appendToolbarItem(item); |
| 149 } | 154 } |
| 150 this.appendTab(title, title, pane); | 155 this.appendTab(title, title, pane); |
| 151 pane.setRequestVisibleCallback(this._setPaneVisible.bind(this, pane)); | 156 pane.setRequestVisibleCallback(this._setPaneVisible.bind(this, pane)); |
| 152 pane.setRevealCallback(this.selectTab.bind(this, title)); | 157 pane.setRevealCallback(this.selectTab.bind(this, title)); |
| 153 }, | 158 }, |
| 154 | 159 |
| 155 /** | 160 /** |
| 161 * @param {!WebInspector.Widget} widget |
| 162 * @override |
| 163 */ |
| 164 childWasDetached: function(widget) |
| 165 { |
| 166 WebInspector.TabbedPane.prototype.childWasDetached.call(this, widget); |
| 167 |
| 168 var toolbar = widget[WebInspector.SidebarTabbedPane._toolbarSymbol]; |
| 169 if (toolbar) |
| 170 toolbar.element.remove(); |
| 171 }, |
| 172 |
| 173 /** |
| 156 * @param {!WebInspector.View} pane | 174 * @param {!WebInspector.View} pane |
| 157 * @param {boolean} visible | 175 * @param {boolean} visible |
| 158 */ | 176 */ |
| 159 _setPaneVisible: function(pane, visible) | 177 _setPaneVisible: function(pane, visible) |
| 160 { | 178 { |
| 161 var title = pane.title(); | 179 var title = pane.title(); |
| 162 if (visible) { | 180 if (visible) { |
| 163 if (!this.hasTab(title)) | 181 if (!this.hasTab(title)) |
| 164 this.appendTab(title, title, pane); | 182 this.appendTab(title, title, pane); |
| 165 } else { | 183 } else { |
| 166 if (this.hasTab(title)) | 184 if (this.hasTab(title)) |
| 167 this.closeTab(title); | 185 this.closeTab(title); |
| 168 } | 186 } |
| 169 }, | 187 }, |
| 170 | 188 |
| 171 __proto__: WebInspector.TabbedPane.prototype | 189 __proto__: WebInspector.TabbedPane.prototype |
| 172 } | 190 } |
| OLD | NEW |