Package org.zkoss.zul

## Class Comboitem

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.HtmlBasedComponent
    - - org.zkoss.zul.impl.XulElement
      - - org.zkoss.zul.impl.LabelElement
        - - org.zkoss.zul.impl.LabelImageElement
          - - org.zkoss.zul.Comboitem

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Disable`, `Scope`, `ComponentCtrl`

      public class Comboitem
      extends LabelImageElement
      implements Disable

  An item of a combo box.

  Non-XUL extension. Refer to `Combobox`.

  Default `getZclass()`: z-comboitem. (since 5.0.0)

  Author:
    tomyeh
  See Also:
    `Combobox`, Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.zkoss.zul.impl.LabelImageElement

      `LabelImageElement.ExtraCtrl`

    - ### 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
    --- | ---
    `Comboitem()` |
    `Comboitem​(java.lang.String label)` |
    `Comboitem​(java.lang.String label, java.lang.String image)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `beforeParentChanged​(Component parent)` | Default: If parent is null, execute the @Destroy method if any.
    `java.lang.Object` | `clone()` | Clones the component.
    `java.lang.String` | `getContent()` | Returns the embedded content (i.e., HTML tags) that is shown as part of the description.
    `java.lang.String` | `getDescription()` | Returns the description (never null).
    `int` | `getIndex()` | Returns the index of this Comboitem.
    `<T> T` | `getValue()` | Returns the value associated with this combo item.
    `java.lang.String` | `getZclass()` | Returns the ZK Cascading Style class for this component.
    `protected boolean` | `isChildable()` | No child is allowed.
    `boolean` | `isDisabled()` | Returns whether it is disabled.
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Renders the content of this component, excluding the enclosing tags and children.
    `void` | `setContent​(java.lang.String content)` | Sets the embedded content (i.e., HTML tags) that is shown as part of the description.
    `void` | `setDescription​(java.lang.String desc)` | Sets the description.
    `void` | `setDisabled​(boolean disabled)` | Sets whether it is disabled.
    `void` | `setLabel​(java.lang.String label)` | Sets the label.
    `<T> void` | `setValue​(T value)` | Associate the value with this combo item.

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

      `getExtraCtrl, getHoverImage, getHoverImageContent, getIconSclass, getIconSclasses, getIconTooltip, getIconTooltips, getImage, getImageContent, getPropertyAccess, isImageAssigned, setHoverImage, setHoverImageContent, setHoverImageContent, setIconSclass, setIconSclasses, setIconTooltip, setIconTooltips, setImage, setImageContent, setImageContent`

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

      `getLabel, renderCrawlable`

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

      `getContext, getCtrlKeys, getPopup, 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, 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, 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

    - #### Comboitem

          public Comboitem()

    - #### Comboitem

          public Comboitem​(java.lang.String label)

    - #### Comboitem

          public Comboitem​(java.lang.String label,
                           java.lang.String image)

  - ### Method Detail

    - #### setDisabled

          public void setDisabled​(boolean disabled)

      Sets whether it is disabled.
      Specified by:
        `setDisabled` in interface `Disable`
      Since:
        3.0.1

    - #### isDisabled

          public boolean isDisabled()

      Returns whether it is disabled.

      Default: false.

      Specified by:
        `isDisabled` in interface `Disable`
      Since:
        3.0.1

    - #### getDescription

          public java.lang.String getDescription()

      Returns the description (never null). The description is used to provide extra information such that users is easy to make a selection.

      Default: "".

      Deriving class can override it to return whatever it wants other than null.

    - #### setDescription

          public void setDescription​(java.lang.String desc)

      Sets the description.

    - #### getContent

          public java.lang.String getContent()

      Returns the embedded content (i.e., HTML tags) that is shown as part of the description.

      It is useful to show the description in more versatile way.

      Since:
        3.0.0
      See Also:
        `getDescription()`

    - #### setContent

          public void setContent​(java.lang.String content)

      Sets the embedded content (i.e., HTML tags) that is shown as part of the description.

      It is useful to show the description in more versatile way.

      Default: empty ("").

      Deriving class can override it to return whatever it wants other than null.

      ### Security Note

      Unlike other methods, the content assigned to this method is generated directly to the browser without escaping. Thus, it is better not to have something input by the user to avoid any XSS attach.

      Note: since 10.0.0, the content is sanitized by default to avoid XSS attack, and please don't use JavaScript in the content.

      Since:
        3.0.0
      See Also:
        `setDescription(java.lang.String)`

    - #### getValue

          public <T> T getValue()

      Returns the value associated with this combo item. The value is application dependent. It can be anything.

      It is usually used with `Combobox.getSelectedItem()`. For example, `combobox.getSelectedItem().getValue()`

      Since:
        2.4.0
      See Also:
        `Combobox.getSelectedItem()`, `setValue(T)`

    - #### setValue

          public <T> void setValue​(T value)

      Associate the value with this combo item. The value is application dependent. It can be anything.
      Since:
        2.4.0
      See Also:
        `Combobox.getSelectedItem()`, `getValue()`

    - #### getIndex

          public int getIndex()

      Returns the index of this Comboitem.
      Since:
        6.0.0

    - #### getZclass

          public java.lang.String getZclass()

      Description copied from class: `HtmlBasedComponent`
      Returns the ZK Cascading Style class for this component. It usually depends on the implementation of the mold (`AbstractComponent.getMold()`).

      Default: null (the default value depends on element).

      `HtmlBasedComponent.setZclass(java.lang.String)`) will completely replace the default style of a component. In other words, the default style of a component is associated with the default value of `HtmlBasedComponent.getZclass()`. Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, use `HtmlBasedComponent.setSclass(java.lang.String)` instead.

      Overrides:
        `getZclass` in class `HtmlBasedComponent`
      See Also:
        `HtmlBasedComponent.getSclass()`

    - #### setLabel

          public void setLabel​(java.lang.String label)

      Description copied from class: `LabelElement`
      Sets the label.

      If label is changed, the whole component is invalidate. Thus, you want to smart-update, you have to override this method.

      Overrides:
        `setLabel` in class `LabelElement`

    - #### 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 `LabelImageElement`
      Throws:
        `java.io.IOException`

    - #### beforeParentChanged

          public void beforeParentChanged​(Component parent)

      Description copied from class: `AbstractComponent`
      Default: If parent is null, execute the @Destroy method if any.
      Specified by:
        `beforeParentChanged` in interface `ComponentCtrl`
      Overrides:
        `beforeParentChanged` in class `AbstractComponent`
      Parameters:
        `parent` - the new parent. If null, it means detachment.
      See Also:
        `ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)`

    - #### isChildable

          protected boolean isChildable()

      No child is allowed.
      Overrides:
        `isChildable` in class `AbstractComponent`

    - #### clone

          public java.lang.Object clone()

      Description copied from interface: `Component`
      Clones the component. All of its children and descendants are cloned. Also, ID are preserved.
      Specified by:
        `clone` in interface `Component`
      Overrides:
        `clone` in class `LabelImageElement`
      Returns:
        the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.