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.2KB

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