Placard.js 3.1 KB

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