1/* 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 3 * Copyright (C) 2013 Google Inc. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 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 * 14 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27/** 28 * @constructor 29 * @param {string} title 30 * @param {string} subtitle 31 */ 32WebInspector.Placard = function(title, subtitle) 33{ 34 this.element = document.createElementWithClass("div", "placard"); 35 this.element.placard = this; 36 37 this.subtitleElement = this.element.createChild("div", "subtitle"); 38 this.titleElement = this.element.createChild("div", "title"); 39 40 this.title = title; 41 this.subtitle = subtitle; 42 this.selected = false; 43} 44 45WebInspector.Placard.prototype = { 46 /** @return {string} */ 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 /** @return {string} */ 61 get subtitle() 62 { 63 return this._subtitle; 64 }, 65 66 set subtitle(x) 67 { 68 if (this._subtitle === x) 69 return; 70 this._subtitle = x; 71 this.subtitleElement.textContent = x; 72 }, 73 74 /** @return {boolean} */ 75 get selected() 76 { 77 return this._selected; 78 }, 79 80 set selected(x) 81 { 82 if (x) 83 this.select(); 84 else 85 this.deselect(); 86 }, 87 88 select: function() 89 { 90 if (this._selected) 91 return; 92 this._selected = true; 93 this.element.classList.add("selected"); 94 }, 95 96 deselect: function() 97 { 98 if (!this._selected) 99 return; 100 this._selected = false; 101 this.element.classList.remove("selected"); 102 }, 103 104 toggleSelected: function() 105 { 106 this.selected = !this.selected; 107 }, 108 109 discard: function() 110 { 111 } 112} 113