Class AbstractPageableView<T>
- java.lang.Object
-
- org.apache.wicket.Component
-
- org.apache.wicket.MarkupContainer
-
- org.apache.wicket.markup.html.WebMarkupContainer
-
- org.apache.wicket.markup.repeater.AbstractRepeater
-
- org.apache.wicket.markup.repeater.RepeatingView
-
- org.apache.wicket.markup.repeater.RefreshingView<T>
-
- org.apache.wicket.markup.repeater.AbstractPageableView<T>
-
- Type Parameters:
T
- type of elements contained in the model's list
- All Implemented Interfaces:
Serializable
,Iterable<Component>
,IEventSink
,IEventSource
,IFeedbackContributor
,IConverterLocator
,IMetadataContext<Serializable,Component>
,IHeaderContributor
,IPageable
,IPageableItems
,IRequestableComponent
,IHierarchical<Component>
,IClusterable
- 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 thenewItem(String id, int index, IModel model)
to generate the child item container followed bypopulateItem(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_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS
-
-
Constructor Summary
Constructors Constructor Description AbstractPageableView(String id)
AbstractPageableView(String id, IModel<? extends Collection<? extends T>> model)
Constructor
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description long
getCurrentPage()
long
getFirstItemOffset()
long
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(long offset, long size)
Returns an iterator over models for items in the current pagelong
getItemsPerPage()
maximum number of visible items per pagelong
getPageCount()
Gets the total number of pages this pageable object has.long
getRowCount()
Get the row count.long
getViewSize()
protected abstract long
internalGetItemCount()
protected void
onBeforeRender()
Called on all visible components before any component is rendered.protected void
onDetach()
Called to allow a component to detach resources after use.void
setCurrentPage(long page)
Sets the a page that should be rendered (page number is zero-based)void
setItemsPerPage(long 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
dequeue, getMarkup, onRender, renderChild
-
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
-
Methods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkupType, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onInitialize, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildren
-
Methods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, 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, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, 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, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onComponentTag, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
AbstractPageableView
public AbstractPageableView(String id, IModel<? extends Collection<? extends T>> model)
Constructor- Parameters:
id
-model
-- See Also:
Component(String, IModel)
-
AbstractPageableView
public AbstractPageableView(String id)
- See Also:
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 classRefreshingView<T>
- Returns:
- iterator over models for items in the current page
-
onBeforeRender
protected void onBeforeRender()
Description copied from class:Component
Called on all visible components before any component is rendered.NOTE: If you override this, you *must* call super.onBeforeRender() within your implementation. Because this method is responsible for cascading
Changes to the component tree can be made only before calling super.onBeforeRender().Component.onBeforeRender()
call to its children it is strongly recommended that super call is made at the end of the override.- Overrides:
onBeforeRender
in classAbstractRepeater
- See Also:
AbstractRepeater.onBeforeRender()
-
getItemModels
protected abstract Iterator<IModel<T>> getItemModels(long offset, long size)
Returns an iterator over models for items in the current page- Parameters:
offset
- index of first item in this pagesize
- number of items that will be shown in the current page- Returns:
- an iterator over models for items in the current page
-
getItemsPerPage
public long getItemsPerPage()
Description copied from interface:IPageableItems
maximum number of visible items per page- Specified by:
getItemsPerPage
in interfaceIPageableItems
- Returns:
- maximum number of items that will be shown per page
-
setItemsPerPage
public final void setItemsPerPage(long items)
Sets the maximum number of items to show per page. The current page will also be set to zero- Specified by:
setItemsPerPage
in interfaceIPageableItems
- Parameters:
items
-
-
internalGetItemCount
protected abstract long internalGetItemCount()
- Returns:
- total item count
-
getRowCount
public final long getRowCount()
Get the row count.- Returns:
- total item count, but 0 if not visible in the hierarchy
- See Also:
getItemCount()
-
getItemCount
public final long getItemCount()
Get the item count. Since dataprovider.size() could potentially be expensive, the item count is cached.- Specified by:
getItemCount
in interfaceIPageableItems
- Returns:
- the item count
- See Also:
getRowCount()
-
getCurrentPage
public final long getCurrentPage()
- Specified by:
getCurrentPage
in interfaceIPageable
- Returns:
- The current page that is or will be rendered (page number is zero-based)
- See Also:
IPageable.getCurrentPage()
-
setCurrentPage
public final void setCurrentPage(long page)
Description copied from interface:IPageable
Sets the a page that should be rendered (page number is zero-based)- Specified by:
setCurrentPage
in interfaceIPageable
- Parameters:
page
- The page that should be rendered.- See Also:
IPageable.setCurrentPage(long)
-
getPageCount
public long getPageCount()
Description copied from interface:IPageable
Gets the total number of pages this pageable object has.- Specified by:
getPageCount
in interfaceIPageable
- Returns:
- The total number of pages this pageable object has
- See Also:
IPageable.getPageCount()
-
getFirstItemOffset
public long getFirstItemOffset()
- Returns:
- the index of the first visible item in the view
-
getViewSize
public long 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 classMarkupContainer
- See Also:
Component.onDetach()
-
-