org.zkoss.zul
Class Grid

java.lang.Object
  extended by org.zkoss.zk.ui.AbstractComponent
      extended by org.zkoss.zk.ui.HtmlBasedComponent
          extended by org.zkoss.zul.impl.XulElement
              extended by org.zkoss.zul.impl.MeshElement
                  extended by org.zkoss.zul.Grid
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 (a ListModel or GroupsModel instance) to a grid via setModel(ListModel) or setModel(GroupsModel) and then the grid will retrieve data by calling ListModel.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 by ListModel.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 by ListModel.getElementAt(int)

There are two ways to handle long content: scrolling and paging. If AbstractComponent.getMold() is "default", scrolling is used if HtmlBasedComponent.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 rows to display in a page, use MeshElement.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 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)) 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 Grid's ROD to request ZK engine to load from ListModel only the required data chunk and create only the required Rows 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 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 to HtmlBasedComponent.setHeight(String) or HtmlBasedComponent.setVflex(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.


        
                org.zkoss.zul.grid.rod
                true
        
 

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:


        
    
  
 

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 Rows are created and rendered in the Grid if you turn the ROD on, there will be some limitations on accessing Rows. For example, if you call


 Row 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 the Row 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:
  1. setModel(org.zkoss.zul.ListModel) is called and Column.setSortDirection(java.lang.String) is set.
  2. Column.setSortDirection(java.lang.String) is called.
  3. Model receives ListDataEvent and Column.setSortDirection(java.lang.String) is set.
If you want to ignore sort when receiving 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
protected  class Grid.ExtraCtrl
          A utility class to implement HtmlBasedComponent.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
 
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
CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
 
Constructor Summary
Grid()
           
 
Method Summary
 void beforeChildAdded(Component newChild, Component refChild)
          Default: does nothing.
 java.lang.Object clone()
          Clones the component.
 java.lang.String getAlign()
          Deprecated. As of release 5.0, use CSS instead.
 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 items
 java.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 a ListModel or not associated with any list data model.
 java.util.Collection<Component> getHeads()
          Returns a collection of heads, including getColumns() 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 a GroupsModel 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 by setPaginal(org.zkoss.zul.ext.Paginal).
 int getPreloadSize()
          Deprecated. As of release 5.0.8, use custom attributes (org.zkoss.zul.listbox.preloadSize) instead. Returns the number of rows to preload when receiving the rendering request from the client.

Default: 50. (since 6.0.1)

It is used only if live data (setModel(ListModel) and not paging (getPagingChild().

Note: if the "pre-load-size" attribute of component is specified, it's prior to the original value.(@since 3.0.4)

<T> RowRenderer<T>
getRowRenderer()
          Returns the renderer to render each row, or null if the default renderer is used.
 Rows getRows()
          Returns the rows.
 java.lang.String getZclass()
          Returns the ZK Cascading Style class(es) for this component.
 boolean insertBefore(Component newChild, Component refChild)
          Inserts a child before the reference child.
protected  boolean isAutohidePaging()
           
 boolean isFixedLayout()
          Deprecated. since 5.0.0, use !MeshElement.isSizedByContent() instead
 boolean isVflex()
          Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.
 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 all Row if not loaded yet, with getRowRenderer().
 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 specified Row if not loaded yet, with getRowRenderer().
 void renderRows(java.util.Set<? extends Row> rows)
          Renders a set of specified rows.
 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 setAlign(java.lang.String align)
          Deprecated. As of release 5.0, use CSS instead.
 void setEmptyMessage(java.lang.String emptyMessage)
          Sets the message to display when there are no items
 void setFixedLayout(boolean fixedLayout)
          Deprecated. since 5.0.0, use MeshElement.setSizedByContent(boolean)(!fixedLayout) instead
 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 setPaginal(Paginal pgi)
          Specifies the paging controller.
 void setPreloadSize(int sz)
          Deprecated. As of release 5.0.8, use custom attributes (org.zkoss.zul.listbox.preloadSize) instead. Sets 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().

 void setRowRenderer(RowRenderer<?> renderer)
          Sets the renderer which is used to render each row if getModel() is not null.
 void setRowRenderer(java.lang.String clsnm)
          Sets the renderer by use of a class name.
 void setVflex(boolean vflex)
          Sets whether to grow and shrink vertical to fit their given space, so called vertical flexibility.
 
Methods inherited from class org.zkoss.zul.impl.MeshElement
getActivePage, getPageCount, getPageSize, getPagingPosition, getSpan, isAutopaging, isSizedByContent, isSpan, setActivePage, setAutopaging, setPageSize, setPagingPosition, setSizedByContent, setSpan, setSpan
 
Methods inherited from class org.zkoss.zul.impl.XulElement
getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, setAction, setClass, setDraggable, setDroppable, setFocus, setHeight, setHeightDirectly, setHflex, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTooltiptext, setTop, setTopDirectly, setVflex, setWidth, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
 
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildRemoved, beforeParentChanged, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, enableBindingAnnotation, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getChildren, getClientAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowRoots, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, invalidate, isChildable, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, replace, response, response, response, service, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setDefinition, setDefinition, setId, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Grid

public Grid()
Method Detail

onPageAttached

public void onPageAttached(Page newpage,
                           Page oldpage)
Description copied from class: AbstractComponent
Default: handles special event listeners.

Specified by:
onPageAttached in interface ComponentCtrl
Overrides:
onPageAttached in class AbstractComponent
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 interface ComponentCtrl
Overrides:
onPageDetached in class AbstractComponent
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

setFixedLayout

public void setFixedLayout(boolean fixedLayout)
Deprecated. since 5.0.0, use MeshElement.setSizedByContent(boolean)(!fixedLayout) instead

Parameters:
fixedLayout - true to outline this grid by browser

isFixedLayout

public boolean isFixedLayout()
Deprecated. since 5.0.0, use !MeshElement.isSizedByContent() instead


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, including getColumns() 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).

getAlign

public java.lang.String getAlign()
Deprecated. As of release 5.0, use CSS instead.


setAlign

public void setAlign(java.lang.String align)
Deprecated. As of release 5.0, use CSS instead.


getPaginal

public Paginal getPaginal()
Returns the paging controller, or null if not available. Note: the paging controller is used only if AbstractComponent.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 by setMold(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 if AbstractComponent.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 and AbstractComponent.getMold() is "paging", a paging controller is created automatically as a child component (see getPagingChild()).

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 by setPaginal(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 class MeshElement

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 of ListModel 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 a GroupsModel 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 a ListModel 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 if getModel() 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

getPreloadSize

public int getPreloadSize()
Deprecated. As of release 5.0.8, use custom attributes (org.zkoss.zul.listbox.preloadSize) instead. Returns the number of rows to preload when receiving the rendering request from the client.

Default: 50. (since 6.0.1)

It is used only if live data (setModel(ListModel) and not paging (getPagingChild().

Note: if the "pre-load-size" attribute of component is specified, it's prior to the original value.(@since 3.0.4)

Since:
2.4.1

setPreloadSize

public void setPreloadSize(int sz)
Deprecated. As of release 5.0.8, use custom attributes (org.zkoss.zul.listbox.preloadSize) instead. Sets 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().

Parameters:
sz - the number of rows to preload. If zero, no preload at all.
Throws:
UiException - if sz is negative
Since:
2.4.1

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 specified Row if not loaded yet, with getRowRenderer().

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 all Row if not loaded yet, with getRowRenderer().


renderRows

public void renderRows(java.util.Set<? extends Row> rows)
Renders a set of specified rows. It is the same as renderItems(java.util.Set).


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 interface Component
Overrides:
setMold in class AbstractComponent
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(es) 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 of HtmlBasedComponent.getZclass(). Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, use HtmlBasedComponent.setSclass(java.lang.String) instead.

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

beforeChildAdded

public void beforeChildAdded(Component newChild,
                             Component refChild)
Description copied from class: AbstractComponent
Default: does nothing.

Specified by:
beforeChildAdded in interface ComponentCtrl
Overrides:
beforeChildAdded in class AbstractComponent
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) or Component.appendChild(org.zkoss.zk.ui.Component) instead of this method, unless you want to control where to put the child.

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

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 interface Component
Overrides:
insertBefore in class AbstractComponent
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 (see Component.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 back Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and/or Component.removeChild(org.zkoss.zk.ui.Component), while Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.removeChild(org.zkoss.zk.ui.Component) always calls back Component.setParent(org.zkoss.zk.ui.Component), if the parent is changed. Thus, you don't need to override both Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component) and Component.setParent(org.zkoss.zk.ui.Component), if you want to customize the behavior.

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 interface Component
Overrides:
removeChild in class AbstractComponent
Returns:
true if child is removed successfully; false if it doesn't have the specified child

isAutohidePaging

protected boolean isAutohidePaging()
Specified by:
isAutohidePaging in class MeshElement

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 interface Component
Overrides:
clone in class XulElement
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.

See also ZK Client-side Reference: Property Rendering

Overrides:
renderProperties in class MeshElement
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 interface ComponentCtrl
Overrides:
sessionWillPassivate in class AbstractComponent

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 interface ComponentCtrl
Overrides:
sessionDidActivate in class AbstractComponent

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 interface ComponentCtrl
Overrides:
getExtraCtrl in class HtmlBasedComponent
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()

service

public void service(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:
service in interface ComponentCtrl
Overrides:
service in class HtmlBasedComponent
everError - whether any error ever occurred before processing this request.
Since:
5.0.0
See Also:
AbstractComponent.setAuService(org.zkoss.zk.au.AuService)


Copyright © 2005-2011 Potix Corporation. All Rights Reserved. SourceForge.net Logo