Class Listitem
- java.lang.Object
-
- org.zkoss.zk.ui.AbstractComponent
-
- org.zkoss.zk.ui.HtmlBasedComponent
-
- org.zkoss.zul.impl.XulElement
-
- org.zkoss.zul.Listitem
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,Component,Scope,ComponentCtrl
- Direct Known Subclasses:
Listgroup,Listgroupfoot
public class Listitem extends XulElement
A list item.Default
getZclass(): z-listitem (since 5.0.0)- Author:
- tomyeh
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classListitem.ExtraCtrlA utility class to implementHtmlBasedComponent.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_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
-
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected voidaddMoved(Component oldparent, Page oldpg, Page newpg)Called when this component is moved from the specified parent and/or page to the new page.voidbeforeChildAdded(Component child, Component refChild)Default: does nothing.voidbeforeParentChanged(Component parent)Default: If parent is null, execute the @Destroy method if any.java.lang.Objectclone()Clones the component.java.lang.ObjectgetExtraCtrl()Returns the client control for this component.java.lang.StringgetImage()Returns the image of theListcellit contains.intgetIndex()Returns the index of this item (a.k.a., the order in the listbox).java.lang.StringgetLabel()Returns the label of theListcellit contains, or null if no such cell.ListboxgetListbox()Returns the list box that it belongs to.ListgroupgetListgroup()Returns the listgroup that this item belongs to, or null.intgetMaxlength()Returns the maximal length of each item's label.java.lang.StringgetMold()Returns the mold used to render this component.PropertyAccessgetPropertyAccess(java.lang.String prop)Returns the corresponding property access object from the given property name, if any.<T> TgetValue()Returns the value.java.lang.StringgetZclass()Returns the ZK Cascading Style class for this component.booleanisDisabled()Returns whether it is disabled.booleanisLoaded()Returns whether the content of this item is loaded.booleanisSelectable()Returns whether it is selectable.booleanisSelected()Returns whether it is selected.protected voidrenderProperties(ContentRenderer renderer)Renders the content of this component, excluding the enclosing tags and children.voidsetDisabled(boolean disabled)Sets whether it is disabled.voidsetHflex(java.lang.String flex)Deprecated.as of release 6.0.0.voidsetImage(java.lang.String image)Sets the image of theListcellit contains.protected voidsetIndex(int index)voidsetLabel(java.lang.String label)Sets the label of theListcellit contains.voidsetSelectable(boolean selectable)Sets whether it is selectable.voidsetSelected(boolean selected)Sets whether it is selected.<T> voidsetValue(T value)Sets the value.booleansetVisible(boolean visible)Sets whether this component is visible.voidsetWidth(java.lang.String width)Deprecated.as of release 6.0.0.protected voidsmartUpdate(java.lang.String name, boolean value)A special smart update to update a value in boolean.protected voidsmartUpdate(java.lang.String name, int value)A special smart update to update a value in int.protected voidsmartUpdate(java.lang.String name, java.lang.Object value)Smart-updates a property of the peer widget associated with the component, running at the client, with the given value.-
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, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, 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, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, 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, 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, isChildable, 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, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
-
-
-
-
Method Detail
-
getListbox
public Listbox getListbox()
Returns the list box that it belongs to.It is the same as
AbstractComponent.getParent().
-
getListgroup
public Listgroup getListgroup()
Returns the listgroup that this item belongs to, or null.- Since:
- 3.5.0
-
getZclass
public java.lang.String getZclass()
Description copied from class:HtmlBasedComponentReturns 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 ofHtmlBasedComponent.getZclass(). Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, useHtmlBasedComponent.setSclass(java.lang.String)instead.- Overrides:
getZclassin classHtmlBasedComponent- See Also:
HtmlBasedComponent.getSclass()
-
isSelectable
public boolean isSelectable()
Returns whether it is selectable.Default: true.
- Since:
- 8.0.0
-
setSelectable
public void setSelectable(boolean selectable)
Sets whether it is selectable.If the listbox is in a checkmark mode, the selectable state will affect the checkable icon to display or not.
Default: true.
- Parameters:
selectable-
-
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".
-
getValue
public <T> T 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.
-
setValue
public <T> void setValue(T value)
Sets the value.- 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 boolean isDisabled()
Returns whether it is disabled.Default: false.
-
setDisabled
public void setDisabled(boolean disabled)
Sets whether it is disabled.
-
isSelected
public boolean isSelected()
Returns whether it is selected.Default: false.
-
setSelected
public void setSelected(boolean selected)
Sets whether it is selected.
-
getLabel
public java.lang.String getLabel()
Returns the label of theListcellit contains, or null if no such cell.
-
setLabel
public void setLabel(java.lang.String label)
Sets the label of theListcellit contains.If it is not created, we automatically create it.
-
getImage
public java.lang.String getImage()
Returns the image of theListcellit contains.
-
setImage
public void setImage(java.lang.String image)
Sets the image of theListcellit contains.If it is not created, we automatically create it.
-
getIndex
public int getIndex()
Returns the index of this item (a.k.a., the order in the listbox).
-
isLoaded
public boolean isLoaded()
Returns whether the content of this item is loaded. It is meaningful only ifgetListbox()is live data, i.e.,Listbox.getModel()is not null.- Since:
- 2.4.0
-
setIndex
protected void setIndex(int index)
-
setVisible
public boolean setVisible(boolean visible)
Description copied from interface:ComponentSets whether this component is visible. A component is visible by default. Both visible and invisible components are rendered in a browser's DOM. But an invisible component's DOM elements with CSSdisplay:none. Since a DOM element will inherit its parent's CSS rules, a component is visible only if all of its parents are also visible.
To remove a component's DOM elements, useComponent.detach().- Specified by:
setVisiblein interfaceComponent- Overrides:
setVisiblein classAbstractComponent- Returns:
- the previous visibility
-
smartUpdate
protected void smartUpdate(java.lang.String name, java.lang.Object value)Description copied from class:AbstractComponentSmart-updates a property of the peer widget associated with the component, running at the client, with the given value.The second invocation with the same property will replace the previous call. In other words, the same property will be set only once in each execution. If you prefer to send both updates to the client, use
AbstractComponent.smartUpdate(String, Object, boolean)instead.This method has no effect if
AbstractComponent.invalidate()is ever invoked (in the same execution), sinceAbstractComponent.invalidate()assumes the whole content shall be redrawn and all smart updates to this components can be ignored,Once
AbstractComponent.invalidate()is called, all invocations toAbstractComponent.smartUpdate(String, Object)will then be ignored, andAbstractComponent.redraw(java.io.Writer)will be invoked later.It can be called only in the request-processing and event-processing phases; excluding the redrawing phase.
There are two ways to draw a component, one is to invoke
Component.invalidate(), and the other isAbstractComponent.smartUpdate(String, Object). WhileComponent.invalidate()causes the whole content to redraw,AbstractComponent.smartUpdate(String, Object)let component developer control which part to redraw.- Overrides:
smartUpdatein classAbstractComponentvalue- the new value. If it isDeferredValue, the value will be retrieved (by callingDeferredValue.getValue()) in the rendering phase. It is useful if the value can not be determined now.For some old application servers (example, Websphere 5.1),
Execution.encodeURL(java.lang.String)cannot be called in the event processing thread. So, the developers have to useDeferredValueor disable the use of the event processing thread (by use ofdisable-event-threadin zk.xml).If you want to generate the JavaScript code directly (i.e., the value is a valid JavaScript snippet), you can use
JavaScriptValue. Notice that the JavaScript code will be evaluated before assigning it to the widget.If the value is a Date object, a special pattern will be generated (a.k.a., marshaling) to ensure it can be unmarshalled back correctly at the client. Notice that it is marshalled to a string based on
TimeZones.getCurrent(), and then unmarshalled back at the client. In other words, if the client is in different time-zone, the value returned by getTime() might be different. However, the value will remain the same if the client marshalled the Date object back. In other words, it assumes the browser's time zone from enduser's perspective (not really browser's setting) shall be the same asTimeZones.getCurrent().If the value is a component, a special pattern will be generated to ensure it can be unmarshalled back correctly at the client.
In addition, the value can be any kind of objects that the client accepts (marshaled by JSON) (see also
JSONAware).- See Also:
AbstractComponent.updateByClient(java.lang.String, java.lang.Object),AbstractComponent.smartUpdate(String, Object, boolean)
-
smartUpdate
protected void smartUpdate(java.lang.String name, boolean value)Description copied from class:AbstractComponentA special smart update to update a value in boolean.It is the same as
AbstractComponent.smartUpdate(String, Object).- Overrides:
smartUpdatein classAbstractComponent
-
smartUpdate
protected void smartUpdate(java.lang.String name, int value)Description copied from class:AbstractComponentA special smart update to update a value in int.It is the same as
AbstractComponent.smartUpdate(String, Object).- Overrides:
smartUpdatein classAbstractComponent
-
getMold
public java.lang.String getMold()
Description copied from interface:ComponentReturns the mold used to render this component.Default: "default"
Since 5.0, the default can be overridden by specify a library property. For example, if the component's class name is org.zkoss.zul.Button, then you can override the default mold by specifying the property called "org.zkoss.zul.Button.mold" with the mold you want in zk.xml. For example,
<library-property> <name>org.zkoss.zul.Button.mold</name> <value>trendy</value> </library-property>Notice that it doesn't affect the deriving classes. If you want to change the deriving class's default mold, you have to specify them explicitly, too.
- Specified by:
getMoldin interfaceComponent- Overrides:
getMoldin classAbstractComponent- See Also:
ComponentDefinition
-
setWidth
public void setWidth(java.lang.String width)
Deprecated.as of release 6.0.0. To control the size of Listbox related components, please refer toListboxandListheaderinstead.Description copied from class:HtmlBasedComponentSets the width. If null, the best fit is used.- Overrides:
setWidthin classHtmlBasedComponent- See Also:
HtmlBasedComponent.setWidthDirectly(java.lang.String),AbstractComponent.disableClientUpdate(boolean)
-
setHflex
public void setHflex(java.lang.String flex)
Deprecated.as of release 6.0.0. To control the size of Listbox related components, please refer toListboxandListheaderinstead.Description copied from class:HtmlBasedComponentSets horizontal flex hint of this component.Number flex indicates how this component's container distributes remaining empty space among its children horizontally. Flexible component grow and shrink to fit their given space. Flexible components with larger flex values will be made larger than components with lower flex values, at the ratio determined by all flexible components. The actual flex value is not relevant unless there are other flexible components within the same container. Once the default sizes of components in a container are calculated, the remaining space in the container is divided among the flexible components, according to their flex ratios.
Specify a flex value of negative value, 0, or "false" has the same effect as leaving the flex attribute out entirely. Specify a flex value of "true" has the same effect as a flex value of 1.
Special flex hint, "min", indicates that the minimum space shall be given to this flexible component to enclose all of its children components. That is, the flexible component grow and shrink to fit its children components.
- Overrides:
setHflexin classHtmlBasedComponent- Parameters:
flex- horizontal flex hint of this component.- See Also:
HtmlBasedComponent.setVflex(java.lang.String),HtmlBasedComponent.getHflex()
-
renderProperties
protected void renderProperties(ContentRenderer renderer) throws java.io.IOException
Description copied from class:HtmlBasedComponentRenders the content of this component, excluding the enclosing tags and children.- Overrides:
renderPropertiesin classXulElement- Throws:
java.io.IOException
-
addMoved
protected void addMoved(Component oldparent, Page oldpg, Page newpg)
Description copied from class:AbstractComponentCalled when this component is moved from the specified parent and/or page to the new page.Default: it notifies
UiEngineto update the component at the client (usually remove-and-add).It is designed to let derived classes overriding this method to disable this update. However, you rarely need to override it. One possible but rare case: the component's visual part at the client updates the visual representation at the client and then notify the component at the server to update its children accordingly. In this case, it is redundant if we ask UI Engine to send the updates to client.
- Overrides:
addMovedin classAbstractComponent- Parameters:
oldparent- the parent before moved. The new parent can be found by callingAbstractComponent.getParent().oldpg- the parent before moved.newpg- the new page.AbstractComponent.getPage()might return the old page.
-
getPropertyAccess
public PropertyAccess getPropertyAccess(java.lang.String prop)
Description copied from interface:ComponentCtrlReturns the corresponding property access object from the given property name, if any.- Specified by:
getPropertyAccessin interfaceComponentCtrl- Overrides:
getPropertyAccessin classXulElement- Parameters:
prop- the name of the property- Returns:
- null it means not to support for the property name.
-
beforeParentChanged
public void beforeParentChanged(Component parent)
Description copied from class:AbstractComponentDefault: If parent is null, execute the @Destroy method if any.- Specified by:
beforeParentChangedin interfaceComponentCtrl- Overrides:
beforeParentChangedin classAbstractComponent- Parameters:
parent- the new parent. If null, it means detachment.- See Also:
ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)
-
beforeChildAdded
public void beforeChildAdded(Component child, Component refChild)
Description copied from class:AbstractComponentDefault: does nothing.- Specified by:
beforeChildAddedin interfaceComponentCtrl- Overrides:
beforeChildAddedin classAbstractComponent- Parameters:
child- the child to be added (never null).refChild- another child component that the new child will be inserted before it. If null, the new child will be the last child.- See Also:
ComponentCtrl.beforeChildAdded(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
-
clone
public java.lang.Object clone()
Description copied from interface:ComponentClones the component. All of its children and descendants are cloned. Also, ID are preserved.- Specified by:
clonein interfaceComponent- Overrides:
clonein classXulElement- Returns:
- the new component. Notice that it doesn't belong to any page, nor desktop. It doesn't have a parent, either.
-
getExtraCtrl
public java.lang.Object getExtraCtrl()
Description copied from class:HtmlBasedComponentReturns the client control for this component. It is used only by component developers.Default: creates an instance of
HtmlBasedComponent.ExtraCtrl.- Specified by:
getExtraCtrlin interfaceComponentCtrl- Overrides:
getExtraCtrlin classHtmlBasedComponent- 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()
-
-