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:
java.io.Serializable, java.lang.Iterable<Component>, IEventSink, IEventSource, IClusterable, IConverterLocator, IHeaderContributor, IPageable, IPageableItems, IRequestableComponent, IHierarchical<Component>
Direct Known Subclasses:
DataViewBase

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

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

Field Summary
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractPageableView(java.lang.String id)
           
AbstractPageableView(java.lang.String id, IModel<? extends java.util.Collection<? extends T>> model)
          Constructor
 
Method Summary
 int getCurrentPage()
           
 int getFirstItemOffset()
           
 int getItemCount()
          Get the item count.
protected  java.util.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  java.util.Iterator<IModel<T>> getItemModels(int offset, int size)
          Returns an iterator over models for items in the current page
 int getItemsPerPage()
          maximum number of visible items per page
 int getPageCount()
          Gets the total number of pages this pageable object has.
 int getRowCount()
          Get the row count.
 int getViewSize()
           
protected abstract  int internalGetItemCount()
           
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 (page number is zero-based)
 void setItemsPerPage(int items)
          Sets the maximum number of items to show per page.
 
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
getMarkup, onRender, renderChild
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkupType, hasAssociatedMarkup, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, onMarkupAttached, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnModelChanged, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onComponentTag, onConfigure, onEvent, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderHead, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, 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(java.lang.String id,
                            IModel<? extends java.util.Collection<? extends T>> model)
Constructor

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

AbstractPageableView

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

getItemModels

protected java.util.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 java.util.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

getItemsPerPage

public int getItemsPerPage()
Description copied from interface: IPageableItems
maximum number of visible items per page

Specified by:
getItemsPerPage in interface IPageableItems
Returns:
maximum number of items that will be shown per page

setItemsPerPage

public final void setItemsPerPage(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.

Specified by:
getItemCount in interface IPageableItems
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 (page number is zero-based)
See Also:
IPageable.getCurrentPage()

setCurrentPage

public final void setCurrentPage(int page)
Description copied from interface: IPageable
Sets the a page that should be rendered (page number is zero-based)

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

getFirstItemOffset

public int getFirstItemOffset()
Returns:
the index of the first visible item in the view

getViewSize

public 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 © 2006-2011 Apache Software Foundation. All Rights Reserved.