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 class
Listitem.ExtraCtrl
A 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 void
addMoved(Component oldparent, Page oldpg, Page newpg)
Called when this component is moved from the specified parent and/or page to the new page.void
beforeChildAdded(Component child, Component refChild)
Default: does nothing.void
beforeParentChanged(Component parent)
Default: If parent is null, execute the @Destroy method if any.java.lang.Object
clone()
Clones the component.java.lang.Object
getExtraCtrl()
Returns the client control for this component.java.lang.String
getImage()
Returns the image of theListcell
it contains.int
getIndex()
Returns the index of this item (a.k.a., the order in the listbox).java.lang.String
getLabel()
Returns the label of theListcell
it contains, or null if no such cell.Listbox
getListbox()
Returns the list box that it belongs to.Listgroup
getListgroup()
Returns the listgroup that this item belongs to, or null.int
getMaxlength()
Returns the maximal length of each item's label.java.lang.String
getMold()
Returns the mold used to render this component.PropertyAccess
getPropertyAccess(java.lang.String prop)
Returns the corresponding property access object from the given property name, if any.<T> T
getValue()
Returns the value.java.lang.String
getZclass()
Returns the ZK Cascading Style class for this component.boolean
isDisabled()
Returns whether it is disabled.boolean
isLoaded()
Returns whether the content of this item is loaded.boolean
isSelectable()
Returns whether it is selectable.boolean
isSelected()
Returns whether it is selected.protected void
renderProperties(ContentRenderer renderer)
Renders the content of this component, excluding the enclosing tags and children.void
setDisabled(boolean disabled)
Sets whether it is disabled.void
setHflex(java.lang.String flex)
Deprecated.as of release 6.0.0.void
setImage(java.lang.String image)
Sets the image of theListcell
it contains.protected void
setIndex(int index)
void
setLabel(java.lang.String label)
Sets the label of theListcell
it contains.void
setSelectable(boolean selectable)
Sets whether it is selectable.void
setSelected(boolean selected)
Sets whether it is selected.<T> void
setValue(T value)
Sets the value.boolean
setVisible(boolean visible)
Sets whether this component is visible.void
setWidth(java.lang.String width)
Deprecated.as of release 6.0.0.protected void
smartUpdate(java.lang.String name, boolean value)
A special smart update to update a value in boolean.protected void
smartUpdate(java.lang.String name, int value)
A special smart update to update a value in int.protected void
smartUpdate(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: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 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:
getZclass
in 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 theListcell
it contains, or null if no such cell.
-
setLabel
public void setLabel(java.lang.String label)
Sets the label of theListcell
it contains.If it is not created, we automatically create it.
-
getImage
public java.lang.String getImage()
Returns the image of theListcell
it contains.
-
setImage
public void setImage(java.lang.String image)
Sets the image of theListcell
it 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:Component
Sets 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:
setVisible
in interfaceComponent
- Overrides:
setVisible
in classAbstractComponent
- Returns:
- the previous visibility
-
smartUpdate
protected void smartUpdate(java.lang.String name, java.lang.Object value)
Description copied from class:AbstractComponent
Smart-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:
smartUpdate
in classAbstractComponent
value
- 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 useDeferredValue
or disable the use of the event processing thread (by use ofdisable-event-thread
in 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:AbstractComponent
A special smart update to update a value in boolean.It is the same as
AbstractComponent.smartUpdate(String, Object)
.- Overrides:
smartUpdate
in classAbstractComponent
-
smartUpdate
protected void smartUpdate(java.lang.String name, int value)
Description copied from class:AbstractComponent
A special smart update to update a value in int.It is the same as
AbstractComponent.smartUpdate(String, Object)
.- Overrides:
smartUpdate
in classAbstractComponent
-
getMold
public java.lang.String getMold()
Description copied from interface:Component
Returns 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:
getMold
in interfaceComponent
- Overrides:
getMold
in 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 toListbox
andListheader
instead.Description copied from class:HtmlBasedComponent
Sets the width. If null, the best fit is used.- Overrides:
setWidth
in 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 toListbox
andListheader
instead.Description copied from class:HtmlBasedComponent
Sets 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:
setHflex
in 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:HtmlBasedComponent
Renders the content of this component, excluding the enclosing tags and children.- Overrides:
renderProperties
in classXulElement
- Throws:
java.io.IOException
-
addMoved
protected void addMoved(Component oldparent, Page oldpg, Page newpg)
Description copied from class:AbstractComponent
Called when this component is moved from the specified parent and/or page to the new page.Default: it notifies
UiEngine
to 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:
addMoved
in 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:ComponentCtrl
Returns the corresponding property access object from the given property name, if any.- Specified by:
getPropertyAccess
in interfaceComponentCtrl
- Overrides:
getPropertyAccess
in 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:AbstractComponent
Default: If parent is null, execute the @Destroy method if any.- Specified by:
beforeParentChanged
in interfaceComponentCtrl
- Overrides:
beforeParentChanged
in 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:AbstractComponent
Default: does nothing.- Specified by:
beforeChildAdded
in interfaceComponentCtrl
- Overrides:
beforeChildAdded
in 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:Component
Clones the component. All of its children and descendants are cloned. Also, ID are preserved.- Specified by:
clone
in interfaceComponent
- Overrides:
clone
in 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: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 interfaceComponentCtrl
- Overrides:
getExtraCtrl
in 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()
-
-