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 26WebInspector.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 46WebInspector.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.innerHTML = 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