Home | History | Annotate | Download | only in front-end
      1 /*
      2  * Copyright (C) 2008 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  * 1. Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  * 2. Redistributions in binary form must reproduce the above copyright
     10  *    notice, this list of conditions and the following disclaimer in the
     11  *    documentation and/or other materials provided with the distribution.
     12  *
     13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
     14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
     17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24  */
     25 
     26 WebInspector.View = function(element)
     27 {
     28     this.element = element || document.createElement("div");
     29     this._visible = false;
     30 }
     31 
     32 WebInspector.View.prototype = {
     33     get visible()
     34     {
     35         return this._visible;
     36     },
     37 
     38     set visible(x)
     39     {
     40         if (this._visible === x)
     41             return;
     42 
     43         if (x)
     44             this.show();
     45         else
     46             this.hide();
     47     },
     48 
     49     show: function(parentElement)
     50     {
     51         this._visible = true;
     52         if (parentElement && parentElement !== this.element.parentNode) {
     53             this.detach();
     54             parentElement.appendChild(this.element);
     55         }
     56         if (!this.element.parentNode && this.attach)
     57             this.attach();
     58         this.element.addStyleClass("visible");
     59     },
     60 
     61     hide: function()
     62     {
     63         this.element.removeStyleClass("visible");
     64         this._visible = false;
     65     },
     66 
     67     detach: function()
     68     {
     69         if (this.element.parentNode)
     70             this.element.parentNode.removeChild(this.element);
     71     }
     72 }
     73 
     74 WebInspector.View.prototype.__proto__ = WebInspector.Object.prototype;
     75