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.

Image.java 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.ui;
  5. import com.vaadin.event.MouseEvents.ClickEvent;
  6. import com.vaadin.event.MouseEvents.ClickListener;
  7. import com.vaadin.server.Resource;
  8. import com.vaadin.shared.EventId;
  9. import com.vaadin.shared.MouseEventDetails;
  10. import com.vaadin.shared.ui.image.ImageServerRpc;
  11. import com.vaadin.shared.ui.image.ImageState;
  12. /**
  13. * Component for embedding images.
  14. *
  15. * @author Vaadin Ltd.
  16. * @version
  17. * @VERSION@
  18. * @since 7.0
  19. */
  20. @SuppressWarnings("serial")
  21. public class Image extends AbstractEmbedded {
  22. protected ImageServerRpc rpc = new ImageServerRpc() {
  23. @Override
  24. public void click(MouseEventDetails mouseDetails) {
  25. fireEvent(new ClickEvent(Image.this, mouseDetails));
  26. }
  27. };
  28. /**
  29. * Creates a new empty Image.
  30. */
  31. public Image() {
  32. registerRpc(rpc);
  33. }
  34. /**
  35. * Creates a new empty Image with caption.
  36. *
  37. * @param caption
  38. */
  39. public Image(String caption) {
  40. this();
  41. setCaption(caption);
  42. }
  43. /**
  44. * Creates a new Image whose contents is loaded from given resource. The
  45. * dimensions are assumed if possible. The type is guessed from resource.
  46. *
  47. * @param caption
  48. * @param source
  49. * the Source of the embedded object.
  50. */
  51. public Image(String caption, Resource source) {
  52. this(caption);
  53. setSource(source);
  54. }
  55. @Override
  56. protected ImageState getState() {
  57. return (ImageState) super.getState();
  58. }
  59. /**
  60. * @deprecated As of 7.0, use {@link #addClickListener(ClickListener)}
  61. * instead
  62. */
  63. @Deprecated
  64. public void addListener(ClickListener listener) {
  65. addClickListener(listener);
  66. }
  67. /**
  68. * Add a click listener to the component. The listener is called whenever
  69. * the user clicks inside the component. Depending on the content the event
  70. * may be blocked and in that case no event is fired.
  71. *
  72. * Use {@link #removeClickListener(ClickListener)} to remove the listener.
  73. *
  74. * @param listener
  75. * The listener to add
  76. */
  77. public void addClickListener(ClickListener listener) {
  78. addListener(EventId.CLICK_EVENT_IDENTIFIER, ClickEvent.class, listener,
  79. ClickListener.clickMethod);
  80. }
  81. /**
  82. * @deprecated As of 7.0, use {@link #removeClickListener(ClickListener)}
  83. * instead
  84. */
  85. @Deprecated
  86. public void removeListener(ClickListener listener) {
  87. removeClickListener(listener);
  88. }
  89. /**
  90. * Remove a click listener from the component. The listener should earlier
  91. * have been added using {@link #addClickListener(ClickListener)}.
  92. *
  93. * @param listener
  94. * The listener to remove
  95. */
  96. public void removeClickListener(ClickListener listener) {
  97. removeListener(EventId.CLICK_EVENT_IDENTIFIER, ClickEvent.class,
  98. listener);
  99. }
  100. }