home *** CD-ROM | disk | FTP | other *** search
/ Computer Active Guide 2009 July / CAG7.ISO / Internetas / SafariSetup.exe / AppleApplicationSupport.msi / WebKit.resources_inspector_SidebarPane.js < prev    next >
Encoding:
Text File  |  2010-06-03  |  4.1 KB  |  134 lines

  1. /*
  2.  * Copyright (C) 2007 Apple Inc.  All rights reserved.
  3.  *
  4.  * Redistribution and use in source and binary forms, with or without
  5.  * modification, are permitted provided that the following conditions
  6.  * are met:
  7.  *
  8.  * 1.  Redistributions of source code must retain the above copyright
  9.  *     notice, this list of conditions and the following disclaimer.
  10.  * 2.  Redistributions in binary form must reproduce the above copyright
  11.  *     notice, this list of conditions and the following disclaimer in the
  12.  *     documentation and/or other materials provided with the distribution.
  13.  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
  14.  *     its contributors may be used to endorse or promote products derived
  15.  *     from this software without specific prior written permission.
  16.  *
  17.  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
  18.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  19.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  20.  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
  21.  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  22.  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  23.  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  24.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26.  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27.  */
  28.  
  29. WebInspector.SidebarPane = function(title)
  30. {
  31.     this.element = document.createElement("div");
  32.     this.element.className = "pane";
  33.  
  34.     this.titleElement = document.createElement("div");
  35.     this.titleElement.className = "title";
  36.     this.titleElement.tabIndex = 0;
  37.     this.titleElement.addEventListener("click", this.toggleExpanded.bind(this), false);
  38.     this.titleElement.addEventListener("keydown", this._onTitleKeyDown.bind(this), false);
  39.  
  40.     this.bodyElement = document.createElement("div");
  41.     this.bodyElement.className = "body";
  42.  
  43.     this.element.appendChild(this.titleElement);
  44.     this.element.appendChild(this.bodyElement);
  45.  
  46.     this.title = title;
  47.     this.growbarVisible = false;
  48.     this.expanded = false;
  49. }
  50.  
  51. WebInspector.SidebarPane.prototype = {
  52.     get title()
  53.     {
  54.         return this._title;
  55.     },
  56.  
  57.     set title(x)
  58.     {
  59.         if (this._title === x)
  60.             return;
  61.         this._title = x;
  62.         this.titleElement.textContent = x;
  63.     },
  64.  
  65.     get growbarVisible()
  66.     {
  67.         return this._growbarVisible;
  68.     },
  69.  
  70.     set growbarVisible(x)
  71.     {
  72.         if (this._growbarVisible === x)
  73.             return;
  74.  
  75.         this._growbarVisible = x;
  76.  
  77.         if (x && !this._growbarElement) {
  78.             this._growbarElement = document.createElement("div");
  79.             this._growbarElement.className = "growbar";
  80.             this.element.appendChild(this._growbarElement);
  81.         } else if (!x && this._growbarElement) {
  82.             if (this._growbarElement.parentNode)
  83.                 this._growbarElement.parentNode(this._growbarElement);
  84.             delete this._growbarElement;
  85.         }
  86.     },
  87.  
  88.     get expanded()
  89.     {
  90.         return this._expanded;
  91.     },
  92.  
  93.     set expanded(x)
  94.     {
  95.         if (x)
  96.             this.expand();
  97.         else
  98.             this.collapse();
  99.     },
  100.  
  101.     expand: function()
  102.     {
  103.         if (this._expanded)
  104.             return;
  105.         this._expanded = true;
  106.         this.element.addStyleClass("expanded");
  107.         if (this.onexpand)
  108.             this.onexpand(this);
  109.     },
  110.  
  111.     collapse: function()
  112.     {
  113.         if (!this._expanded)
  114.             return;
  115.         this._expanded = false;
  116.         this.element.removeStyleClass("expanded");
  117.         if (this.oncollapse)
  118.             this.oncollapse(this);
  119.     },
  120.  
  121.     toggleExpanded: function()
  122.     {
  123.         this.expanded = !this.expanded;
  124.     },
  125.  
  126.     _onTitleKeyDown: function(event)
  127.     {
  128.         if (isEnterKey(event) || event.keyCode === WebInspector.KeyboardShortcut.KeyCodes.Space)
  129.             this.toggleExpanded();
  130.     }
  131. }
  132.  
  133. WebInspector.SidebarPane.prototype.__proto__ = WebInspector.Object.prototype;
  134.