• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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