You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ComponentDetail.java 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. /*
  2. @ITMillApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client;
  5. import java.util.HashMap;
  6. import com.google.gwt.core.client.JsArrayString;
  7. import com.vaadin.terminal.gwt.client.RenderInformation.FloatSize;
  8. import com.vaadin.terminal.gwt.client.RenderInformation.Size;
  9. class ComponentDetail {
  10. private Paintable component;
  11. private TooltipInfo tooltipInfo = new TooltipInfo();
  12. private String pid;
  13. public ComponentDetail(ApplicationConnection client, String pid,
  14. Paintable component) {
  15. this.component = component;
  16. this.pid = pid;
  17. }
  18. /**
  19. * Returns a TooltipInfo assosiated with Component. If element is given,
  20. * returns an additional TooltipInfo.
  21. *
  22. * @param key
  23. * @return the tooltipInfo
  24. */
  25. public TooltipInfo getTooltipInfo(Object key) {
  26. if (key == null) {
  27. return tooltipInfo;
  28. } else {
  29. if (additionalTooltips != null) {
  30. return additionalTooltips.get(key);
  31. } else {
  32. return null;
  33. }
  34. }
  35. }
  36. /**
  37. * @param tooltipInfo
  38. * the tooltipInfo to set
  39. */
  40. public void setTooltipInfo(TooltipInfo tooltipInfo) {
  41. this.tooltipInfo = tooltipInfo;
  42. }
  43. private FloatSize relativeSize;
  44. private Size offsetSize;
  45. private HashMap<Object, TooltipInfo> additionalTooltips;
  46. /**
  47. * @return the pid
  48. */
  49. String getPid() {
  50. return pid;
  51. }
  52. /**
  53. * @return the component
  54. */
  55. Paintable getComponent() {
  56. return component;
  57. }
  58. /**
  59. * @return the relativeSize
  60. */
  61. FloatSize getRelativeSize() {
  62. return relativeSize;
  63. }
  64. /**
  65. * @param relativeSize
  66. * the relativeSize to set
  67. */
  68. void setRelativeSize(FloatSize relativeSize) {
  69. this.relativeSize = relativeSize;
  70. }
  71. /**
  72. * @return the offsetSize
  73. */
  74. Size getOffsetSize() {
  75. return offsetSize;
  76. }
  77. /**
  78. * @param offsetSize
  79. * the offsetSize to set
  80. */
  81. void setOffsetSize(Size offsetSize) {
  82. this.offsetSize = offsetSize;
  83. }
  84. public void putAdditionalTooltip(Object key, TooltipInfo tooltip) {
  85. if (tooltip == null && additionalTooltips != null) {
  86. additionalTooltips.remove(key);
  87. } else {
  88. if (additionalTooltips == null) {
  89. additionalTooltips = new HashMap<Object, TooltipInfo>();
  90. }
  91. additionalTooltips.put(key, tooltip);
  92. }
  93. }
  94. private JsArrayString eventListeners;
  95. /**
  96. * Stores the event listeners registered on server-side and passed along in
  97. * the UIDL.
  98. *
  99. * @param componentUIDL
  100. * The UIDL for the component
  101. * @since 6.2
  102. */
  103. native void registerEventListenersFromUIDL(UIDL uidl)
  104. /*-{
  105. this.@com.vaadin.terminal.gwt.client.ComponentDetail::eventListeners = uidl[1].eventListeners;
  106. }-*/;
  107. /**
  108. * Checks if there is a registered server side listener for the event.
  109. *
  110. * @param eventIdentifier
  111. * The identifier for the event
  112. * @return true if at least one listener has been registered on server side
  113. * for the event identified by eventIdentifier.
  114. */
  115. public boolean hasEventListeners(String eventIdentifier) {
  116. if (eventListeners != null) {
  117. int l = eventListeners.length();
  118. for (int i = 0; i < l; i++) {
  119. if (eventListeners.get(i).equals(eventIdentifier)) {
  120. return true;
  121. }
  122. }
  123. }
  124. return false;
  125. }
  126. }