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