org.apache.wicket.markup.repeater
Class AbstractPageableView<T>

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.repeater.AbstractRepeater
                  extended by org.apache.wicket.markup.repeater.RepeatingView
                      extended by org.apache.wicket.markup.repeater.RefreshingView<T>
                          extended by org.apache.wicket.markup.repeater.AbstractPageableView<T>
Type Parameters:
T - Model object type
All Implemented Interfaces:
Serializable, IClusterable, IConverterLocator, IPageable
Direct Known Subclasses:
DataViewBase

public abstract class AbstractPageableView<T>
extends RefreshingView<T>
implements IPageable

An abstract repeater view that provides paging functionality to its subclasses.

The view is populated by overriding the getItemModels(int offset, int count) method and providing an iterator that returns models for items in the current page. The AbstractPageableView builds the items that will be rendered by looping over the models and calling the newItem(String id, int index, IModel model) to generate the child item container followed by populateItem(Component item) to let the user populate the newly created item container with with custom components.

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

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.IVisitor<T extends Component>, Component.VisibilityChange
 
Field Summary
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_CONFIGURED, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractPageableView(String id)
           
AbstractPageableView(String id, IModel<? extends Collection<? extends T>> model)
          Constructor
 
Method Summary
 int getCurrentPage()
           
 int getItemCount()
          Get the item count.
protected  Iterator<IModel<T>> getItemModels()
          This method retrieves the subset of models for items in the current page and allows RefreshingView to generate items.
protected abstract  Iterator<IModel<T>> getItemModels(int offset, int size)
          Returns an iterator over models for items in the current page
 int getPageCount()
          Gets the total number of pages this pageable object has.
 int getRowCount()
          Get the row count.
protected  int getViewOffset()
           
protected  int getViewSize()
           
protected abstract  int internalGetItemCount()
           
protected  int internalGetRowsPerPage()
           
protected  void internalSetRowsPerPage(int items)
          Sets the maximum number of items to show per page.
protected  void onBeforeRender()
          Called just before a component is rendered.
protected  void onDetach()
          Called to allow a component to detach resources after use.
 void setCurrentPage(int page)
          Sets the a page that should be rendered.
 
Methods inherited from class org.apache.wicket.markup.repeater.RefreshingView
addItems, getItemReuseStrategy, getItems, newItem, newItemFactory, onPopulate, populateItem, setItemReuseStrategy
 
Methods inherited from class org.apache.wicket.markup.repeater.RepeatingView
newChildId, renderIterator
 
Methods inherited from class org.apache.wicket.markup.repeater.AbstractRepeater
onRender, renderChild
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onAfterRenderChildren, onComponentTagBody, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, renderNext, replace, setDefaultModel, setMarkupStream, size, swap, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachBehaviors, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviors, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdImpl, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, 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, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, onAfterRender, onAttach, onBeginRequest, onComponentTag, onConfigure, onEndRequest, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMarkupIdImpl, setMetaData, 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
 

Constructor Detail

AbstractPageableView

public AbstractPageableView(String id,
                            IModel<? extends Collection<? extends T>> model)
Constructor

Parameters:
id -
model -
See Also:
Component.Component(String, IModel)

AbstractPageableView

public AbstractPageableView(String id)
See Also:
Component.Component(String)
Method Detail

getItemModels

protected Iterator<IModel<T>> getItemModels()
This method retrieves the subset of models for items in the current page and allows RefreshingView to generate items.

Specified by:
getItemModels in class RefreshingView<T>
Returns:
iterator over models for items in the current page

onBeforeRender

protected void onBeforeRender()
Description copied from class: Component
Called just before a component is rendered.

NOTE: If you override this, you *must* call super.onBeforeRender() within your implementation. Because this method is responsible for cascading Component.onBeforeRender() call to its children it is strongly recommended that super call is made at the end of the override.

Overrides:
onBeforeRender in class AbstractRepeater
See Also:
AbstractRepeater.onBeforeRender()

getItemModels

protected abstract Iterator<IModel<T>> getItemModels(int offset,
                                                     int size)
Returns an iterator over models for items in the current page

Parameters:
offset - index of first item in this page
size - number of items that will be shown in the current page
Returns:
an iterator over models for items in the current page

internalGetRowsPerPage

protected final int internalGetRowsPerPage()
Returns:
maximum number of items that will be shown per page

internalSetRowsPerPage

protected final void internalSetRowsPerPage(int items)
Sets the maximum number of items to show per page. The current page will also be set to zero

Parameters:
items -

internalGetItemCount

protected abstract int internalGetItemCount()
Returns:
total item count

getRowCount

public final int getRowCount()
Get the row count.

Returns:
total item count, but 0 if not visible in the hierarchy
See Also:
getItemCount()

getItemCount

public final int getItemCount()
Get the item count. Since dataprovider.size() could potentially be expensive, the item count is cached.

Returns:
the item count
See Also:
getRowCount()

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()

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)

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()

getViewOffset

protected int getViewOffset()
Returns:
the index of the first visible item

getViewSize

protected int getViewSize()
Returns:
the number of items visible

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()


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