Index: Source/devtools/front_end/profiler/ProfilesPanel.js |
diff --git a/Source/devtools/front_end/profiler/ProfilesPanel.js b/Source/devtools/front_end/profiler/ProfilesPanel.js |
index 01d40dee977d0cb9758dacd8efa318616fb8f216..76540791d4c6d0b6b252057b5458375c95ed3d8d 100644 |
--- a/Source/devtools/front_end/profiler/ProfilesPanel.js |
+++ b/Source/devtools/front_end/profiler/ProfilesPanel.js |
@@ -80,7 +80,10 @@ WebInspector.ProfileType.prototype = { |
return null; |
}, |
- get statusBarItems() |
+ /** |
+ * @return {!Array.<!WebInspector.StatusBarItem>} |
+ */ |
+ statusBarItems: function() |
{ |
return []; |
}, |
@@ -453,25 +456,24 @@ WebInspector.ProfilesPanel = function() |
this.profileViews.classList.add("vbox"); |
mainView.element.appendChild(this.profileViews); |
- var statusBarContainer = createElementWithClass("div", "profiles-status-bar"); |
- mainView.element.insertBefore(statusBarContainer, mainView.element.firstChild); |
- this._statusBarElement = statusBarContainer.createChild("div", "status-bar"); |
+ this._statusBarElement = createElementWithClass("div", "profiles-status-bar"); |
+ mainView.element.insertBefore(this._statusBarElement, mainView.element.firstChild); |
this.sidebarElement().classList.add("profiles-sidebar-tree-box"); |
var statusBarContainerLeft = createElementWithClass("div", "profiles-status-bar"); |
this.sidebarElement().insertBefore(statusBarContainerLeft, this.sidebarElement().firstChild); |
- this._statusBarButtons = statusBarContainerLeft.createChild("div", "status-bar"); |
+ var statusBar = new WebInspector.StatusBar(statusBarContainerLeft); |
this.recordButton = new WebInspector.StatusBarButton("", "record-profile-status-bar-item"); |
this.recordButton.addEventListener("click", this.toggleRecordButton, this); |
- this._statusBarButtons.appendChild(this.recordButton.element); |
+ statusBar.appendStatusBarItem(this.recordButton); |
this.clearResultsButton = new WebInspector.StatusBarButton(WebInspector.UIString("Clear all profiles."), "clear-status-bar-item"); |
this.clearResultsButton.addEventListener("click", this._reset, this); |
- this._statusBarButtons.appendChild(this.clearResultsButton.element); |
+ statusBar.appendStatusBarItem(this.clearResultsButton); |
- this._profileTypeStatusBarItemsContainer = this._statusBarElement.createChild("div"); |
- this._profileViewStatusBarItemsContainer = this._statusBarElement.createChild("div"); |
+ this._profileTypeStatusBar = new WebInspector.StatusBar(this._statusBarElement); |
+ this._profileViewStatusBar = new WebInspector.StatusBar(this._statusBarElement); |
this._profileGroups = {}; |
this._launcherView = new WebInspector.MultiProfileLauncherView(this); |
@@ -499,7 +501,7 @@ WebInspector.ProfilesPanel.prototype = { |
*/ |
searchableView: function() |
{ |
- return this.visibleView.searchableView(); |
+ return this.visibleView ? this.visibleView.searchableView() : null; |
}, |
_createFileSelectorElement: function() |
@@ -617,12 +619,10 @@ WebInspector.ProfilesPanel.prototype = { |
_updateProfileTypeSpecificUI: function() |
{ |
this._updateRecordButton(this.recordButton.toggled()); |
- this._profileTypeStatusBarItemsContainer.removeChildren(); |
- var statusBarItems = this._selectedProfileType.statusBarItems; |
- if (statusBarItems) { |
- for (var i = 0; i < statusBarItems.length; ++i) |
- this._profileTypeStatusBarItemsContainer.appendChild(statusBarItems[i]); |
- } |
+ this._profileTypeStatusBar.removeStatusBarItems(); |
+ var statusBarItems = this._selectedProfileType.statusBarItems(); |
+ for (var i = 0; i < statusBarItems.length; ++i) |
+ this._profileTypeStatusBar.appendStatusBarItem(statusBarItems[i]); |
}, |
_reset: function() |
@@ -643,12 +643,12 @@ WebInspector.ProfilesPanel.prototype = { |
this._launcherView.detach(); |
this.profileViews.removeChildren(); |
- this._profileViewStatusBarItemsContainer.removeChildren(); |
+ this._profileViewStatusBar.removeStatusBarItems(); |
this.removeAllListeners(); |
this.recordButton.setVisible(true); |
- this._profileViewStatusBarItemsContainer.classList.remove("hidden"); |
+ this._profileViewStatusBar.element.classList.remove("hidden"); |
this.clearResultsButton.element.classList.remove("hidden"); |
this.profilesItemTreeElement.select(); |
this._showLauncherView(); |
@@ -657,7 +657,7 @@ WebInspector.ProfilesPanel.prototype = { |
_showLauncherView: function() |
{ |
this.closeVisibleView(); |
- this._profileViewStatusBarItemsContainer.removeChildren(); |
+ this._profileViewStatusBar.removeStatusBarItems(); |
this._launcherView.show(this.profileViews); |
this.visibleView = this._launcherView; |
}, |
@@ -800,12 +800,11 @@ WebInspector.ProfilesPanel.prototype = { |
var sidebarElement = profileTypeSection.sidebarElementForProfile(profile); |
sidebarElement.revealAndSelect(); |
- this._profileViewStatusBarItemsContainer.removeChildren(); |
+ this._profileViewStatusBar.removeStatusBarItems(); |
- var statusBarItems = view.statusBarItems; |
- if (statusBarItems) |
- for (var i = 0; i < statusBarItems.length; ++i) |
- this._profileViewStatusBarItemsContainer.appendChild(statusBarItems[i]); |
+ var statusBarItems = view.statusBarItems(); |
+ for (var i = 0; i < statusBarItems.length; ++i) |
+ this._profileViewStatusBar.appendStatusBarItem(statusBarItems[i]); |
return view; |
}, |