Package org.zkoss.zul

## Class Image

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.HtmlBasedComponent
    - - org.zkoss.zul.impl.XulElement
      - - org.zkoss.zul.Image

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Scope`, `ComponentCtrl`
  Direct Known Subclasses:
    `Captcha`, `Imagemap`

      public class Image
      extends XulElement

  An image.

  [Since 6.0.0]

  To turn on the preload image function for this component, you have to specify the component's attribute map with key "org.zkoss.zul.image.preload" to true. That is, for example, if in a zul file, you shall specify <custom-attributes> of the component like this:

       <image ...>
           <custom-attributes org.zkoss.zul.image.preload='true'/>
       </image>

  Or specify it onto the root component. For example,

       <window ...>
           <custom-attributes org.zkoss.zul.image.preload="true"/>
           <image .../>
       </window>

  [Since 6.5.2]

  Preload image function is also configurable from zk.xml by setting library properties. For example,

       <library-property/>
           <name>org.zkoss.zul.image.preload</name/>
           <value>true</value/>
       </library-property/>

  See also how to fix the alpha transparency problem of PNG files found in IE6?

  Author:
    tomyeh
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `Image.ExtraCtrl` | A utility class to implement `HtmlBasedComponent.getExtraCtrl()`.

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

      `AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo`

  - ### Field Summary

    - ### Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `_zclass`

    - ### Fields inherited from interface org.zkoss.zk.ui.Component

      `APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE`

    - ### Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

      `AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Image()` |
    `Image​(java.lang.String src)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Image` | `getContent()` | Returns the content set by `setContent(org.zkoss.image.Image)`.
    `java.lang.Object` | `getExtraCtrl()` | Returns the client control for this component.
    `java.lang.String` | `getHover()` | Returns the URI of the hover image.
    `java.lang.String` | `getSrc()` | Returns the source URI of the image.
    `protected boolean` | `isChildable()` | Default: not childable.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `setContent​(java.awt.image.RenderedImage image)` | Sets the content directly with the rendered image.
    `void` | `setContent​(Image image)` | Sets the content directly.
    `void` | `setHover​(java.lang.String src)` | Sets the image URI.
    `void` | `setHoverContent​(java.awt.image.RenderedImage image)` | Sets the content of the hover image directly with the rendered image.
    `void` | `setHoverContent​(Image image)` | Sets the content of the hover image directly.
    `void` | `setSrc​(java.lang.String src)` | Sets the source URI of the image.

    - ### Methods inherited from class org.zkoss.zul.impl.XulElement

      `clone, getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes`

    - ### Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

      `addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZclass, getZindex, getZIndex, removeSclass, removeSclass, service, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly`

    - ### Methods inherited from class org.zkoss.zk.ui.AbstractComponent

      `addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Image

          public Image()

    - #### Image

          public Image​(java.lang.String src)

  - ### Method Detail

    - #### getSrc

          public java.lang.String getSrc()

      Returns the source URI of the image.

      Default: null.

    - #### setSrc

          public void setSrc​(java.lang.String src)

      Sets the source URI of the image.

      Calling this method implies setContent(null). In other words, the last invocation of `setSrc(java.lang.String)` overrides the previous `setContent(org.zkoss.image.Image)`, if any.

      Parameters:
        `src` - the URI of the image source
      See Also:
        `setContent(org.zkoss.image.Image)`, `setContent(RenderedImage)`

    - #### setContent

          public void setContent​(Image image)

      Sets the content directly.

      Default: null.

      Calling this method implies setSrc(null). In other words, the last invocation of `setContent(org.zkoss.image.Image)` overrides the previous `setSrc(java.lang.String)`, if any.

      Parameters:
        `image` - the image to display.
      See Also:
        `setSrc(java.lang.String)`

    - #### setContent

          public void setContent​(java.awt.image.RenderedImage image)

      Sets the content directly with the rendered image. It actually encodes the rendered image to an PNG image (`Image`) with `Images.encode(java.lang.String, java.awt.image.RenderedImage, float, boolean)`, and then invoke `setContent(org.zkoss.image.Image)`.

      If you want more control such as different format, quality, and naming, you can use `Images` directly.

      Since:
        3.0.7

    - #### getContent

          public Image getContent()

      Returns the content set by `setContent(org.zkoss.image.Image)`.

      Note: it won't fetch what is set thru by `setSrc(java.lang.String)`. It simply returns what is passed to `setContent(org.zkoss.image.Image)`.

    - #### getHover

          public java.lang.String getHover()

      Returns the URI of the hover image. The hover image is used when the mouse is moving over this component.

      Default: null.

      Since:
        3.5.0

    - #### setHover

          public void setHover​(java.lang.String src)

      Sets the image URI. The hover image is used when the mouse is moving over this component.

      Calling this method implies setHoverContent(null). In other words, the last invocation of `setHover(java.lang.String)` overrides the previous `setHoverContent(org.zkoss.image.Image)`, if any.

      Since:
        3.5.0
      See Also:
        `setHoverContent(org.zkoss.image.Image)`, `setHoverContent(RenderedImage)`

    - #### setHoverContent

          public void setHoverContent​(Image image)

      Sets the content of the hover image directly. The hover image is used when the mouse is moving over this component.

      Default: null.

      Calling this method implies setHover(null). In other words, the last invocation of `setHoverContent(org.zkoss.image.Image)` overrides the previous `setHover(java.lang.String)`, if any.

      Parameters:
        `image` - the image to display.
      Since:
        3.5.0
      See Also:
        `setHover(java.lang.String)`

    - #### setHoverContent

          public void setHoverContent​(java.awt.image.RenderedImage image)

      Sets the content of the hover image directly with the rendered image. The hover image is used when the mouse is moving over this component.

      It actually encodes the rendered image to an PNG image (`Image`) with `Images.encode(java.lang.String, java.awt.image.RenderedImage, float, boolean)`, and then invoke `setHoverContent(org.zkoss.image.Image)`.

      If you want more control such as different format, quality, and naming, you can use `Images` directly.

      Since:
        3.5.0

    - #### renderProperties

          protected void renderProperties​(ContentRenderer renderer)
                                   throws java.io.IOException

      Description copied from class: `HtmlBasedComponent`
      Renders the content of this component, excluding the enclosing tags and children.

      See also ZK Client-side Reference: Property Rendering

      Overrides:
        `renderProperties` in class `XulElement`
      Throws:
        `java.io.IOException`

    - #### isChildable

          protected boolean isChildable()

      Default: not childable.
      Overrides:
        `isChildable` in class `AbstractComponent`

    - #### getExtraCtrl

          public java.lang.Object getExtraCtrl()

      Description copied from class: `HtmlBasedComponent`
      Returns the client control for this component. It is used only by component developers.

      Default: creates an instance of `HtmlBasedComponent.ExtraCtrl`.

      Specified by:
        `getExtraCtrl` in interface `ComponentCtrl`
      Overrides:
        `getExtraCtrl` in class `HtmlBasedComponent`
      Returns:
        null if no special handling required. If the component requires some special controls, it could return an object that implements one or several interfaces in the org.zkoss.zk.ui.ext.render package. For example, `Cropper`.
      See Also:
        `ComponentCtrl.getExtraCtrl()`