org.apache.wicket.extensions.markup.html.repeater.data.table
Class DataTable

java.lang.Object
  extended by org.apache.wicket.Component
      extended by org.apache.wicket.MarkupContainer
          extended by org.apache.wicket.markup.html.WebMarkupContainer
              extended by org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
                  extended by org.apache.wicket.markup.html.panel.Panel
                      extended by org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable
All Implemented Interfaces:
java.io.Serializable, IClusterable, IConverterLocator, IHeaderPartContainerProvider, IPageable
Direct Known Subclasses:
AjaxFallbackDefaultDataTable, DefaultDataTable

public class DataTable
extends Panel
implements IPageable

A data table builds on data grid view to introduce toolbars. Toolbars can be used to display sortable column headers, paging information, filter controls, and other information.

Data table also provides its own markup for an html table so the user does not need to provide it himself. This makes it very simple to add a datatable to the markup, however, some flexibility.

Example

             <table wicket:id="datatable"></table>
 
And the related Java code: ( the first column will be sortable because its sort property is specified, the second column will not )
 
 IColumn[] columns = new IColumn[2];
 
 columns[0] = new PropertyColumn(new Model("First Name"), "name.first", "name.first");
 columns[1] = new PropertyColumn(new Model("Last Name"), "name.last");
 
 DataTable table = new DataTable("datatable", columns, new UserProvider(), 10);
 table.add(new NavigationToolbar(table));
 table.add(new HeadersToolbar(table));
 add(table);
 
 

Author:
Igor Vaynberg (ivaynberg)
See Also:
DefaultDataTable, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.IVisitor, Component.VisibilityChange
 
Field Summary
static java.lang.String TOOLBAR_COMPONENT_ID
          The component id that toolbars must be created with in order to be added to the data table
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER
 
Constructor Summary
DataTable(java.lang.String id, IColumn[] columns, IDataProvider dataProvider, int rowsPerPage)
          Constructor
 
Method Summary
 void addBottomToolbar(AbstractToolbar toolbar)
          Adds a toolbar to the datatable that will be displayed after the data
 void addTopToolbar(AbstractToolbar toolbar)
          Adds a toolbar to the datatable that will be displayed before the data
 IColumn[] getColumns()
           
 int getCurrentPage()
           
 int getPageCount()
          Gets the total number of pages this pageable object has.
 int getRowCount()
           
 int getRowsPerPage()
           
protected  Item newCellItem(java.lang.String id, int index, IModel model)
          Factory method for Item container that represents a cell in the underlying DataGridView
protected  Item newRowItem(java.lang.String id, int index, IModel model)
          Factory method for Item container that represents a row in the underlying DataGridView
protected  void onDetach()
          Called to allow a component to detach resources after use.
protected  void onPageChanged()
          Event listener for page-changed event
 void setCurrentPage(int page)
          Sets the a page that should be rendered.
 DataTable setItemReuseStrategy(IItemReuseStrategy strategy)
          Sets the item reuse strategy.
 void setRowsPerPage(int items)
          Sets the number of items to be displayed per page
 
Methods inherited from class org.apache.wicket.markup.html.panel.Panel
onComponentTag, onComponentTagBody, renderHead
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
newHeaderPartContainer, renderHeadFromAssociatedMarkupFile
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, replace, setMarkupStream, setModel, size, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, continueToOriginalDestination, debug, detach, detachBehaviors, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getBehaviors, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMetaData, getModel, getModelComparator, getModelObject, getModelObjectAsString, getModelObjectAsString, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageFactory, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalAttach, internalDetach, internalOnAttach, internalOnDetach, internalOnModelChanged, isActionAuthorized, isAncestorOf, isAttached, isBehaviorAccepted, isEnableAllowed, isEnabled, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, newPage, newPage, onAfterRender, onAttach, onBeforeRender, onBeginRequest, onEndRequest, onModelChanged, onModelChanging, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMetaData, setModelObject, setOutputMarkupId, setOutputMarkupPlaceholderTag, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TOOLBAR_COMPONENT_ID

public static final java.lang.String TOOLBAR_COMPONENT_ID
The component id that toolbars must be created with in order to be added to the data table

See Also:
Constant Field Values
Constructor Detail

DataTable

public DataTable(java.lang.String id,
                 IColumn[] columns,
                 IDataProvider dataProvider,
                 int rowsPerPage)
Constructor

Parameters:
id - component id
columns - list of IColumn objects
dataProvider - imodel for data provider
rowsPerPage - number of rows per page
Method Detail

addBottomToolbar

public void addBottomToolbar(AbstractToolbar toolbar)
Adds a toolbar to the datatable that will be displayed after the data

Parameters:
toolbar - toolbar to be added
See Also:
AbstractToolbar

addTopToolbar

public void addTopToolbar(AbstractToolbar toolbar)
Adds a toolbar to the datatable that will be displayed before the data

Parameters:
toolbar - toolbar to be added
See Also:
AbstractToolbar

getColumns

public final IColumn[] getColumns()
Returns:
array of column objects this table displays

getCurrentPage

public final int getCurrentPage()
Specified by:
getCurrentPage in interface IPageable
Returns:
The current page that is or will be rendered.
See Also:
IPageable.getCurrentPage()

getPageCount

public final int getPageCount()
Description copied from interface: IPageable
Gets the total number of pages this pageable object has.

Specified by:
getPageCount in interface IPageable
Returns:
The total number of pages this pageable object has
See Also:
IPageable.getPageCount()

getRowCount

public final int getRowCount()
Returns:
total number of rows in this table

getRowsPerPage

public final int getRowsPerPage()
Returns:
number of rows per page

setCurrentPage

public final void setCurrentPage(int page)
Description copied from interface: IPageable
Sets the a page that should be rendered.

Specified by:
setCurrentPage in interface IPageable
Parameters:
page - The page that should be rendered.
See Also:
IPageable.setCurrentPage(int)

setItemReuseStrategy

public final DataTable setItemReuseStrategy(IItemReuseStrategy strategy)
Sets the item reuse strategy. This strategy controls the creation of Items.

Parameters:
strategy - item reuse strategy
Returns:
this for chaining
See Also:
RefreshingView.setItemReuseStrategy(IItemReuseStrategy), IItemReuseStrategy

setRowsPerPage

public void setRowsPerPage(int items)
Sets the number of items to be displayed per page

Parameters:
items - number of items to display per page

newCellItem

protected Item newCellItem(java.lang.String id,
                           int index,
                           IModel model)
Factory method for Item container that represents a cell in the underlying DataGridView

Parameters:
id - component id for the new data item
index - the index of the new data item
model - the model for the new data item
Returns:
DataItem created DataItem
See Also:
Item

newRowItem

protected Item newRowItem(java.lang.String id,
                          int index,
                          IModel model)
Factory method for Item container that represents a row in the underlying DataGridView

Parameters:
id - component id for the new data item
index - the index of the new data item
model - the model for the new data item.
Returns:
DataItem created DataItem
See Also:
Item

onDetach

protected void onDetach()
Description copied from class: Component
Called to allow a component to detach resources after use. Overrides of this method MUST call the super implementation, the most logical place to do this is the last line of the override method.

Overrides:
onDetach in class Component
See Also:
Component.onDetach()

onPageChanged

protected void onPageChanged()
Event listener for page-changed event



Copyright © 2004-2010 Apache Software Foundation. All Rights Reserved.