WebInspector.Panel = function(name)
{
WebInspector.View.call(this);
this.element.addStyleClass("panel");
this.element.addStyleClass(name);
this._panelName = name;
this._shortcuts = {};
WebInspector.settings[this._sidebarWidthSettingName()] = WebInspector.settings.createSetting(this._sidebarWidthSettingName(), undefined);
}
WebInspector.Panel.counterRightMargin = 25;
WebInspector.Panel.prototype = {
get toolbarItem()
{
if (this._toolbarItem)
return this._toolbarItem;
this._toolbarItem = WebInspector.Toolbar.createPanelToolbarItem(this);
return this._toolbarItem;
},
get name()
{
return this._panelName;
},
show: function()
{
WebInspector.View.prototype.show.call(this, WebInspector.inspectorView.element);
},
wasShown: function()
{
var statusBarItems = this.statusBarItems;
if (statusBarItems) {
this._statusBarItemContainer = document.createElement("div");
for (var i = 0; i < statusBarItems.length; ++i)
this._statusBarItemContainer.appendChild(statusBarItems[i]);
document.getElementById("main-status-bar").appendChild(this._statusBarItemContainer);
}
if ("_toolbarItem" in this)
this._toolbarItem.addStyleClass("toggled-on");
this.focus();
},
willHide: function()
{
if (this._statusBarItemContainer && this._statusBarItemContainer.parentNode)
this._statusBarItemContainer.parentNode.removeChild(this._statusBarItemContainer);
delete this._statusBarItemContainer;
if ("_toolbarItem" in this)
this._toolbarItem.removeStyleClass("toggled-on");
},
reset: function()
{
this.searchCanceled();
},
defaultFocusedElement: function()
{
return this.sidebarTreeElement || this.element;
},
searchCanceled: function()
{
WebInspector.searchController.updateSearchMatchesCount(0, this);
},
performSearch: function(query)
{
this.searchCanceled();
},
jumpToNextSearchResult: function()
{
},
jumpToPreviousSearchResult: function()
{
},
createSplitView: function(parentElement, position, defaultWidth)
{
if (this.splitView)
return;
if (!parentElement)
parentElement = this.element;
this.splitView = new WebInspector.SplitView(position || WebInspector.SplitView.SidebarPosition.Left, this._sidebarWidthSettingName(), defaultWidth);
this.splitView.show(parentElement);
this.splitView.addEventListener(WebInspector.SplitView.EventTypes.Resized, this.sidebarResized.bind(this));
this.sidebarElement = this.splitView.sidebarElement;
},
createSplitViewWithSidebarTree: function(parentElement, position, defaultWidth)
{
if (this.splitView)
return;
this.createSplitView(parentElement, position);
this.sidebarTreeElement = document.createElement("ol");
this.sidebarTreeElement.className = "sidebar-tree";
this.splitView.sidebarElement.appendChild(this.sidebarTreeElement);
this.splitView.sidebarElement.addStyleClass("sidebar");
this.sidebarTree = new TreeOutline(this.sidebarTreeElement);
this.sidebarTree.panel = this;
},
_sidebarWidthSettingName: function()
{
return this._panelName + "SidebarWidth";
},
get toolbarItemLabel()
{
},
get statusBarItems()
{
},
sidebarResized: function(width)
{
},
statusBarResized: function()
{
},
canShowAnchorLocation: function(anchor)
{
return false;
},
showAnchorLocation: function(anchor)
{
},
elementsToRestoreScrollPositionsFor: function()
{
return [];
},
handleShortcut: function(event)
{
var shortcutKey = WebInspector.KeyboardShortcut.makeKeyFromEvent(event);
var handler = this._shortcuts[shortcutKey];
if (handler) {
handler(event);
event.handled = true;
}
},
registerShortcut: function(key, handler)
{
this._shortcuts[key] = handler;
},
unregisterShortcut: function(key)
{
delete this._shortcuts[key];
}
}
WebInspector.Panel.prototype.__proto__ = WebInspector.View.prototype;