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.Grid
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, HtmlBasedComponent, Component, Scope, ComponentCtrl, Grid, Paginated, XulElement

public class Grid
extends XulElement
implements Paginated, Grid

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.

Besides creating Row programmingly, 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 setPageSize(int).

If paging is used, the page controller is either created automatically or assigned explicity 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.

Author:
tomyeh
See Also:
ListModel, RowRenderer, RowRendererExt, Serialized Form

Nested Class Summary
protected  class Grid.ExtraCtrl
          A utility class to implement AbstractComponent.getExtraCtrl().
 
Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent
AbstractComponent.Children
 
Field Summary
 
Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
_height, _left, _top, _width, _zclass
 
Fields inherited from class org.zkoss.zk.ui.AbstractComponent
_visible
 
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.
 int getActivePage()
          Returns the active page (starting from 0).
 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.
 Columns getColumnsApi()
          Returns the columns.
 Foot getFoot()
          Returns the foot.
 Foot getFootApi()
          Returns the foot.
 Frozen getFrozen()
          Returns the frozen child.
 GroupsModel 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 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.
 ListModel 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.
 ListModel 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.
 int getPageCount()
          Returns the number of pages.
 int getPageSize()
          Returns the page size, aka., the number rows per page.
 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).
 Paging getPagingChildApi()
          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).
 java.lang.String getPagingPosition()
          Returns how to position the paging of grid at the client screen.
 int getPreloadSize()
          Returns the number of rows to preload when receiving the rendering request from the client.
 RowRenderer getRowRenderer()
          Returns the renderer to render each row, or null if the default renderer is used.
 Rows getRows()
          Returns the rows.
 Rows getRowsApi()
          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.
 boolean isFixedLayout()
          Deprecated. since 5.0.0, use !isSizedByContent() instead
 boolean isSizedByContent()
          Returns whether sizing grid column width by its content.
 boolean isVflex()
          Returns whether to grow and shrink vertical to fit their given space, so called vertical flexibility.
protected  java.lang.Object newExtraCtrl()
          Used by AbstractComponent.getExtraCtrl() to create a client control.
 void onInitRender()
          Handles a private event, onInitRender.
 void onPageAttached(Page newpage, Page oldpage)
          Default: handles special event listeners.
 boolean removeChild(Component child)
          Removes a child.
 void renderAll()
          Renders all Row if not loaded yet, with getRowRenderer().
 void renderItems(java.util.Set 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 renderRowApi(Row rowApi)
          Renders the specified Row if not loaded yet, with getRowRenderer().
 void renderRows(java.util.Set 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 (aka., deserialized).
 void sessionWillPassivate(Page page)
          Notification that the session, which owns this component, is about to be passivated (aka., serialized).
 void setActivePage(int pg)
          Sets the active page (starting from 0).
 void setAlign(java.lang.String align)
          Deprecated. As of release 5.0, use CSS instead.
 void setFixedLayout(boolean fixedLayout)
          Deprecated. since 5.0.0, use 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 setPageSize(int pgsz)
          Sets the page size, aka., the number rows per page.
 void setPaginal(Paginal pgi)
          Specifies the paging controller.
 void setPagingPosition(java.lang.String pagingPosition)
          Sets how to position the paging of grid at the client screen.
 void setPreloadSize(int sz)
          Sets the number of rows to preload when receiving the rendering request from the client.
 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 setSizedByContent(boolean byContent)
          Sets whether sizing grid column width by its content.
 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.XulElement
getAction, getContext, getCtrlKeys, getPopup, getTooltip, setAction, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getDraggable, getDroppable, getHeight, getHflex, getLeft, getSclass, getStyle, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, setClass, setDraggable, setDroppable, setFocus, setHeight, setHflex, setLeft, setSclass, setStyle, setTooltiptext, setTop, setVflex, setWidth, setZclass, setZindex, setZIndex
 
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addClientEvent, addEventHandler, addEventListener, addForward, addForward, addForward, addForward, addMoved, addScopeListener, addSharedAnnotationMap, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildRemoved, beforeParentChanged, containsVariable, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableClientUpdate, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getChildren, getClientEvents, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getExtraCtrl, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getRoot, getSpaceOwner, getUuid, getVariable, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasFellow, hasFellow, invalidate, isChildable, isInvalidated, isListenerAvailable, isVisible, newChildren, onChildAdded, onChildRemoved, onPageDetached, onWrongValue, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeEventListener, removeForward, removeForward, removeScopeListener, render, render, render, response, setAttribute, setAttribute, setAttribute, setAuService, setDefinition, setDefinition, setId, setPage, setPageBefore, setParent, setVariable, setVisible, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, unsetVariable, updateByClient, willPassivate, willPassivate, willSerialize, willSerialize
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.zkoss.zul.impl.api.XulElement
getAction, getContext, getCtrlKeys, getPopup, getTooltip, setAction, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from interface org.zkoss.zk.ui.api.HtmlBasedComponent
focus, getHeight, getLeft, getSclass, getStyle, getTooltiptext, getTop, getWidth, getZindex, getZIndex, setDraggable, setDroppable, setFocus, setHeight, setLeft, setSclass, setStyle, setTooltiptext, setTop, setWidth, setZclass, setZindex, setZIndex
 
Methods inherited from interface org.zkoss.zk.ui.Component
addEventListener, addForward, addForward, addForward, addForward, appendChild, applyProperties, containsVariable, detach, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getChildren, getDefinition, getDesktop, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getRoot, getSpaceOwner, getUuid, getVariable, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttributeOrFellow, hasFellow, hasFellow, invalidate, isInvalidated, isListenerAvailable, isVisible, removeAttribute, removeAttribute, removeEventListener, removeForward, removeForward, setAttribute, setAttribute, setAuService, setId, setPage, setPageBefore, setParent, setVariable, setVisible, setWidgetListener, setWidgetOverride, unsetVariable
 
Methods inherited from interface org.zkoss.zk.ui.ext.Scope
addScopeListener, getAttribute, hasAttribute, removeAttribute, removeScopeListener, setAttribute
 

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)

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.

Specified by:
setVflex in interface Grid
Since:
3.5.0

setFixedLayout

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

Description copied from interface: Grid
Sets the outline of grid whether is fixed layout. If true, the outline of grid will be depended on browser. It means, we don't calculate the width of each cell. Otherwise, the outline will count on the content of body. In other words, the outline of grid is like ZK 2.4.1 version that the header's width is only for reference.

You can also specify the "fixed-layout" attribute of component in lang-addon.xml directly, it's a top priority.

Specified by:
setFixedLayout in interface Grid
Parameters:
fixedLayout - true to outline this grid by browser

isFixedLayout

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

Description copied from interface: Grid
Returns the outline of grid whether is fixed layout.

Default: false.

Note: if the "fixed-layout" attribute of component is specified, it's prior to the original value.

Specified by:
isFixedLayout in interface Grid

setSizedByContent

public void setSizedByContent(boolean byContent)
Sets whether sizing grid column width by its content. Default is false, i.e. the outline of grid is dependent on browser. It means, we don't calculate the width of each cell. If set to true, the outline will count on the content of body. In other words, the outline of grid will be like ZK version 2.4.1 that the header's width is only for reference.

You can also specify the "sized-by-content" attribute of component in lang-addon.xml directly, it will then take higher priority.

Specified by:
setSizedByContent in interface Grid
Parameters:
byContent -
Since:
5.0.0

isSizedByContent

public boolean isSizedByContent()
Returns whether sizing grid column width by its content. Default is false.

Note: if the "sized-by-content" attribute of component is specified, it's prior to the original value.

Specified by:
isSizedByContent in interface Grid
Since:
5.0.0
See Also:
setSizedByContent(boolean)

getRows

public Rows getRows()
Returns the rows.


getRowsApi

public Rows getRowsApi()
Returns the rows.

Specified by:
getRowsApi in interface Grid
Since:
3.5.2

getColumns

public Columns getColumns()
Returns the columns.


getColumnsApi

public Columns getColumnsApi()
Returns the columns.

Specified by:
getColumnsApi in interface Grid
Since:
3.5.2

getFoot

public Foot getFoot()
Returns the foot.


getFrozen

public Frozen getFrozen()
Returns the frozen child.

Since:
5.0.0

getFootApi

public Foot getFootApi()
Returns the foot.

Specified by:
getFootApi in interface Grid
Since:
3.5.2

getHeads

public java.util.Collection getHeads()
Returns a collection of heads, including getColumns() and auxiliary heads (Auxhead) (never null).

Specified by:
getHeads in interface Grid
Since:
3.0.0

getCell

public Component getCell(int row,
                         int col)
Returns the specified cell, or null if not available.

Specified by:
getCell in interface Grid
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.

Specified by:
getAlign in interface Grid

setAlign

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

Specified by:
setAlign in interface Grid

setPagingPosition

public void setPagingPosition(java.lang.String pagingPosition)
Sets how to position the paging of grid at the client screen. It is meaningless if the mold is not in "paging".

Specified by:
setPagingPosition in interface Grid
Parameters:
pagingPosition - how to position. It can only be "bottom" (the default), or "top", or "both".
Since:
3.0.4

getPagingPosition

public java.lang.String getPagingPosition()
Returns how to position the paging of grid at the client screen. It is meaningless if the mold is not in "paging".

Specified by:
getPagingPosition in interface Paginated
Since:
3.0.4

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 automcatically (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.

Specified by:
getPaginal in interface Grid

setPaginal

public void setPaginal(Paginal pgi)
Description copied from interface: Grid
Specifies the paging controller. Note: the paging controller is used only if Component.getMold() is "paging".

It is OK, though without any effect, to specify a paging controller even if mold is not "paging".

Specified by:
setPaginal in interface Grid
Parameters:
pgi - the paging controller. If null and Component.getMold() is "paging", a paging controller is created automatically as a child component (see Grid.getPagingChildApi()).

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

getPagingChildApi

public Paging getPagingChildApi()
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).

Specified by:
getPagingChildApi in interface Grid
Since:
3.5.2

getPageSize

public int getPageSize()
Returns the page size, aka., the number rows per page.

Specified by:
getPageSize in interface Grid
Throws:
java.lang.IllegalStateException - if getPaginal() returns null, i.e., mold is not "paging" and no external controller is specified.

setPageSize

public void setPageSize(int pgsz)
                 throws WrongValueException
Sets the page size, aka., the number rows per page.

Specified by:
setPageSize in interface Grid
Throws:
java.lang.IllegalStateException - if getPaginal() returns null, i.e., mold is not "paging" and no external controller is specified.
WrongValueException

getPageCount

public int getPageCount()
Returns the number of pages. Note: there is at least one page even no item at all.

Specified by:
getPageCount in interface Grid
Since:
3.0.4

getActivePage

public int getActivePage()
Returns the active page (starting from 0).

Specified by:
getActivePage in interface Grid
Since:
3.0.4

setActivePage

public void setActivePage(int pg)
                   throws WrongValueException
Sets the active page (starting from 0).

Specified by:
setActivePage in interface Grid
Throws:
WrongValueException
Since:
3.0.4

getModel

public ListModel 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.

Specified by:
getModel in interface Grid
See Also:
setModel(ListModel), setModel(GroupsModel)

getListModel

public ListModel 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.

Specified by:
getListModel in interface Grid
Since:
3.5.0
See Also:
setModel(ListModel)

getGroupsModel

public GroupsModel 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.

Specified by:
getGroupsModel in interface Grid
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.

Specified by:
setModel in interface Grid
Parameters:
model - the list model to associate, or null to dis-associate 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.

Specified by:
setModel in interface Grid
Parameters:
model - the groups model to associate, or null to dis-associate any previous model.
Throws:
UiException - if failed to initialize with the model
Since:
3.5.0
See Also:
setModel(ListModel), getGroupsModel()

getRowRenderer

public RowRenderer getRowRenderer()
Returns the renderer to render each row, or null if the default renderer is used.

Specified by:
getRowRenderer in interface Grid

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.

Specified by:
setRowRenderer in interface Grid
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.

Specified by:
setRowRenderer in interface Grid
Throws:
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.reflect.InvocationTargetException

getPreloadSize

public int getPreloadSize()
Returns the number of rows to preload when receiving the rendering request from the client.

Default: 7.

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)

Specified by:
getPreloadSize in interface Grid
Since:
2.4.1

setPreloadSize

public void setPreloadSize(int sz)
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().

Specified by:
setPreloadSize in interface Grid
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.

Specified by:
setInnerWidth in interface Grid
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%"

Specified by:
getInnerWidth in interface Grid
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.


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.


renderRowApi

public void renderRowApi(Row rowApi)
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.

Specified by:
renderRowApi in interface Grid
Parameters:
rowApi - assume as a Row
Since:
3.5.2

renderAll

public void renderAll()
Renders all Row if not loaded yet, with getRowRenderer().

Specified by:
renderAll in interface Grid

renderRows

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

Specified by:
renderRows in interface Grid

renderItems

public void renderItems(java.util.Set rows)
Specified by:
renderItems in interface Grid

getOddRowSclass

public java.lang.String getOddRowSclass()
Returns the style class for the odd rows.

Default: getZclass()-odd. (since 3.5.0)

Specified by:
getOddRowSclass in interface Grid
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.

Specified by:
setOddRowSclass in interface Grid
Since:
3.0.0

setMold

public void setMold(java.lang.String mold)
Description copied from interface: Component
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.
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 (@{link #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.

Specified by:
getZclass in interface HtmlBasedComponent
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.

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.

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

clone

public java.lang.Object clone()
Description copied from interface: Component
Clones the component. All of its children is cloned. Notice that the cloned component doesn't belong to any page, nor desktop. It doesn't have parent, either.

Specified by:
clone in interface Component
Overrides:
clone in class AbstractComponent

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 Render Special Properties

Overrides:
renderProperties in class XulElement
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 (aka., 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 (aka., deserialized).

Note: only root components are notified by this method.

Specified by:
sessionDidActivate in interface ComponentCtrl
Overrides:
sessionDidActivate in class AbstractComponent

newExtraCtrl

protected java.lang.Object newExtraCtrl()
Description copied from class: HtmlBasedComponent
Used by AbstractComponent.getExtraCtrl() to create a client control. It is used only by component developers.

Defaut: creates an instance of HtmlBasedComponent.ExtraCtrl.

Overrides:
newExtraCtrl in class HtmlBasedComponent

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 occured before processing this request.
Since:
5.0.0
See Also:
AbstractComponent.setAuService(org.zkoss.zk.au.AuService)


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