org.zkoss.zul
Class Listitem

java.lang.Object
  extended by org.zkoss.zk.ui.AbstractComponent
      extended by org.zkoss.zk.ui.HtmlBasedComponent
          extended by org.zkoss.zul.impl.XulElement
              extended by org.zkoss.zul.Listitem
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, HtmlBasedComponent, Component, Scope, ComponentCtrl, Listitem, XulElement
Direct Known Subclasses:
Listgroup, Listgroupfoot

public class Listitem
extends XulElement
implements Listitem

A list item.

Default getZclass(): z-list-item.(since 3.5.0)

Author:
tomyeh
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent
HtmlBasedComponent.ExtraCtrl
 
Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent
AbstractComponent.Children
 
Field Summary
 
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
_zclass, RS_NO_DISPLAY, RS_NO_HEIGHT, RS_NO_WIDTH
 
Fields inherited from class org.zkoss.zk.ui.AbstractComponent
_visible
 
Fields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
 
Constructor Summary
Listitem()
           
Listitem(java.lang.String label)
           
Listitem(java.lang.String label, java.lang.Object value)
           
 
Method Summary
 java.lang.Object clone()
          Clones the component.
 java.lang.String getImage()
          Returns the image of the Listcell it contains.
 int getIndex()
          Returns the index of this item (aka., the order in the listbox).
 java.lang.String getLabel()
          Returns the label of the Listcell it contains, or null if no such cell.
 Listbox getListbox()
          Returns the list box that it belongs to.
 Listbox getListboxApi()
          Returns the list box that it belongs to.
 Listgroup getListgroup()
          Returns the listgroup that this item belongs to, or null.
 Listgroup getListgroupApi()
          Returns the listgroup that this item belongs to, or null.
 int getMaxlength()
          Returns the maximal length of each item's label.
 java.lang.String getOuterAttrs()
          Returns the exterior attributes for generating the enclosing HTML tag; never return null.
protected  java.lang.String getRealSclass()
          Returns the real style class that will be generated to the client (when HtmlBasedComponent.getOuterAttrs() is called).
protected  java.lang.String getRealStyle()
          Returns the real style that will be generated to client (when HtmlBasedComponent.getOuterAttrs() is called).
 java.lang.String getSrc()
          Deprecated. As of release 3.5.0, it is redundant since it is the same getImage().
 java.lang.Object getValue()
          Returns the value.
 java.lang.String getZclass()
          Returns the ZK Cascading Style class(es) for this component.
 boolean insertBefore(Component child, Component insertBefore)
          Inserts a child before the reference child.
 void invalidate()
          Invalidates this component by setting the dirty flag such that it will be redraw the whole content later.
 boolean isCheckable()
          Returns whether it is checkable.
 boolean isDisabled()
          Returns whether it is disabled.
 boolean isLoaded()
          Returns whether the content of this item is loaded.
 boolean isSelected()
          Returns whether it is selected.
 void onChildAdded(Component child)
          Default: does nothing.
 void onChildRemoved(Component child)
          Default: does nothing.
 void setCheckable(boolean checkable)
          Sets whether it is checkable.
 void setDisabled(boolean disabled)
          Sets whether it is disabled.
 void setImage(java.lang.String image)
          Sets the image of the Listcell it contains.
protected  void setIndex(int index)
           
 void setLabel(java.lang.String label)
          Sets the label of the Listcell it contains.
 void setParent(Component parent)
          Sets the parent component.
 void setSelected(boolean selected)
          Sets whether it is selected.
 void setSrc(java.lang.String src)
          Deprecated. As of release 3.5.0, it is redundant since it is the same getSrc().
 void setValue(java.lang.Object value)
          Sets the value.
 boolean setVisible(boolean visible)
          Sets whether this component is visible.
 
Methods inherited from class org.zkoss.zul.impl.XulElement
getAction, getActionAttrs, getAllOnClickAttrs, getContext, getCtrlKeys, getInnerAttrs, getPopup, getTooltip, setAction, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getAllOnClickAttrs, getDraggable, getDroppable, getHeight, getLeft, getMoldSclass, getRealStyleFlags, getSclass, getStyle, getTooltiptext, getTop, getWidth, getZindex, getZIndex, newExtraCtrl, redraw, setClass, setDraggable, setDroppable, setFocus, setHeight, setLeft, setMoldSclass, setSclass, setStyle, setTooltiptext, setTop, setWidth, setZclass, setZindex, setZIndex
 
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addEventHandler, addEventListener, addForward, addForward, addForward, addForward, addMoved, addSharedAnnotationMap, addSharedEventHandlerMap, appendAsapAttr, appendAsapAttr, appendChild, applyProperties, containsVariable, detach, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttributes, getAttributes, getChildren, getCommand, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getExtraCtrl, getFellow, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getMoldURI, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getRoot, getSpaceOwner, getUuid, getVariable, hasFellow, isAsapRequired, isChildable, isInvalidated, isListenerAvailable, isVisible, newChildren, onDrawNewChild, onPageAttached, onPageDetached, onWrongValue, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, response, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setComponentDefinition, setId, setMold, setPage, setPageBefore, setVariable, smartUpdate, smartUpdate, smartUpdate, smartUpdateDeferred, smartUpdateValues, toString, unsetVariable
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.zkoss.zul.impl.api.XulElement
getAction, getContext, getCtrlKeys, getPopup, getTooltip, setAction, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from interface org.zkoss.zk.ui.api.HtmlBasedComponent
focus, getHeight, getLeft, getSclass, getStyle, getTooltiptext, getTop, getWidth, getZindex, getZIndex, setDraggable, setDroppable, setFocus, setHeight, setLeft, setSclass, setStyle, setTooltiptext, setTop, setWidth, setZclass, setZindex, setZIndex
 
Methods inherited from interface org.zkoss.zk.ui.Component
addEventListener, addForward, addForward, addForward, addForward, appendChild, applyProperties, containsVariable, detach, getAttribute, getAttribute, getAttributes, getAttributes, getChildren, getDefinition, getDesktop, getFellow, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getRoot, getSpaceOwner, getUuid, getVariable, isChildable, isInvalidated, isListenerAvailable, isVisible, redraw, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, setAttribute, setAttribute, setId, setMold, setPage, setPageBefore, setVariable, unsetVariable
 

Constructor Detail

Listitem

public Listitem()

Listitem

public Listitem(java.lang.String label)

Listitem

public Listitem(java.lang.String label,
                java.lang.Object value)
Method Detail

getListbox

public Listbox getListbox()
Returns the list box that it belongs to.

It is the same as AbstractComponent.getParent().


getListboxApi

public Listbox getListboxApi()
Returns the list box that it belongs to.

It is the same as AbstractComponent.getParent().

Specified by:
getListboxApi in interface Listitem
Since:
3.5.2

getRealStyle

protected java.lang.String getRealStyle()
Description copied from class: HtmlBasedComponent
Returns the real style that will be generated to client (when HtmlBasedComponent.getOuterAttrs() is called).

Default: this method will append width, height and others to HtmlBasedComponent.setStyle(java.lang.String) (never null).

Use HtmlBasedComponent.getRealStyleFlags() to control what attributes to exclude.

Overrides:
getRealStyle in class HtmlBasedComponent

getListgroup

public Listgroup getListgroup()
Returns the listgroup that this item belongs to, or null.

Since:
3.5.0

getListgroupApi

public Listgroup getListgroupApi()
Returns the listgroup that this item belongs to, or null.

Specified by:
getListgroupApi in interface Listitem
Since:
3.5.2

getRealSclass

protected java.lang.String getRealSclass()
Description copied from class: HtmlBasedComponent
Returns the real style class that will be generated to the client (when HtmlBasedComponent.getOuterAttrs() is called).

Default: it simply returns the catenation of HtmlBasedComponent.getSclass() and HtmlBasedComponent.getZclass() (since 3.5.0).

Derived classes might override it to provide, say, dual style classes. For example,

final String sclass = getSclass();
return sclass != null ? sclass + " my-addon": "myaddon";

Overrides:
getRealSclass in class HtmlBasedComponent
See Also:
HtmlBasedComponent.getZclass()

getZclass

public java.lang.String getZclass()
Description copied from class: HtmlBasedComponent
Returns the ZK Cascading Style class(es) for this component. It usually depends on the implementation of the mold (@{link #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.

Specified by:
getZclass in interface HtmlBasedComponent
Overrides:
getZclass in class HtmlBasedComponent
See Also:
HtmlBasedComponent.getSclass(), HtmlBasedComponent.getRealSclass()

isCheckable

public boolean isCheckable()
Returns whether it is checkable.

Default: true.

Specified by:
isCheckable in interface Listitem
Since:
3.0.4

setCheckable

public void setCheckable(boolean checkable)
Sets whether it is checkable.

Default: true.

Specified by:
setCheckable in interface Listitem
Since:
3.0.4

getMaxlength

public int getMaxlength()
Returns the maximal length of each item's label. It is a shortcut of getParent().getMaxlength(); Thus, it works only if the listbox's mold is "select".

Specified by:
getMaxlength in interface Listitem

getValue

public java.lang.Object getValue()
Returns the value.

Default: null.

Note: the value is application dependent, you can place whatever value you want.

If you are using listitem with HTML Form (and with the name attribute), it is better to specify a String-typed value.

Specified by:
getValue in interface Listitem

setValue

public void setValue(java.lang.Object value)
Sets the value.

Specified by:
setValue in interface Listitem
Parameters:
value - the value.

Note: the value is application dependent, you can place whatever value you want.

If you are using listitem with HTML Form (and with the name attribute), it is better to specify a String-typed value.


isDisabled

public final boolean isDisabled()
Returns whether it is disabled.

Default: false.


setDisabled

public void setDisabled(boolean disabled)
Sets whether it is disabled.

Specified by:
setDisabled in interface Listitem

isSelected

public boolean isSelected()
Returns whether it is selected.

Default: false.

Specified by:
isSelected in interface Listitem

setSelected

public void setSelected(boolean selected)
Sets whether it is selected.

Specified by:
setSelected in interface Listitem

getLabel

public java.lang.String getLabel()
Returns the label of the Listcell it contains, or null if no such cell.

Specified by:
getLabel in interface Listitem

setLabel

public void setLabel(java.lang.String label)
Sets the label of the Listcell it contains.

If it is not created, we automatically create it.

Specified by:
setLabel in interface Listitem

getSrc

public java.lang.String getSrc()
Deprecated. As of release 3.5.0, it is redundant since it is the same getImage().


setSrc

public void setSrc(java.lang.String src)
Deprecated. As of release 3.5.0, it is redundant since it is the same getSrc().


getImage

public java.lang.String getImage()
Returns the image of the Listcell it contains.

Specified by:
getImage in interface Listitem

setImage

public void setImage(java.lang.String image)
Sets the image of the Listcell it contains.

If it is not created, we automatically create it.

Specified by:
setImage in interface Listitem

getIndex

public final int getIndex()
Returns the index of this item (aka., the order in the listbox).


isLoaded

public boolean isLoaded()
Returns whether the content of this item is loaded. It is meaningful only if getListbox() is live data, i.e., Listbox.getModel() is not null.

Specified by:
isLoaded in interface Listitem
Since:
2.4.0

setIndex

protected void setIndex(int index)

setVisible

public boolean setVisible(boolean visible)
Description copied from interface: Component
Sets whether this component is visible.

Specified by:
setVisible in interface Component
Overrides:
setVisible in class AbstractComponent
Returns:
the previous visibility

setParent

public void setParent(Component parent)
Description copied from interface: Component
Sets the parent component.

Note: Component.setParent(org.zkoss.zk.ui.Component) always calls back Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and/or Component.removeChild(org.zkoss.zk.ui.Component), while Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.removeChild(org.zkoss.zk.ui.Component) always calls back Component.setParent(org.zkoss.zk.ui.Component), if the parent is changed. Thus, you don't need to override both Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.setParent(org.zkoss.zk.ui.Component), if you want to customize the behavior.

Specified by:
setParent in interface Component
Overrides:
setParent in class AbstractComponent

insertBefore

public boolean insertBefore(Component child,
                            Component insertBefore)
Description copied from interface: Component
Inserts a child before the reference child.

You could use Component.setParent(org.zkoss.zk.ui.Component) or Component.appendChild(org.zkoss.zk.ui.Component) instead of this method, unless you want to control where to put the child.

Note: Component.setParent(org.zkoss.zk.ui.Component) always calls back Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and/or Component.removeChild(org.zkoss.zk.ui.Component), while Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.removeChild(org.zkoss.zk.ui.Component) always calls back Component.setParent(org.zkoss.zk.ui.Component), if the parent is changed. Thus, you don't need to override both Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.setParent(org.zkoss.zk.ui.Component), if you want to customize the behavior.

Specified by:
insertBefore in interface Component
Overrides:
insertBefore in class AbstractComponent
Parameters:
child - the new child to be inserted.
insertBefore - the child before which you want the new child being inserted. If null, the new child is append to the end.
Returns:
true if newChild is added successfully or moved; false if it already has the specified child and the order doesn't change.

invalidate

public void invalidate()
Description copied from interface: Component
Invalidates this component by setting the dirty flag such that it will be redraw the whole content later.

It can be called only in the request-processing and event-processing phases; excluding the redrawing phase.

Specified by:
invalidate in interface Component
Overrides:
invalidate in class AbstractComponent

onChildAdded

public void onChildAdded(Component child)
Description copied from class: AbstractComponent
Default: does nothing.

Specified by:
onChildAdded in interface ComponentCtrl
Overrides:
onChildAdded in class AbstractComponent
See Also:
ComponentCtrl.onChildAdded(org.zkoss.zk.ui.Component)

onChildRemoved

public void onChildRemoved(Component child)
Description copied from class: AbstractComponent
Default: does nothing.

Specified by:
onChildRemoved in interface ComponentCtrl
Overrides:
onChildRemoved in class AbstractComponent
See Also:
ComponentCtrl.onChildRemoved(org.zkoss.zk.ui.Component)

getOuterAttrs

public java.lang.String getOuterAttrs()
Description copied from class: HtmlBasedComponent
Returns the exterior attributes for generating the enclosing HTML tag; never return null.

Used only by component developers.

Default: Generates the tooltip text, style, sclass, draggable and droppable attribute if necessary. In other words, the corresponding attribute is generated if HtmlBasedComponent.getTooltiptext(), HtmlBasedComponent.getRealStyle(), HtmlBasedComponent.getSclass(), HtmlBasedComponent.getDraggable(), HtmlBasedComponent.getDroppable() are defined.

You have to call both HtmlBasedComponent.getOuterAttrs() and HtmlBasedComponent.getInnerAttrs() to generate complete attributes.

For simple components that all attributes are put on the outest HTML element, all you need is as follows.

<xx id="${self.uuid}"${self.outerAttrs}${self.innerAttrs}>

If you want to put attributes in a nested HTML element, you shall use the following pattern. Notice: if HtmlBasedComponent.getInnerAttrs() in a different tag, the tag must be named with "${self.uuid}!real".

<xx id="${self.uuid}"${self.outerAttrs}>
 <yy id="${self.uuid}!real"${self.innerAttrs}>...

Note: This class handles non-deferrable event listeners automatically. However, you have to invoke AbstractComponent.appendAsapAttr(java.lang.StringBuffer, java.lang.String) for each event the component handles in HtmlBasedComponent.getOuterAttrs() as follows.


        appendAsapAttr(sb, Events.ON_OPEN);
  appendAsapAttr(sb, Events.ON_CHANGE);

Theorectically, you could put any attributes in either HtmlBasedComponent.getInnerAttrs() or HtmlBasedComponent.getOuterAttrs(). However, zkau.js assumes all attributes are put at the outer one. If you want something different, you have to provide your own setAttr (refer to how checkbox is implemented).

Overrides:
getOuterAttrs in class XulElement

clone

public java.lang.Object clone()
Description copied from interface: Component
Clones the component. All of its children is cloned. Notice that the cloned component doesn't belong to any page, nor desktop. It doesn't have parent, either.

Specified by:
clone in interface Component
Overrides:
clone in class AbstractComponent


Copyright © 2005-2009 Potix Corporation. All Rights Reserved.