Class WImage


public class WImage
extends WInteractWidget
A widget that displays an image.

The image may be specified either as a URL, or may be dynamically generated by a WResource.

You may listen to events by attaching event listeners to signals such as WInteractWidget.clicked(). Since mouse events pass the coordinates through a WMouseEvent object, it is possible to react to clicks in specific parts of the image. An alternative is to define interactive areas on the image using addArea(), which in addition allows to have customized tool tips for certain image areas (using WAbstractArea#setToolTip()).

WImage is an inline widget.

CSS

The widget corresponds to the HTML <img> tag and does not provide styling. It can be styled using inline or external CSS as appropriate.

See Also:
WResource, WPaintedWidget
  • Constructor Details

    • WImage

      public WImage​(WContainerWidget parent)
      Creates an empty image widget.
    • WImage

      public WImage()
      Creates an empty image widget.

      Calls this((WContainerWidget)null)

    • WImage

      public WImage​(WLink link, WContainerWidget parent)
      Creates an image widget with a given image link.

      The imageLink may link to a URL or resource.

    • WImage

      public WImage​(WLink link)
      Creates an image widget with a given image link.

      Calls this(link, (WContainerWidget)null)

    • WImage

      public WImage​(WLink link, java.lang.CharSequence altText, WContainerWidget parent)
      Creates an image widget with a given image link and alternate text.

      The imageLink may link to a URL or resource.

    • WImage

      public WImage​(WLink link, java.lang.CharSequence altText)
      Creates an image widget with a given image link and alternate text.

      Calls this(link, altText, (WContainerWidget)null)

    • WImage

      public WImage​(java.lang.String imageRef, WContainerWidget parent)
      Deprecated.
      Use WImage() instead.
      Creates an image widget with given image URL (deprecated).

    • WImage

      public WImage​(java.lang.String imageRef)
      Creates an image widget with given image URL (deprecated).

      Calls this(imageRef, (WContainerWidget)null)

    • WImage

      public WImage​(java.lang.String imageRef, java.lang.CharSequence altText, WContainerWidget parent)
      Deprecated.
      Use WImage() instead.
      Creates an image widget with given image URL and alternate text (deprecated).

    • WImage

      public WImage​(java.lang.String imageRef, java.lang.CharSequence altText)
      Creates an image widget with given image URL and alternate text (deprecated).

      Calls this(imageRef, altText, (WContainerWidget)null)

    • WImage

      public WImage​(WResource resource, java.lang.CharSequence altText, WContainerWidget parent)
      Deprecated.
      Use WImage() instead.
      Creates an image widget with given image resource and alternate text (deprecated).

    • WImage

      public WImage​(WResource resource, java.lang.CharSequence altText)
      Creates an image widget with given image resource and alternate text (deprecated).

      Calls this(resource, altText, (WContainerWidget)null)

  • Method Details

    • remove

      public void remove()
      Description copied from class: WWidget
      Destructor.

      Deletes a widget and all children (recursively). If the widget is contained in another widget, it is removed first.

      Overrides:
      remove in class WInteractWidget
      See Also:
      WContainerWidget.removeWidget(WWidget widget)
    • setAlternateText

      public void setAlternateText​(java.lang.CharSequence text)
      Sets an alternate text.

      The alternate text should provide a fallback for browsers that do not display an image. If no sensible fallback text can be provided, an empty text is preferred over nonsense.

      This should not be confused with WWebWidget.getToolTip() text, which provides additional information that is displayed when the mouse hovers over the image.

      The default alternate text is an empty text ("").

      See Also:
      getAlternateText()
    • getAlternateText

      public WString getAlternateText()
      Returns the alternate text.

      See Also:
      setAlternateText(CharSequence text)
    • setImageLink

      public void setImageLink​(WLink link)
      Sets the image link.

      The image may be specified as a URL or as a resource. A resource specifies application-dependent content, which may be used to generate an image on demand.

    • getImageLink

      public WLink getImageLink()
      Returns the image link.
    • setImageRef

      public void setImageRef​(java.lang.String ref)
      Deprecated.
      Use setImageLink() instead.
      Sets the image URL (deprecated).

    • getImageRef

      public java.lang.String getImageRef()
      Deprecated.
      Use getImageLink() instead.
      Returns the image URL (deprecated).

      When the image is specified as a resource, this returns the current resource URL.

    • setResource

      public void setResource​(WResource resource)
      Deprecated.
      Use setImageLink() instead.
      Sets the image resource (deprecated).

    • getResource

      public WResource getResource()
      Deprecated.
      Use setImageLink() instead.
      Returns the image resource (deprecated.

      Returns null if no image resource was set.

    • addArea

      public void addArea​(WAbstractArea area)
      Adds an interactive area.

      Adds the area which listens to events in a specific region of the image. Areas are organized in an indexed list, to which the given area is appended. When areas overlap, the area with the lowest index receives the event.

      Ownership of the area is transferred to the image.

      See Also:
      Note: Currently it is not possible to add a first area after the image has been rendered. If you want to use interactive areas you need to add one immediately.
    • insertArea

      public void insertArea​(int index, WAbstractArea area)
      Inserts an interactive area.

      Inserts the area which listens to events in the coresponding area of the image. Areas are organized in a list, and the area is inserted at index index. When areas overlap, the area with the lowest index receives the event.

      Ownership of the area is transferred to the image.

      See Also:
      Note: Currently it is not possible to add a first area after the image has been rendered. If you want to use interactive areas you need to add one immediately.
    • removeArea

      public void removeArea​(WAbstractArea area)
      Removes an interactive area.

      Removes the area from this widget, and also returns the ownership.

      See Also:
      addArea(WAbstractArea area)
    • getArea

      public WAbstractArea getArea​(int index)
      Returns the interactive area at the given index.

      Returns null if index was invalid.

      See Also:
      insertArea(int index, WAbstractArea area)
    • getAreas

      public java.util.List<WAbstractArea> getAreas()
      Returns the interactive areas set for this widget.

      See Also:
      addArea(WAbstractArea area)
    • imageLoaded

      public EventSignal imageLoaded()
      Event emitted when the image was loaded.
    • setTargetJS

      public void setTargetJS​(java.lang.String targetJS)
    • getUpdateAreasJS

      public java.lang.String getUpdateAreasJS()
    • getSetAreaCoordsJS

      public java.lang.String getSetAreaCoordsJS()
    • getDomChanges

      protected void getDomChanges​(java.util.List<DomElement> result, WApplication app)
      Description copied from class: WWebWidget
      Get DOM changes for this widget.

      This is an internal function, and should not be called directly, or be overridden!

      Overrides:
      getDomChanges in class WWebWidget
    • defineJavaScript

      protected void defineJavaScript()
    • render

      protected void render​(java.util.EnumSet<RenderFlag> flags)
      Description copied from class: WWidget
      Renders the widget.

      This function renders the widget (or an update for the widget), after this has been scheduled using scheduleRender().

      The default implementation will render the widget by serializing changes to JavaScript and HTML. You may want to reimplement this widget if you have been postponing some of the layout / rendering implementation until the latest moment possible. In that case you should make sure you call the base implementation however.

      Overrides:
      render in class WWebWidget
    • getUpdateAreaCoordsJSON

      protected java.lang.String getUpdateAreaCoordsJSON()