Class Listbox
- All Implemented Interfaces:
Serializable,Cloneable,org.zkoss.zk.ui.Component,org.zkoss.zk.ui.ext.Scope,org.zkoss.zk.ui.sys.ComponentCtrl,Paginated
Event:
SelectEventis sent when user changes the selection.- onAfterRender is sent when the model's data has been rendered.(since 5.0.4)
- onCheckSelectAll is sent when user click on selectAll checkbox.(since 6.5.5)
See Specification.
Besides creating Listitem programmatically, you could assign a data
model (a ListModel or GroupsModel instance) to a listbox via
setModel(ListModel) or setModel(GroupsModel) and then the
listbox will retrieve data via ListModel.getElementAt(int) when necessary.
Besides assign a list model, you could assign a renderer (a
ListitemRenderer instance) to a listbox, such that the listbox will
use this renderer to render the data returned by
ListModel.getElementAt(int). If not assigned, the default renderer, which
assumes a label per list item, is used. In other words, the default renderer
adds a label to a Listitem by calling toString against the object returned by
ListModel.getElementAt(int)
To retrieve what are selected in Listbox with a Selectable
ListModel, you shall use Selectable.getSelection() to get what
is currently selected object in ListModel rather than using
getSelectedItems(). That is, you shall operate on the item of
the ListModel rather than on the Listitem of the Listbox
if you use the Selectable ListModel.
Set selection = ((Selectable)getModel()).getSelection();
[Since 6.0.0] If a model is set, whether the listbox allows
the multiple selection depends on Selectable.setMultiple(boolean).
In other words, the application shall not access listbox directly if
a model is assigned. Rather, the application shall access the model
directly.
There are two ways to handle long content: scrolling and paging. If
AbstractComponent.getMold() is "default", scrolling is used if setHeight(java.lang.String) is
called and too much content to display. If AbstractComponent.getMold() is "paging",
paging is used if two or more pages are required. To control the number of
items to display in a page, use setPageSize(int).
If paging is used, the page controller is either created automatically or
assigned explicitly by setPaginal(org.zkoss.zul.ext.Paginal). The paging controller specified
explicitly by setPaginal(org.zkoss.zul.ext.Paginal) is called the external page controller. It
is useful if you want to put the paging controller at different location
(other than as a child component), or you want to use the same controller to
control multiple listboxes.
Default getZclass(): z-listbox.(since 3.5.0)
To have a list box without stripping, you can specify a non-existent style
class to setOddRowSclass(java.lang.String).
Clustering and Serialization
When used in a clustering environment, you have to make
ListitemRenderer (setItemRenderer(org.zkoss.zul.ListitemRenderer<?>)) and ListModel (
setModel(org.zkoss.zul.ListModel<?>)) either serializable or re-assign them when
sessionDidActivate(org.zkoss.zk.ui.Page) is called.
Render on Demand (rod)
[ZK EE] [Since 5.0.0]For huge data, you can turn on Listbox's ROD to request ZK engine to load from
ListModel only the required data chunk and create only the required
Listitems in memory and render only the required DOM elements in
browser. So it saves both the memory and the processing time in both server
and browser for huge data. If you don't use the ListModel with the
Listbox, turn on the ROD will still have ZK engine to render only a chunk of
DOM elements in browser so it at least saves the memory and processing time
in browser. Note that ROD works only if the Listbox is configured to has a
limited "view port" height. That is, either the Listbox is in the "paging"
mold or you have to setHeight(String),setVflex(String),
or setRows(int) of the Listbox to make ROD works.
You can turn on/off ROD for all Listboxes in the application or only for a specific Listbox. To turn on ROD for all Listboxes in the application, you have to specify the Library Property "org.zkoss.zul.listbox.rod" to "true" in WEB-INF/zk.xml. If you did not specify the Library Property, default is false.
<library-property>
<name>org.zkoss.zul.listbox.rod</name>
<value>true</value>
</library-property>
To turn on ROD for a specific Listbox, you have to specify the Listbox's attribute map with key "org.zkoss.zul.listbox.rod" to true. That is, for example, if in a zul file, you shall specify <custom-attributes> of the Listbox like this:
<listbox ...>
<custom-attributes org.zkoss.zul.listbox.rod="true"/>
</listbox>
You can mix the Library Property and <custom-attributes> ways together. The <custom-attributes> way always takes higher priority. So you can turn OFF ROD in general and turn ON only some specific Listbox component. Or you can turn ON ROD in general and turn OFF only some specific Listbox component.
Since only partial Listitems are created and rendered in the
Listbox if you turn the ROD on, there will be some limitations on accessing
Listitems. For example, if you call
Listitem itemAt100 = (Listitem) getItemAtIndex(100);
The Listitem in index 100 is not necessary created yet if it is
not in the current "view port" and you will get "null" instead.
And it is generally a bad idea to "cache" the created Listitem
in your application if you turn the ROD on because Listitems might be removed
later. Basically, you shall operate on the item of the ListModel
rather than on the Listitem of the Listbox if you use the
ListModel and ROD.
Custom Attributes
- org.zkoss.zul.listbox.rightSelect
- Specifies whether the selection shall be toggled when user right clicks on
item, if the checkmark (
isCheckmark()) is enabled. Notice that you could specify this attribute in any of its ancestor's attributes. It will be inherited. - org.zkoss.zul.listbox.rod
- Specifies whether to enable ROD (render-on-demand). Notice that you could specify this attribute in any of its ancestor's attributes. It will be inherited.
- org.zkoss.zul.listbox.autoSort .(since 5.0.7)
- Specifies whether to sort the model when the following cases:
setModel(org.zkoss.zul.ListModel<?>)is called andListheader.setSortDirection(java.lang.String)is set.Listheader.setSortDirection(java.lang.String)is called.- Model receives
ListDataEventandListheader.setSortDirection(java.lang.String)is set.
ListDataEvent, you can specifies the value as "ignore.change". Notice that you could specify this attribute in any of its ancestor's attributes. It will be inherited.
It is used only if live data (setModel(ListModel) and
not paging (getPagingChild()).
It is used only if live data (setModel(ListModel) and not paging
(getPagingChild()).
- Author:
- tomyeh
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classprotected classA utility class to implementHtmlBasedComponent.getExtraCtrl().Nested classes/interfaces inherited from class org.zkoss.zul.impl.MeshElement
MeshElement.InternalPagingNested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent
org.zkoss.zk.ui.AbstractComponent.ForwardInfo, org.zkoss.zk.ui.AbstractComponent.TargetInfo -
Field Summary
FieldsFields inherited from class org.zkoss.zul.impl.MeshElement
CSS_FLEX_AUTO_DISABLED_COUNTFields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
_zclassFields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPEFields 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidaddItemToSelection(Listitem item) Selects the given item, without deselecting any other items that are already selected..protected voidafterInsert(org.zkoss.zk.ui.Component comp) Callback if a list item has been inserted.appendItem(String label, String value) Appends an item.voidbeforeChildAdded(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild) protected voidbeforeRemove(org.zkoss.zk.ui.Component comp) Callback if a list item will be removed (not removed yet).voidClears the selection.clone()<T extends org.zkoss.zk.ui.Component>
List<T>Returns the message to display when there are no itemsReturns the frozen child.intReturns the number of listgroupReturns a list of allListgroup.<D,G, F> GroupsModel<D, G, F> Returns the groups model associated with this list box, or null if this list box is associated with aListModelor not associated with any list data model.Collection<org.zkoss.zk.ui.Component>getHeads()Returns a collection of heads, includinggetListhead()and auxiliary heads (Auxhead) (never null).intgetIndexOfItem(Listitem item) Returns the index of the specified item, or -1 if not found.Returns the inner width of this component.getItemAtIndex(int index) Returns the item at the specified index.intReturns the number of items.<T> ListitemRenderer<T>Returns the renderer to render each item, or null if the default renderer is used.getItems()Returns a live list of allListitem.ReturnsListfootbelonging to this listbox, or null if no list footers at all.ReturnsListheadbelonging to this listbox, or null if no list headers at all.<T> ListModel<T>Returns the list model associated with this list box, or null if this list box is associated with aGroupsModelor not associated with any list data model.intReturns the maximal length of each item's label.<T> ListModel<T>getModel()Returns the model associated with this list box, or null if this list box is not associated with any list data model.getName()Returns the name of this component.Returns a list of HTML tag names that shall not cause the list item being selected if they are clicked.Returns the style class for the odd rows.Returns the paging controller, or null if not available.Returns the child paging controller that is created automatically, or null if mold is not "paging", or the controller is specified externally bysetPaginal(org.zkoss.zul.ext.Paginal).org.zkoss.zk.ui.sys.PropertyAccessgetPropertyAccess(String prop) Returns the responsive policy.Returns the responsive columns token string.intgetRows()Returns the rows.intReturns the number of items being selected.intReturns the index of the selected item (-1 if no one is selected).Returns the selected item.Returns all selected items.Returns the seltype.intReturns the number of visible descendantListitem.booleanhasGroup()Returns whether listgroup exists.booleaninsertBefore(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild) protected booleanbooleanReturns whether the check mark shall be displayed in front of each item.booleanReturns whether it is disabled.booleanReturns whether multiple selections are allowed.protected booleanbooleanisVflex()Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.voidvoidHandles a private event, onInitRender.voidonPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage) voidonPageDetached(org.zkoss.zk.ui.Page page) voidHandles a private event, onPagingInitRender.protected Paginalpgi()Returns the instance of the @{link Paginal}booleanremoveChild(org.zkoss.zk.ui.Component child) If the child is a listgroup, its listgroupfoot will be removed at the same time.removeItemAt(int index) Removes the child item in the list box at the given index.voidDeselects the given item without deselecting other items.voidRenders allListitemif not loaded yet, withgetItemRenderer().renderItem(Listitem li) Renders the specifiedListitemif not loaded yet, withgetItemRenderer().voidrenderItems(Set<? extends Listitem> items) Renders the given set of list items.protected voidrenderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) voidscrollToIndex(int index) Scroll to the specified item by the given index.voidSelects all items.voidselectItem(Listitem item) Deselects all of the currently selected items and selects the given item.voidservice(org.zkoss.zk.au.AuRequest request, boolean everError) Processes an AU request.voidsessionDidActivate(org.zkoss.zk.ui.Page page) voidsessionWillPassivate(org.zkoss.zk.ui.Page page) voidsetActivePage(int pg) Sets the active page (starting from 0).voidsetActivePage(Listitem item) Sets the active page in which the specified item is.voidsetCheckmark(boolean checkmark) Sets whether the check mark shall be displayed in front of each item.voidsetDisabled(boolean disabled) Sets whether it is disabled.voidsetEmptyMessage(String emptyMessage) Sets the message to display when there are no itemsvoidvoidsetInnerWidth(String innerWidth) Sets the inner width of this component.voidsetItemRenderer(String clsnm) Sets the renderer by use of a class name.voidsetItemRenderer(ListitemRenderer<?> renderer) Sets the renderer which is used to render each item ifgetModel()is not null.voidsetMaxlength(int maxlength) Sets the maximal length of each item's label.voidsetModel(GroupsModel<?, ?, ?> model) Sets the groups model associated with this list box.voidSets the list model associated with this listbox.voidSets the mold to render this component.voidsetMultiple(boolean multiple) Sets whether multiple selections are allowed.voidSets the name of this component.voidsetNonselectableTags(String tags) Sets a list of HTML tag names that shall not cause the list item being selected if they are clicked.voidsetOddRowSclass(String scls) Sets the style class for the odd rows.voidsetPageSize(int pgsz) Sets the page size, a.k.a., the number rows per page.voidsetPaginal(Paginal pgi) Specifies the paging controller.voidsetResponsive(String responsive) Sets the responsive policy.voidsetResponsiveColumns(String columns) Sets the responsive columns token string for stacking mode.voidsetRows(int rows) Sets the rows.voidsetSelectedIndex(int jsel) Deselects all of the currently selected items and selects the item with the given index.voidsetSelectedItem(Listitem item) Deselects all of the currently selected items and selects the given item.voidsetSelectedItems(Set<Listitem> listItems) Selects the given listitems.voidsetSeltype(String seltype) Sets the seltype.voidsetVflex(boolean vflex) Sets whether to grow and shrink vertical to fit their given space, so called vertical flexibility.voidvoidshallUpdateScrollPos(boolean shallUpdateScrollPos) Sets whether to update the scroll position on initvoidtoggleItemSelection(Listitem item) If the specified item is selected, it is deselected.Methods inherited from class org.zkoss.zul.impl.MeshElement
checkBeforeSetRows, evalCSSFlex, getActivePage, getPageCount, getPageSize, getPagingPosition, getSpan, isAutopaging, isPagingDisabled, isSizedByContent, isSpan, setAutopaging, setPagingDisabled, setPagingPosition, setSizedByContent, setSpan, setSpanMethods inherited from class org.zkoss.zul.impl.XulElement
getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributesMethods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
addSclass, focus, getAction, getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getSkeleton, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setSkeleton, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectlyMethods 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, 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, 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, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, 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
-
Field Details
-
LOADING_MODEL
- See Also:
-
SYNCING_MODEL
- See Also:
-
-
Constructor Details
-
Listbox
public Listbox()
-
-
Method Details
-
getChildren
- Specified by:
getChildrenin interfaceorg.zkoss.zk.ui.Component- Overrides:
getChildrenin classorg.zkoss.zk.ui.AbstractComponent
-
getListhead
ReturnsListheadbelonging to this listbox, or null if no list headers at all. -
getListfoot
ReturnsListfootbelonging to this listbox, or null if no list footers at all. -
getFrozen
Returns the frozen child.- Since:
- 5.0.0
-
getHeads
Returns a collection of heads, includinggetListhead()and auxiliary heads (Auxhead) (never null).- Since:
- 3.0.0
-
isCheckmark
public boolean isCheckmark()Returns whether the check mark shall be displayed in front of each item.Default: false.
-
setCheckmark
public void setCheckmark(boolean checkmark) Sets whether the check mark shall be displayed in front of each item.The check mark is a checkbox if
isMultiple()returns true. It is a radio button ifisMultiple()returns false. -
setInnerWidth
Sets the inner width of this component. The inner width is the width of the inner table. By default, it is 100%. That is, it is the same as the width of this component. However, it is changed when the user is sizing the column's width.Application developers rarely call this method, unless they want to preserve the widths of sizable columns changed by the user. To preserve the widths, the developer have to store the widths of all columns and the inner width (
getInnerWidth()), and then restore them when re-creating this component.- Parameters:
innerWidth- the inner width. If null, "100%" is assumed.- Since:
- 3.0.0
-
getInnerWidth
Returns the inner width of this component. The inner width is the width of the inner table.Default: "100%"
- Since:
- 3.0.0
- See Also:
-
isVflex
public boolean isVflex()Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.Note: this attribute is ignored if
setRows(int)is specifiedDefault: false.
-
setVflex
public void setVflex(boolean vflex) Sets whether to grow and shrink vertical to fit their given space, so called vertical flexibility.Note: this attribute is ignored if
setRows(int)is specified -
setVflex
- Overrides:
setVflexin classorg.zkoss.zk.ui.HtmlBasedComponent
-
isDisabled
public boolean isDisabled()Returns whether it is disabled.Default: false.
-
setDisabled
public void setDisabled(boolean disabled) Sets whether it is disabled.Note that it is only applied when mold is "select".
-
getRows
public int getRows()Returns the rows. Zero means no limitation.Default: 0.
-
setRows
public void setRows(int rows) throws org.zkoss.zk.ui.WrongValueException Sets the rows.Note: Not allowed to set rows and height/vflex at the same time
- Throws:
org.zkoss.zk.ui.WrongValueException
-
setHeight
- Overrides:
setHeightin classorg.zkoss.zk.ui.HtmlBasedComponent
-
getSeltype
Returns the seltype.Default: "single".
-
setSeltype
Sets the seltype. Allowed values:single,multiple- Throws:
org.zkoss.zk.ui.WrongValueException
-
isMultiple
public boolean isMultiple()Returns whether multiple selections are allowed.Default: false.
-
setMultiple
public void setMultiple(boolean multiple) Sets whether multiple selections are allowed.Notice that, if a model is assigned, it will change the model's state (by
Selectable.setMultiple(boolean)). -
getMaxlength
public int getMaxlength()Returns the maximal length of each item's label.It is meaningful only for the select mold.
-
setMaxlength
public void setMaxlength(int maxlength) Sets the maximal length of each item's label.It is meaningful only for the select mold.
-
getName
Returns the name of this component.Default: null.
The name is used only to work with "legacy" Web application that handles user's request by servlets. It works only with HTTP/HTML-based browsers. It doesn't work with other kind of clients.
Don't use this method if your application is purely based on ZK's event-driven model.
-
setName
Sets the name of this component.The name is used only to work with "legacy" Web application that handles user's request by servlets. It works only with HTTP/HTML-based browsers. It doesn't work with other kind of clients.
Don't use this method if your application is purely based on ZK's event-driven model.
- Parameters:
name- the name of this component.
-
setNonselectableTags
Sets a list of HTML tag names that shall not cause the list item being selected if they are clicked.Default: null (it means button, input, textarea and a). If you want to select no matter which tag is clicked, please specify an empty string.
- Parameters:
tags- a list of HTML tag names that will not cause the list item being selected if clicked. Specify null to use the default and "" to indicate none.- Since:
- 5.0.5
-
getNonselectableTags
Returns a list of HTML tag names that shall not cause the list item being selected if they are clicked.Refer to
setNonselectableTags(java.lang.String)for details.- Since:
- 5.0.5
-
getItems
Returns a live list of allListitem. By live we mean you can add or remove them directly with the List interface. In other words, you could add or remove an item by manipulating the returned list directly. -
getItemCount
public int getItemCount()Returns the number of items. -
getItemAtIndex
Returns the item at the specified index.Note: if live data is used (
getModel()is not null), the returned item might NOT be loaded yet. To ensure it is loaded, you have to invokerenderItem(org.zkoss.zul.Listitem). -
getIndexOfItem
Returns the index of the specified item, or -1 if not found. -
getSelectedIndex
public int getSelectedIndex()Returns the index of the selected item (-1 if no one is selected). -
setSelectedIndex
public void setSelectedIndex(int jsel) Deselects all of the currently selected items and selects the item with the given index. -
selectItem
Deselects all of the currently selected items and selects the given item.It is the same as
setSelectedItem(org.zkoss.zul.Listitem).- Parameters:
item- the item to select. If null, all items are deselected.
-
addItemToSelection
Selects the given item, without deselecting any other items that are already selected..Notice that if you assign a model to a listbox (
setModel(org.zkoss.zul.ListModel<?>)), you shall not invoke this method directly. Rather, useSelectableinstead. -
removeItemFromSelection
Deselects the given item without deselecting other items.Notice that if you assign a model to a listbox (
setModel(org.zkoss.zul.ListModel<?>)), you shall not invoke this method directly. Rather, useSelectableinstead. -
toggleItemSelection
If the specified item is selected, it is deselected. If it is not selected, it is selected. Other items in the list box that are selected are not affected, and retain their selected state. -
clearSelection
public void clearSelection()Clears the selection. -
selectAll
public void selectAll()Selects all items. -
getSelectedItem
Returns the selected item.Note: if live data is used (
getModel()is not null), the returned item might NOT be loaded yet. To ensure it is loaded, you have to invokerenderItem(org.zkoss.zul.Listitem). -
setSelectedItem
Deselects all of the currently selected items and selects the given item.It is the same as
selectItem(org.zkoss.zul.Listitem). -
setSelectedItems
Selects the given listitems.- Since:
- 3.6.0
-
getSelectedItems
Returns all selected items.Note: if live data is used (
getModel()is not null), the returned item might NOT be loaded yet. To ensure it is loaded, you have to invokerenderItem(org.zkoss.zul.Listitem). -
getSelectedCount
public int getSelectedCount()Returns the number of items being selected. -
appendItem
Appends an item.Note: if live data is used (
getModel()is not null), the returned item might NOT be loaded yet. To ensure it is loaded, you have to invokerenderItem(org.zkoss.zul.Listitem). -
removeItemAt
Removes the child item in the list box at the given index.Note: if live data is used (
getModel()is not null), the returned item might NOT be loaded yet. To ensure it is loaded, you have to invokerenderItem(org.zkoss.zul.Listitem).- Returns:
- the removed item.
-
getPaginal
Returns the paging controller, or null if not available. Note: the paging controller is used only ifAbstractComponent.getMold()is "paging".If mold is "paging", this method never returns null, because a child paging controller is created automatically (if not specified by developers with
setPaginal(org.zkoss.zul.ext.Paginal)).If a paging controller is specified (either by
setPaginal(org.zkoss.zul.ext.Paginal), or bysetMold(java.lang.String)with "paging"), the listbox will rely on the paging controller to handle long-content instead of scrolling. -
setPaginal
Specifies the paging controller. Note: the paging controller is used only ifAbstractComponent.getMold()is "paging".It is OK, though without any effect, to specify a paging controller even if mold is not "paging".
- Parameters:
pgi- the paging controller. If null andAbstractComponent.getMold()is "paging", a paging controller is created automatically as a child component (seegetPagingChild()).
-
getPagingChild
Returns the child paging controller that is created automatically, or null if mold is not "paging", or the controller is specified externally bysetPaginal(org.zkoss.zul.ext.Paginal).- Since:
- 3.0.7
-
pgi
Description copied from class:MeshElementReturns the instance of the @{link Paginal}- Specified by:
pgiin classMeshElement
-
setActivePage
Sets the active page in which the specified item is. The active page will become the page that contains the specified item.- Parameters:
item- the item to show. If the item is null or doesn't belong to this listbox, nothing happens.- Since:
- 3.0.4
- See Also:
-
setActivePage
public void setActivePage(int pg) throws org.zkoss.zk.ui.WrongValueException Description copied from class:MeshElementSets the active page (starting from 0).- Overrides:
setActivePagein classMeshElement- Throws:
org.zkoss.zk.ui.WrongValueException
-
getVisibleItemCount
public int getVisibleItemCount()Returns the number of visible descendantListitem.- Since:
- 3.5.1
-
getOddRowSclass
Returns the style class for the odd rows.Default:
getZclass()-odd. (since 3.5.0)- Since:
- 3.0.0
-
setOddRowSclass
Sets the style class for the odd rows. If the style class doesn't exist, the striping effect disappears. You can provide different effects by providing the proper style classes.- Since:
- 3.0.0
-
getGroupCount
public int getGroupCount()Returns the number of listgroup- Since:
- 3.5.0
-
getGroups
Returns a list of allListgroup.- Since:
- 3.5.0
-
hasGroup
public boolean hasGroup()Returns whether listgroup exists.- Since:
- 3.5.0
-
beforeChildAdded
public void beforeChildAdded(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild) - Specified by:
beforeChildAddedin interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
beforeChildAddedin classorg.zkoss.zk.ui.AbstractComponent
-
insertBefore
public boolean insertBefore(org.zkoss.zk.ui.Component newChild, org.zkoss.zk.ui.Component refChild) - Specified by:
insertBeforein interfaceorg.zkoss.zk.ui.Component- Overrides:
insertBeforein classorg.zkoss.zk.ui.AbstractComponent
-
removeChild
public boolean removeChild(org.zkoss.zk.ui.Component child) If the child is a listgroup, its listgroupfoot will be removed at the same time.- Specified by:
removeChildin interfaceorg.zkoss.zk.ui.Component- Overrides:
removeChildin classorg.zkoss.zk.ui.AbstractComponent
-
afterInsert
protected void afterInsert(org.zkoss.zk.ui.Component comp) Callback if a list item has been inserted.Note: it won't be called if other kind of child is inserted.
When this method is called, the index is correct.
Default: invalidate if it is the paging mold and it affects the view of the active page.
- Since:
- 3.0.5
-
beforeRemove
protected void beforeRemove(org.zkoss.zk.ui.Component comp) Callback if a list item will be removed (not removed yet). Note: it won't be called if other kind of child is removed.Default: invalidate if it is the paging mold and it affects the view of the active page.
- Since:
- 3.0.5
-
getModel
Returns the model associated with this list box, or null if this list box is not associated with any list data model.Note: if
setModel(GroupsModel)was called with a groups model, this method returns an instance ofListModelencapsulating it.- See Also:
-
getListModel
Returns the list model associated with this list box, or null if this list box is associated with aGroupsModelor not associated with any list data model.- Since:
- 3.5.0
- See Also:
-
getGroupsModel
Returns the groups model associated with this list box, or null if this list box is associated with aListModelor not associated with any list data model.- Since:
- 3.5.0
- See Also:
-
setModel
Sets the list model associated with this listbox. If a non-null model is assigned, no matter whether it is the same as the previous, it will always cause re-render.- Parameters:
model- the list model to associate, or null to dis-associate any previous model. If not null, it must implementSelectable.- Throws:
org.zkoss.zk.ui.UiException- if failed to initialize with the model- See Also:
-
setModel
Sets the groups model associated with this list box. If a non-null model is assigned, no matter whether it is the same as the previous, it will always cause re-render.The groups model is used to represent a list of data with grouping.
- Parameters:
model- the groups model to associate, or null to dis-associate any previous model.- Throws:
org.zkoss.zk.ui.UiException- if failed to initialize with the model- Since:
- 3.5.0
- See Also:
-
getItemRenderer
Returns the renderer to render each item, or null if the default renderer is used. -
setItemRenderer
Sets the renderer which is used to render each item ifgetModel()is not null.Note: changing a render will not cause the listbox to re-render. If you want it to re-render, you could assign the same model again (i.e., setModel(getModel())), or fire an
ListDataEventevent.- Parameters:
renderer- the renderer, or null to use the default.- Throws:
org.zkoss.zk.ui.UiException- if failed to initialize with the model
-
setItemRenderer
public void setItemRenderer(String clsnm) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException Sets the renderer by use of a class name. It creates an instance automatically. -
onInitRender
public void onInitRender()Handles a private event, onInitRender. It is used only for implementation, and you rarely need to invoke it explicitly. -
onPagingInitRender
public void onPagingInitRender()Handles a private event, onPagingInitRender. It is used only for implementation, and you rarely need to invoke it explicitly. -
renderItem
Renders the specifiedListitemif not loaded yet, withgetItemRenderer().It does nothing if
getModel()returns null. In other words, it is meaningful only if live data model is used.- Returns:
- the list item being passed to this method
- See Also:
-
renderAll
public void renderAll()Renders allListitemif not loaded yet, withgetItemRenderer(). -
renderItems
Renders the given set of list items. -
setMold
Sets the mold to render this component.- Specified by:
setMoldin interfaceorg.zkoss.zk.ui.Component- Overrides:
setMoldin classorg.zkoss.zk.ui.AbstractComponent- Parameters:
mold- the mold. If null or empty, "default" is assumed. Allowed values: default, select, paging- See Also:
-
ComponentDefinition
-
getEmptyMessage
Returns the message to display when there are no items- Returns:
- String
- Since:
- 5.0.7
-
setEmptyMessage
Sets the message to display when there are no items- Parameters:
emptyMessage-- Since:
- 5.0.7
-
getZclass
- Overrides:
getZclassin classorg.zkoss.zk.ui.HtmlBasedComponent
-
onPageAttached
public void onPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage) - Specified by:
onPageAttachedin interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
onPageAttachedin classorg.zkoss.zk.ui.AbstractComponent
-
onPageDetached
public void onPageDetached(org.zkoss.zk.ui.Page page) - Specified by:
onPageDetachedin interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
onPageDetachedin classorg.zkoss.zk.ui.AbstractComponent
-
clone
- Specified by:
clonein interfaceorg.zkoss.zk.ui.Component- Overrides:
clonein classXulElement
-
sessionWillPassivate
public void sessionWillPassivate(org.zkoss.zk.ui.Page page) - Specified by:
sessionWillPassivatein interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
sessionWillPassivatein classorg.zkoss.zk.ui.AbstractComponent
-
sessionDidActivate
public void sessionDidActivate(org.zkoss.zk.ui.Page page) - Specified by:
sessionDidActivatein interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
sessionDidActivatein classorg.zkoss.zk.ui.AbstractComponent
-
renderProperties
- Overrides:
renderPropertiesin classMeshElement- Throws:
IOException
-
getResponsive
Returns the responsive policy.Default: null (unset — inherits from zk.xml
org.zkoss.zul.listbox.responsive, then framework default of no responsive).Stacking behavior is provided by ZK EE (zkmax); CE stores the value only.
- Returns:
- the responsive policy, or null if not set.
- Since:
- 11.0.0
-
setResponsive
Sets the responsive policy.Supported values:
"stacking","none", or null (unset)."stacking"— list items become vertical key-value cards when the container width falls below the breakpoint (EE only)."none"— explicitly disables responsive, overriding any global setting.null— inherits from the global library property.
- Parameters:
responsive- the responsive policy- Throws:
org.zkoss.zk.ui.WrongValueException- ifresponsiveis neither"stacking","none", nornull.- Since:
- 11.0.0
-
getResponsiveColumns
Returns the responsive columns token string.Default: null (unset — inherits from zk.xml
org.zkoss.zul.listbox.responsive.columns, then framework default"sm-1 md-none"resolved by the client).- Returns:
- the responsive columns token string, or null if not set.
- Since:
- 11.0.0
-
setResponsiveColumns
Sets the responsive columns token string for stacking mode.Breakpoint tokens separated by whitespace, where each token is
<breakpoint>-<value>with breakpoint in {sm, md, lg, xl} and value either a positive integer (cards per row in stacking) ornone(switch back to table mode at and above this breakpoint).The string is stored verbatim — parsing, cascade resolution, and matching against the current container width happen on the client side. Invalid tokens are silently dropped by the client cascade resolver. A value whose kept tokens are all
nonewithout ansmentry is discarded as a whole and the client falls back to its default cascade.- Parameters:
columns- the responsive columns token string- Since:
- 11.0.0
-
isAutohidePaging
protected boolean isAutohidePaging()- Specified by:
isAutohidePagingin classMeshElement
-
isSelectOnHighlightDisabled
protected boolean isSelectOnHighlightDisabled() -
getPropertyAccess
- Specified by:
getPropertyAccessin interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
getPropertyAccessin classXulElement
-
service
public void service(org.zkoss.zk.au.AuRequest request, boolean everError) Processes an AU request.Default: in addition to what are handled by
HtmlBasedComponent.service(org.zkoss.zk.au.AuRequest, boolean), it also handles onSelect.- Specified by:
servicein interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
servicein classorg.zkoss.zk.ui.HtmlBasedComponent- Since:
- 5.0.0
-
getExtraCtrl
- Specified by:
getExtraCtrlin interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
getExtraCtrlin classorg.zkoss.zk.ui.HtmlBasedComponent
-
setPageSize
public void setPageSize(int pgsz) throws org.zkoss.zk.ui.WrongValueException Description copied from class:MeshElementSets the page size, a.k.a., the number rows per page.- Overrides:
setPageSizein classMeshElement- Throws:
org.zkoss.zk.ui.WrongValueException
-
onAfterRender
public void onAfterRender() -
scrollToIndex
public void scrollToIndex(int index) Scroll to the specified item by the given index.- Parameters:
index- the index of item- Since:
- 8.5.2
-
shallUpdateScrollPos
public void shallUpdateScrollPos(boolean shallUpdateScrollPos) Sets whether to update the scroll position on initDefault: false.
Note: internal use only
- Parameters:
shallUpdateScrollPos- whether update the scroll position on init- Since:
- 8.6.0
-