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.Placard = function(title, subtitle)
     27 {
     28     this.element = document.createElement("div");
     29     this.element.className = "placard";
     30     this.element.placard = this;
     31 
     32     this.titleElement = document.createElement("div");
     33     this.titleElement.className = "title";
     34 
     35     this.subtitleElement = document.createElement("div");
     36     this.subtitleElement.className = "subtitle";
     37 
     38     this.element.appendChild(this.subtitleElement);
     39     this.element.appendChild(this.titleElement);
     40 
     41     this.title = title;
     42     this.subtitle = subtitle;
     43     this.selected = false;
     44 }
     45 
     46 WebInspector.Placard.prototype = {
     47     get title()
     48     {
     49         return this._title;
     50     },
     51 
     52     set title(x)
     53     {
     54         if (this._title === x)
     55             return;
     56         this._title = x;
     57         this.titleElement.textContent = x;
     58     },
     59 
     60     get subtitle()
     61     {
     62         return this._subtitle;
     63     },
     64 
     65     set subtitle(x)
     66     {
     67         if (this._subtitle === x)
     68             return;
     69         this._subtitle = x;
     70         this.subtitleElement.textContent = x;
     71     },
     72 
     73     get selected()
     74     {
     75         return this._selected;
     76     },
     77 
     78     set selected(x)
     79     {
     80         if (x)
     81             this.select();
     82         else
     83             this.deselect();
     84     },
     85 
     86     select: function()
     87     {
     88         if (this._selected)
     89             return;
     90         this._selected = true;
     91         this.element.addStyleClass("selected");
     92     },
     93 
     94     deselect: function()
     95     {
     96         if (!this._selected)
     97             return;
     98         this._selected = false;
     99         this.element.removeStyleClass("selected");
    100     },
    101 
    102     toggleSelected: function()
    103     {
    104         this.selected = !this.selected;
    105     }
    106 }
    107