15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * are met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * its contributors may be used to endorse or promote products derived 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * from this software without specific prior written permission. 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @extends {WebInspector.View} 31591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * @implements {WebInspector.Searchable} 325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.Panel = function(name) 355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebInspector.View.call(this); 375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebInspector.panels[name] = this; 385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.element.addStyleClass("panel"); 405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.element.addStyleClass(name); 415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._panelName = name; 425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 43926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) this._shortcuts = /** !Object.<number, function(Event=):boolean> */ ({}); 445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebInspector.settings[this._sidebarWidthSettingName()] = WebInspector.settings.createSetting(this._sidebarWidthSettingName(), undefined); 465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Should by in sync with style declarations. 495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.Panel.counterRightMargin = 25; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 51591b958dee2cf159d33a0b931e6231072eaf38d5Ben MurdochWebInspector.Panel._minimalSearchQuerySize = 3; 52591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.Panel.prototype = { 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get name() 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._panelName; 575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) show: function() 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebInspector.View.prototype.show.call(this, WebInspector.inspectorView.panelsElement()); 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) wasShown: function() 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 66926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) var panelStatusBar = document.getElementById("panel-status-bar") 67926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) var drawerViewAnchor = document.getElementById("drawer-view-anchor"); 685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var statusBarItems = this.statusBarItems; 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (statusBarItems) { 705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._statusBarItemContainer = document.createElement("div"); 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) for (var i = 0; i < statusBarItems.length; ++i) 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._statusBarItemContainer.appendChild(statusBarItems[i]); 73926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) panelStatusBar.insertBefore(this._statusBarItemContainer, drawerViewAnchor); 74926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) } 75926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) var statusBarText = this.statusBarText(); 76926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (statusBarText) { 77926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) this._statusBarTextElement = statusBarText; 78926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) panelStatusBar.appendChild(statusBarText); 795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) } 805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.focus(); 825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) willHide: function() 855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 86591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch if (this._statusBarItemContainer) 87591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch this._statusBarItemContainer.remove(); 885c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) delete this._statusBarItemContainer; 89926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 90591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch if (this._statusBarTextElement) 91591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch this._statusBarTextElement.remove(); 92926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) delete this._statusBarTextElement; 935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) reset: function() 965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.searchCanceled(); 985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) defaultFocusedElement: function() 1015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this.sidebarTreeElement || this.element; 1035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) searchCanceled: function() 1065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebInspector.searchController.updateSearchMatchesCount(0, this); 1085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} query 112591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * @param {boolean} shouldJump 1135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 114591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch performSearch: function(query, shouldJump) 1155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Call searchCanceled since it will reset everything we need before doing a new search. 1175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.searchCanceled(); 1185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 120591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch /** 121591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * @return {number} 122591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch */ 123591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch minimalSearchQuerySize: function() 124591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch { 125591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch return WebInspector.Panel._minimalSearchQuerySize; 126591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch }, 127591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 1285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) jumpToNextSearchResult: function() 1295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) jumpToPreviousSearchResult: function() 1335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) canSearchAndReplace: function() 1405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return false; 1425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1435c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} text 1465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) replaceSelectionWith: function(text) 1485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} query 1535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} text 1545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) replaceAllWith: function(query, text) 1565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 1615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) canFilter: function() 1635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return false; 1655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 1685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} query 1695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 1705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) performFilter: function(query) 1715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 1735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 1745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 175591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * @return {boolean} 176591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch */ 177591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch canSetFooterElement: function() 178591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch { 179591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch return false; 180591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch }, 181591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 182591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch /** 183591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch * @param {?Element} element 184591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch */ 185591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch setFooterElement: function(element) 186591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch { 187591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch }, 188591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch 189591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch /** 1905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {Element=} parentElement 1915c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string=} position 1925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number=} defaultWidth 193926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {number=} defaultHeight 1945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 195926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) createSidebarView: function(parentElement, position, defaultWidth, defaultHeight) 1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 1975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.splitView) 1985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (!parentElement) 2015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) parentElement = this.element; 2025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 203926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) this.splitView = new WebInspector.SidebarView(position, this._sidebarWidthSettingName(), defaultWidth, defaultHeight); 2045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.splitView.show(parentElement); 2055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.splitView.addEventListener(WebInspector.SidebarView.EventTypes.Resized, this.sidebarResized.bind(this)); 2065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.sidebarElement = this.splitView.sidebarElement; 2085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {Element=} parentElement 2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string=} position 2135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {number=} defaultWidth 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) createSidebarViewWithTree: function(parentElement, position, defaultWidth) 2165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this.splitView) 2185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return; 2195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.createSidebarView(parentElement, position); 2215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.sidebarTreeElement = document.createElement("ol"); 2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.sidebarTreeElement.className = "sidebar-tree"; 2245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.splitView.sidebarElement.appendChild(this.sidebarTreeElement); 2255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.splitView.sidebarElement.addStyleClass("sidebar"); 2265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.sidebarTree = new TreeOutline(this.sidebarTreeElement); 2285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this.sidebarTree.panel = this; 2295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) _sidebarWidthSettingName: function() 2325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._panelName + "SidebarWidth"; 2345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Should be implemented by ancestors. 2375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) get statusBarItems() 2395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 242926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) /** 243926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {WebInspector.Event} event 244926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 245926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) sidebarResized: function(event) 2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2475c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) statusBarResized: function() 2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {Element} anchor 2555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {boolean} 2565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2575c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) canShowAnchorLocation: function(anchor) 2585c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2595c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return false; 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {Element} anchor 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) showAnchorLocation: function(anchor) 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) elementsToRestoreScrollPositionsFor: function() 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return []; 2725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 274926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) /** 275926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {KeyboardEvent} event 276926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) handleShortcut: function(event) 2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 2795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var shortcutKey = WebInspector.KeyboardShortcut.makeKeyFromEvent(event); 2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) var handler = this._shortcuts[shortcutKey]; 281926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) if (handler && handler(event)) 2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) event.handled = true; 2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 285926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) /** 286926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {!Array.<!WebInspector.KeyboardShortcut.Descriptor>} keys 287926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * @param {function(Event=):boolean} handler 288926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */ 289926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) registerShortcuts: function(keys, handler) 2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 291926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) for (var i = 0; i < keys.length; ++i) 292926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) this._shortcuts[keys[i].key] = handler; 2935c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 2945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) __proto__: WebInspector.View.prototype 2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 2975c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2985c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/** 2995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @constructor 3005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} name 3015c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string} title 3025c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string=} className 3035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {string=} scriptName 3045c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @param {WebInspector.Panel=} panel 3055c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3065c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.PanelDescriptor = function(name, title, className, scriptName, panel) 3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles){ 3085c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._name = name; 3095c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._title = title; 3105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._className = className; 3115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._scriptName = scriptName; 3125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._panel = panel; 3135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 3145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)WebInspector.PanelDescriptor.prototype = { 3165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 3185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) name: function() 3205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._name; 3225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {string} 3265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) title: function() 3285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._title; 3305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) }, 3315c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) /** 3335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * @return {WebInspector.Panel} 3345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 3355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) panel: function() 3365c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) { 3375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._panel) 3385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._panel; 3395c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) if (this._scriptName) 340926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) loadScript(this._scriptName); 3415c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) this._panel = new WebInspector[this._className]; 3425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) return this._panel; 343926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) }, 344926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) 345926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) registerShortcuts: function() {} 3465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)} 347