Class Grid
- java.lang.Object
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,Component
,Scope
,ComponentCtrl
,Paginated
public class Grid extends MeshElement
A grid is an element that contains both rows and columns elements. It is used to create a grid of elements. Both the rows and columns are displayed at once although only one will typically contain content, while the other may provide size information.Events: onAfterRender
onAfterRender is sent when the model's data has been rendered.(since 5.0.4)Besides creating
Row
programmatically, you can assign a data model (aListModel
orGroupsModel
instance) to a grid viasetModel(ListModel)
orsetModel(GroupsModel)
and then the grid will retrieve data by callingListModel.getElementAt(int)
when necessary.Besides assign a list model, you could assign a renderer (a
RowRenderer
instance) to a grid, such that the grid will use this renderer to render the data returned byListModel.getElementAt(int)
. If not assigned, the default renderer, which assumes a label per row, is used. In other words, the default renderer adds a label to a row by calling toString against the object returned byListModel.getElementAt(int)
There are two ways to handle long content: scrolling and paging. If
AbstractComponent.getMold()
is "default", scrolling is used ifsetHeight(java.lang.String)
is called and too much content to display. IfAbstractComponent.getMold()
is "paging", paging is used if two or more pages are required. To control the number of rows to display in a page, usesetPageSize(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 bysetPaginal(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 grids.Default
getZclass()
: z-grid.(since 3.5.0)To have a grid 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
RowRenderer
(setRowRenderer(org.zkoss.zul.RowRenderer<?>)
) andListModel
(setModel(org.zkoss.zul.ListModel<?>)
) either serializable or re-assign them whensessionDidActivate(org.zkoss.zk.ui.Page)
is called.Render on Demand (rod)
[ZK EE] [Since 5.0.0]For huge data, you can turn on Grid's ROD to request ZK engine to load from
ListModel
only the required data chunk and create only the requiredRow
s 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 theListModel
with the Grid, 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 Grid is configured to has a limited "view port" height. That is, either the Grid is in the "paging" mold or you have tosetHeight(String)
orsetVflex(String)
of the Grid to make ROD works.You can turn on/off ROD for all Grids in the application or only for a specific Grid. To turn on ROD for all Grids in the application, you have to specify the Library Property "org.zkoss.zul.grid.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.grid.rod</name> <value>true</value> </library-property>
To turn on ROD for a specific Grid, you have to specify the Grid's attribute map with key "org.zkoss.zul.grid.rod" to true. That is, for example, if in a zul file, you shall specify <custom-attributes> of the Grid like this:
<grid ...> <custom-attributes org.zkoss.zul.grid.rod="true"/> </grid>
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 Grid component. Or you can turn ON ROD in general and turn OFF only some specific Grid component.
Since only partial
Row
s are created and rendered in the Grid if you turn the ROD on, there will be some limitations on accessingRow
s. For example, if you callRow rowAt100 = (Row) getRows().getChildren().get(100);
The
Row
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
Row
in your application if you turn the ROD on because rows might be removed later. Basically, you shall operate on the item of the ListModel rather than on theRow
if you use the ListModel and ROD.Custom Attributes
- org.zkoss.zul.grid.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.grid.autoSort .(since 5.0.7)
- Specifies whether to sort the model when the following cases:
setModel(org.zkoss.zul.ListModel<?>)
is called andColumn.setSortDirection(java.lang.String)
is set.Column.setSortDirection(java.lang.String)
is called.- Model receives
ListDataEvent
andColumn.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.
- org.zkoss.zul.grid.preloadSize
.(since 5.0.8)- Specifies the number of rows to preload when receiving the rendering request from the client.
It is used only if live data (
setModel(ListModel)
and not paging (getPagingChild()
).- org.zkoss.zul.grid.initRodSize
.(since 5.0.8)- Specifies the number of rows rendered when the Grid first render.
It is used only if live data (
setModel(ListModel)
and not paging (getPagingChild()
).- Author:
- tomyeh
- See Also:
ListModel
,RowRenderer
,RowRendererExt
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
Grid.ExtraCtrl
A utility class to implementHtmlBasedComponent.getExtraCtrl()
.-
Nested classes/interfaces inherited from class org.zkoss.zul.impl.MeshElement
MeshElement.InternalPaging
-
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.zul.impl.MeshElement
CSS_FLEX_AUTO_DISABLED_COUNT
-
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
-
-
Constructor Summary
Constructors Constructor Description Grid()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beforeChildAdded(Component newChild, Component refChild)
Default: does nothing.java.lang.Object
clone()
Clones the component.Component
getCell(int row, int col)
Returns the specified cell, or null if not available.Columns
getColumns()
Returns the columns.java.lang.String
getEmptyMessage()
Returns the message to display when there are no itemsjava.lang.Object
getExtraCtrl()
Returns the client control for this component.Foot
getFoot()
Returns the foot.Frozen
getFrozen()
Returns the frozen child.<D,G,F>
GroupsModel<D,G,F>getGroupsModel()
Returns the groups model associated with this grid, or null if this grid is associated with aListModel
or not associated with any list data model.java.util.Collection<Component>
getHeads()
Returns a collection of heads, includinggetColumns()
and auxiliary heads (Auxhead
) (never null).java.lang.String
getInnerWidth()
Returns the inner width of this component.<T> ListModel<T>
getListModel()
Returns the list model associated with this grid, or null if this grid is associated with aGroupsModel
or not associated with any list data model.<T> ListModel<T>
getModel()
Returns the model associated with this grid, or null if this grid is not associated with any list data model.java.lang.String
getOddRowSclass()
Returns the style class for the odd rows.Paginal
getPaginal()
Returns the paging controller, or null if not available.Paging
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)
.PropertyAccess
getPropertyAccess(java.lang.String prop)
Returns the corresponding property access object from the given property name, if any.<T> RowRenderer<T>
getRowRenderer()
Returns the renderer to render each row, or null if the default renderer is used.Rows
getRows()
Returns the rows.int
getVisibleRows()
Returns the visible rows.java.lang.String
getZclass()
Returns the ZK Cascading Style class for this component.boolean
insertBefore(Component newChild, Component refChild)
Inserts a child before the reference child.protected boolean
isAutohidePaging()
boolean
isVflex()
Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.void
onAfterRender()
void
onInitRender()
Handles a private event, onInitRender.void
onPageAttached(Page newpage, Page oldpage)
Default: handles special event listeners.void
onPageDetached(Page page)
Default: handles special event listeners.void
onPagingInitRender()
Handles a private event, onPagingInitRender.protected Paginal
pgi()
Returns the instance of the @{link Paginal}boolean
removeChild(Component child)
Removes a child.void
renderAll()
Renders allRow
if not loaded yet, withgetRowRenderer()
.void
renderItems(java.util.Set<? extends Row> rows)
protected void
renderProperties(ContentRenderer renderer)
Renders the content of this component, excluding the enclosing tags and children.void
renderRow(Row row)
Renders the specifiedRow
if not loaded yet, withgetRowRenderer()
.void
renderRows(java.util.Set<? extends Row> rows)
Renders a set of specified rows.void
scrollToIndex(int index)
Scroll to the specified row by the given index.void
service(AuRequest request, boolean everError)
Processes an AU request.void
sessionDidActivate(Page page)
Notification that the session, which owns this component, has just been activated (a.k.a., deserialized).void
sessionWillPassivate(Page page)
Notification that the session, which owns this component, is about to be passivated (a.k.a., serialized).void
setActivePage(int pg)
Sets the active page (starting from 0).void
setEmptyMessage(java.lang.String emptyMessage)
Sets the message to display when there are no itemsvoid
setHeight(java.lang.String height)
Sets the height.void
setInnerWidth(java.lang.String innerWidth)
Sets the inner width of this component.void
setModel(GroupsModel<?,?,?> model)
Sets the groups model associated with this grid.void
setModel(ListModel<?> model)
Sets the list model associated with this grid.void
setMold(java.lang.String mold)
Sets the mold to render this component.void
setOddRowSclass(java.lang.String scls)
Sets the style class for the odd rows.void
setPageSize(int pgsz)
Sets the page size, a.k.a., the number rows per page.void
setPaginal(Paginal pgi)
Specifies the paging controller.void
setRowRenderer(java.lang.String clsnm)
Sets the renderer by use of a class name.void
setRowRenderer(RowRenderer<?> renderer)
Sets the renderer which is used to render each row ifgetModel()
is not null.void
setVflex(boolean vflex)
Sets whether to grow and shrink vertical to fit their given space, so called vertical flexibility.void
setVflex(java.lang.String flex)
Sets vertical flexibility hint of this component.void
setVisibleRows(int visibleRows)
Sets the visible rows.-
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, setSpan
-
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, focus, getAction, getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, 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, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
-
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, 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, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, 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
-
-
-
-
Method Detail
-
onPageAttached
public void onPageAttached(Page newpage, Page oldpage)
Description copied from class:AbstractComponent
Default: handles special event listeners.- Specified by:
onPageAttached
in interfaceComponentCtrl
- Overrides:
onPageAttached
in classAbstractComponent
- Parameters:
newpage
- the new page (never null).oldpage
- the previous page, if any, or null if it didn't belong to any page.- See Also:
ComponentCtrl.onPageAttached(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Page)
-
onPageDetached
public void onPageDetached(Page page)
Description copied from class:AbstractComponent
Default: handles special event listeners.- Specified by:
onPageDetached
in interfaceComponentCtrl
- Overrides:
onPageDetached
in classAbstractComponent
- Parameters:
page
- the previous page (never null)- See Also:
ComponentCtrl.onPageDetached(org.zkoss.zk.ui.Page)
-
isVflex
public boolean isVflex()
Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.Default: false.
- Since:
- 3.5.0
-
setVflex
public void setVflex(boolean vflex)
Sets whether to grow and shrink vertical to fit their given space, so called vertical flexibility.- Since:
- 3.5.0
-
setVflex
public void setVflex(java.lang.String flex)
Description copied from class:HtmlBasedComponent
Sets vertical flexibility hint of this component.Number flex indicates how this component's container distributes remaining empty space among its children vertically. 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:
setVflex
in classHtmlBasedComponent
- Parameters:
flex
- the vertical flex hint.- See Also:
HtmlBasedComponent.setHflex(java.lang.String)
,HtmlBasedComponent.getVflex()
-
getRows
public Rows getRows()
Returns the rows.
-
getColumns
public Columns getColumns()
Returns the columns.
-
getFoot
public Foot getFoot()
Returns the foot.
-
getFrozen
public Frozen getFrozen()
Returns the frozen child.- Since:
- 5.0.0
-
getHeads
public java.util.Collection<Component> getHeads()
Returns a collection of heads, includinggetColumns()
and auxiliary heads (Auxhead
) (never null).- Since:
- 3.0.0
-
getCell
public Component getCell(int row, int col)
Returns the specified cell, or null if not available.- Parameters:
row
- which row to fetch (starting at 0).col
- which column to fetch (starting at 0).
-
getVisibleRows
public int getVisibleRows()
Returns the visible rows. Zero means no limitation.Default: 0.
- Since:
- 8.5.0
-
setVisibleRows
public void setVisibleRows(int visibleRows) throws WrongValueException
Sets the visible rows.Note: Not allowed to set visibleRows and height/vflex at the same time
- Throws:
WrongValueException
- Since:
- 8.5.0
-
setHeight
public void setHeight(java.lang.String height)
Description copied from class:HtmlBasedComponent
Sets the height. If null, the best fit is used.- Overrides:
setHeight
in classHtmlBasedComponent
-
getPaginal
public Paginal 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 grid will rely on the paging controller to handle long-content instead of scrolling.
-
setPaginal
public void setPaginal(Paginal pgi)
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
public Paging 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
protected Paginal pgi()
Description copied from class:MeshElement
Returns the instance of the @{link Paginal}- Specified by:
pgi
in classMeshElement
-
getModel
public <T> ListModel<T> getModel()
Returns the model associated with this grid, or null if this grid is not associated with any list data model.Note: if
setModel(GroupsModel)
was called with a groups model, this method returns an instance ofListModel
encapsulating it.- See Also:
setModel(ListModel)
,setModel(GroupsModel)
-
getListModel
public <T> ListModel<T> getListModel()
Returns the list model associated with this grid, or null if this grid is associated with aGroupsModel
or not associated with any list data model.- Since:
- 3.5.0
- See Also:
setModel(ListModel)
-
getGroupsModel
public <D,G,F> GroupsModel<D,G,F> getGroupsModel()
Returns the groups model associated with this grid, or null if this grid is associated with aListModel
or not associated with any list data model.- Since:
- 3.5.0
- See Also:
setModel(GroupsModel)
-
setModel
public void setModel(ListModel<?> model)
Sets the list model associated with this grid. 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 dissociate any previous model.- Throws:
UiException
- if failed to initialize with the model- See Also:
getListModel()
,setModel(GroupsModel)
-
setModel
public void setModel(GroupsModel<?,?,?> model)
Sets the groups model associated with this grid. 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 dissociate any previous model.- Throws:
UiException
- if failed to initialize with the model- Since:
- 3.5.0
- See Also:
setModel(ListModel)
,getGroupsModel()
-
getRowRenderer
public <T> RowRenderer<T> getRowRenderer()
Returns the renderer to render each row, or null if the default renderer is used.
-
setRowRenderer
public void setRowRenderer(RowRenderer<?> renderer)
Sets the renderer which is used to render each row ifgetModel()
is not null.Note: changing a render will not cause the grid to re-render. If you want it to re-render, you could assign the same model again (i.e., setModel(getModel())), or fire an
ListDataEvent
event.- Parameters:
renderer
- the renderer, or null to use the default.- Throws:
UiException
- if failed to initialize with the model
-
setRowRenderer
public void setRowRenderer(java.lang.String clsnm) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException
Sets the renderer by use of a class name. It creates an instance automatically.- Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.reflect.InvocationTargetException
-
setInnerWidth
public void setInnerWidth(java.lang.String innerWidth)
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
public java.lang.String 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:
setInnerWidth(java.lang.String)
-
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.
-
renderRow
public void renderRow(Row row)
Renders the specifiedRow
if not loaded yet, withgetRowRenderer()
.It does nothing if
getModel()
returns null. In other words, it is meaningful only if live data model is used.
-
renderAll
public void renderAll()
Renders allRow
if not loaded yet, withgetRowRenderer()
.
-
renderRows
public void renderRows(java.util.Set<? extends Row> rows)
Renders a set of specified rows. It is the same asrenderItems(java.util.Set<? extends org.zkoss.zul.Row>)
.
-
renderItems
public void renderItems(java.util.Set<? extends Row> rows)
-
getOddRowSclass
public java.lang.String getOddRowSclass()
Returns the style class for the odd rows.Default:
getZclass()
-odd. (since 3.5.0)- Since:
- 3.0.0
-
setOddRowSclass
public void setOddRowSclass(java.lang.String scls)
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
-
setMold
public void setMold(java.lang.String mold)
Sets the mold to render this component.- Specified by:
setMold
in interfaceComponent
- Overrides:
setMold
in classAbstractComponent
- Parameters:
mold
- the mold. If null or empty, "default" is assumed. Allowed values: default, paging- See Also:
ComponentDefinition
-
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()
-
beforeChildAdded
public void beforeChildAdded(Component newChild, Component refChild)
Description copied from class:AbstractComponent
Default: does nothing.- Specified by:
beforeChildAdded
in interfaceComponentCtrl
- Overrides:
beforeChildAdded
in classAbstractComponent
- Parameters:
newChild
- 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)
-
insertBefore
public boolean insertBefore(Component newChild, Component refChild)
Description copied from interface:Component
Inserts a child before the reference child.You could use
Component.setParent(org.zkoss.zk.ui.Component)
orComponent.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 backComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and/orComponent.removeChild(org.zkoss.zk.ui.Component)
, whileComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.removeChild(org.zkoss.zk.ui.Component)
always calls backComponent.setParent(org.zkoss.zk.ui.Component)
, if the parent is changed. Thus, you don't need to override bothComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.setParent(org.zkoss.zk.ui.Component)
, if you want to customize the behavior.If you would like to monitor if a component is attached or detached from a page, you could register a desktop listener implementing
UiLifeCycle
.- Specified by:
insertBefore
in interfaceComponent
- Overrides:
insertBefore
in classAbstractComponent
- Parameters:
newChild
- the new child to be inserted.refChild
- 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.
-
removeChild
public boolean removeChild(Component child)
Description copied from interface:Component
Removes a child. The child is not actually removed. Rather, it is detached (seeComponent.detach()
) and it will be removed if it is no longer used.You could use
Component.setParent(org.zkoss.zk.ui.Component)
with null instead of this method.Note:
Component.setParent(org.zkoss.zk.ui.Component)
always calls backComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and/orComponent.removeChild(org.zkoss.zk.ui.Component)
, whileComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.removeChild(org.zkoss.zk.ui.Component)
always calls backComponent.setParent(org.zkoss.zk.ui.Component)
, if the parent is changed. Thus, you don't need to override bothComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.setParent(org.zkoss.zk.ui.Component)
, if you want to customize the behavior.If you would like to monitor if a component is attached or detached from a page, you could register a desktop listener implementing
UiLifeCycle
.- Specified by:
removeChild
in interfaceComponent
- Overrides:
removeChild
in classAbstractComponent
- Returns:
- true if child is removed successfully; false if it doesn't have the specified child
-
isAutohidePaging
protected boolean isAutohidePaging()
- Specified by:
isAutohidePaging
in classMeshElement
-
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.
-
getEmptyMessage
public java.lang.String getEmptyMessage()
Returns the message to display when there are no items- Returns:
- String
- Since:
- 5.0.7
-
setEmptyMessage
public void setEmptyMessage(java.lang.String emptyMessage)
Sets the message to display when there are no items- Parameters:
emptyMessage
-- Since:
- 5.0.7
-
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 classMeshElement
- Throws:
java.io.IOException
-
sessionWillPassivate
public void sessionWillPassivate(Page page)
Description copied from interface:ComponentCtrl
Notification that the session, which owns this component, is about to be passivated (a.k.a., serialized).Note: only root components are notified by this method.
- Specified by:
sessionWillPassivate
in interfaceComponentCtrl
- Overrides:
sessionWillPassivate
in classAbstractComponent
-
sessionDidActivate
public void sessionDidActivate(Page page)
Description copied from interface:ComponentCtrl
Notification that the session, which owns this component, has just been activated (a.k.a., deserialized).Note: only root components are notified by this method.
- Specified by:
sessionDidActivate
in interfaceComponentCtrl
- Overrides:
sessionDidActivate
in classAbstractComponent
-
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()
-
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.
-
service
public void service(AuRequest request, boolean everError)
Processes an AU request.Default: in addition to what are handled by
HtmlBasedComponent.service(AuRequest, boolean)
, it also handles onSelect.- Specified by:
service
in interfaceComponentCtrl
- Overrides:
service
in classHtmlBasedComponent
everError
- whether any error ever occurred before processing this request.- Since:
- 5.0.0
- See Also:
AbstractComponent.setAuService(org.zkoss.zk.au.AuService)
-
setActivePage
public void setActivePage(int pg) throws WrongValueException
Description copied from class:MeshElement
Sets the active page (starting from 0).- Overrides:
setActivePage
in classMeshElement
- Throws:
WrongValueException
-
setPageSize
public void setPageSize(int pgsz) throws WrongValueException
Description copied from class:MeshElement
Sets the page size, a.k.a., the number rows per page.- Overrides:
setPageSize
in classMeshElement
- Throws:
WrongValueException
-
onAfterRender
public void onAfterRender()
-
scrollToIndex
public void scrollToIndex(int index)
Scroll to the specified row by the given index.- Parameters:
index
- the index of row- Since:
- 8.5.2
-
-