public abstract class AbstractPageProvider<T> extends Object implements PageProvider<T>
PageProvider.
Provides next/prev standard logics, and helper methods for retrieval of items and first/next/prev/last buttons display as well as other display information (number of pages for instance).
Also handles selection by providing a default implementation of
getCurrentSelectPage() working in conjunction with
setSelectedEntries(List).
| Modifier and Type | Field and Description |
|---|---|
static org.apache.commons.logging.Log |
log |
DEFAULT_MAX_PAGE_SIZE, DEFAULT_MAX_PAGE_SIZE_RUNTIME_PROP, PAGE_LIMIT_UNKNOWN, UNKNOWN_SIZE, UNKNOWN_SIZE_AFTER_QUERY| Constructor and Description |
|---|
AbstractPageProvider() |
| Modifier and Type | Method and Description |
|---|---|
void |
addSortInfo(String sortColumn,
boolean sortAscending)
Add the given sort info to the list of sorting infos.
|
void |
firstPage()
Go to the first page
|
List<AggregateDefinition> |
getAggregateDefinitions() |
Map<String,Aggregate> |
getAggregates() |
T |
getCurrentEntry()
Returns the current entry.
|
int |
getCurrentHigherNonEmptyPageIndex()
Returns an integer keeping track of the higher page index giving
results.
|
abstract List<T> |
getCurrentPage()
Returns the list of current page items.
|
long |
getCurrentPageIndex()
Returns the current page index as a zero-based integer.
|
long |
getCurrentPageOffset()
Returns the offset (starting from 0) of the first element in the current
page or
UNKNOWN_SIZE. |
long |
getCurrentPageSize()
Returns the number of elements in current page.
|
String |
getCurrentPageStatus()
Returns a simple formatted string for current pagination status.
|
PageSelections<T> |
getCurrentSelectPage()
Returns the current page of results wrapped in a
PageSelection
item. |
PageProviderDefinition |
getDefinition() |
Throwable |
getError() |
String |
getErrorMessage() |
int |
getMaxNumberOfEmptyPages()
Returns the maximum number of empty pages that can be fetched empty
(defaults to 1).
|
long |
getMaxPageSize()
Returns the max number of results per page.
|
long |
getMinMaxPageSize()
Returns the minimal value for the max page size, taking the lower value
between the requested page size and the maximum accepted page size.
|
String |
getName()
Returns the provider identifier
|
long |
getNumberOfPages()
Returns the total number of pages or 0 if number of pages is unknown.
|
long |
getPageLimit()
Returns the page limit.
|
long |
getPageSize()
Returns the number of results per page.
|
Object[] |
getParameters() |
Map<String,Serializable> |
getProperties()
Gets properties set on the provider.
|
long |
getResultsCount()
Returns the number of result elements if available or a negative value
if it is unknown:
UNKNOWN_SIZE if it is unknown as query
was not done, and since 5.5, UNKNOWN_SIZE_AFTER_QUERY if it
is still unknown after query was done. |
DocumentModel |
getSearchDocumentModel() |
SortInfo |
getSortInfo()
Returns the first sorting info for this provider
|
int |
getSortInfoIndex(String sortColumn,
boolean sortAscending)
Returns a positive 0-based integer if given sort information is found on
the set sort infos, indicating the sort index, or -1 if this sort
information is not found.
|
List<SortInfo> |
getSortInfos()
Returns the complete list of sorting info for this provider
|
boolean |
hasAggregateSupport() |
boolean |
hasChangedParameters(Object[] parameters)
Test if provider parameters have changed
|
boolean |
hasError() |
boolean |
isLastPageAvailable()
Returns a boolean expressing if the last page can be displayed.
|
boolean |
isNextEntryAvailable()
Returns true if there is a next entry.
|
boolean |
isNextPageAvailable()
Returns a boolean expressing if there are further pages.
|
boolean |
isPreviousEntryAvailable()
Returns true if there is a previous entry.
|
boolean |
isPreviousPageAvailable()
Returns a boolean expressing if there is a previous page.
|
boolean |
isSortable()
Returns if this provider is sortable
|
void |
last()
Deprecated.
|
void |
lastPage()
Go to the last page.
|
void |
next()
Deprecated.
|
void |
nextEntry()
Move the current entry to the next one, if applicable.
|
void |
nextPage()
Go to the next page
|
void |
previous()
Deprecated.
|
void |
previousEntry()
Move the current entry to the previous one, if applicable.
|
void |
previousPage()
Go to the previous page
|
void |
refresh()
Refresh hook, to override for custom behavior
|
void |
rewind()
Deprecated.
|
void |
setCurrentEntry(T entry)
Sets the current entry.
|
void |
setCurrentEntryIndex(long index)
Sets the current entry index.
|
void |
setCurrentHigherNonEmptyPageIndex(int higherFilledPageIndex) |
List<T> |
setCurrentPage(long page)
Sets the current page of results to the required one and return it.
|
void |
setCurrentPageIndex(long currentPageIndex)
Sets the current page of results to the required one.
|
void |
setCurrentPageOffset(long offset)
Sets the current page offset.
|
void |
setDefinition(PageProviderDefinition providerDefinition) |
void |
setMaxPageSize(long maxPageSize)
Sets the max number of results per page.
|
void |
setName(String name)
Sets the provider identifier
|
void |
setPageProviderChangedListener(PageProviderChangedListener listener)
Sets the
PageProviderChangedListener for this
PageProvider. |
void |
setPageSize(long pageSize)
Sets the number results per page.
|
void |
setParameters(Object[] parameters) |
void |
setProperties(Map<String,Serializable> properties)
Sets properties set on the provider.
|
void |
setResultsCount(long resultsCount)
Sets the results count.
|
void |
setSearchDocumentModel(DocumentModel searchDocumentModel) |
void |
setSelectedEntries(List<T> entries)
Sets the list of selected entries to take into account in
PageProvider.getCurrentSelectPage(). |
void |
setSortable(boolean sortable) |
void |
setSortInfo(SortInfo sortInfo)
Sets the first and only sorting info for this provider.
|
void |
setSortInfo(String sortColumn,
boolean sortAscending,
boolean removeOtherSortInfos)
Sets the first and only sorting info for this provider if parameter
removeOtherSortInfos is true.
|
void |
setSortInfos(List<SortInfo> sortInfo)
Sets the complete list of sorting info for this provider
|
public abstract List<T> getCurrentPage()
Custom implementation can be added here, based on the page provider
properties, parameters and WhereClauseDefinition on the
PageProviderDefinition, as well as search document, sort
information, etc...
Implementation of this method usually consists in setting a non-null
value to a field caching current items, and nullifying this field by
overriding pageChanged() and refresh().
Fields errorMessage and error can also be filled to
provide accurate feedback in case an error occurs during the search.
When items are retrieved, a call to setResultsCount(long)
should be made to ensure proper pagination as implemented in this
abstract class. The implementation in
CoreQueryAndFetchPageProvider is a good example when the total
results count is known.
If for performance reasons, for instance, the number of results cannot
be known, a fall-back strategy can be applied to provide the "next"
button but not the "last" one, by calling
getCurrentHigherNonEmptyPageIndex() and
setCurrentHigherNonEmptyPageIndex(int). In this case,
CoreQueryDocumentPageProvider is a good example.
getCurrentPage in interface PageProvider<T>public void firstPage()
PageProviderfirstPage in interface PageProvider<T>@Deprecated public void rewind()
public long getCurrentPageIndex()
PageProvidergetCurrentPageIndex in interface PageProvider<T>public long getCurrentPageOffset()
PageProviderUNKNOWN_SIZE.getCurrentPageOffset in interface PageProvider<T>public void setCurrentPageOffset(long offset)
PageProviderIf the provider keeps information linked to the current page, they should be reset after calling this method.
setCurrentPageOffset in interface PageProvider<T>public long getCurrentPageSize()
PageProvidergetCurrentPageSize in interface PageProvider<T>public String getName()
PageProvidergetName in interface PageProvider<T>public long getNumberOfPages()
PageProvidergetNumberOfPages in interface PageProvider<T>public void setCurrentPageIndex(long currentPageIndex)
PageProvidersetCurrentPageIndex in interface PageProvider<T>currentPageIndex - the page index, starting from 0public List<T> setCurrentPage(long page)
PageProvidersetCurrentPage in interface PageProvider<T>page - the page index, starting from 0public long getPageSize()
PageProvidergetPageSize in interface PageProvider<T>public void setPageSize(long pageSize)
PageProvidersetPageSize in interface PageProvider<T>public List<SortInfo> getSortInfos()
PageProvidergetSortInfos in interface PageProvider<T>public SortInfo getSortInfo()
PageProviderAlso kept for compatibility with existing code.
getSortInfo in interface PageProvider<T>public void setSortInfos(List<SortInfo> sortInfo)
PageProvidersetSortInfos in interface PageProvider<T>public void setSortInfo(SortInfo sortInfo)
PageProviderAlso kept for compatibility with existing code.
setSortInfo in interface PageProvider<T>public void setSortInfo(String sortColumn, boolean sortAscending, boolean removeOtherSortInfos)
PageProvidersetSortInfo in interface PageProvider<T>public void addSortInfo(String sortColumn, boolean sortAscending)
PageProvideraddSortInfo in interface PageProvider<T>public int getSortInfoIndex(String sortColumn, boolean sortAscending)
PageProvidergetSortInfoIndex in interface PageProvider<T>public boolean isNextPageAvailable()
PageProviderisNextPageAvailable in interface PageProvider<T>public boolean isLastPageAvailable()
PageProviderisLastPageAvailable in interface PageProvider<T>public boolean isPreviousPageAvailable()
PageProviderisPreviousPageAvailable in interface PageProvider<T>public void lastPage()
PageProviderlastPage in interface PageProvider<T>@Deprecated public void last()
public void nextPage()
PageProvidernextPage in interface PageProvider<T>@Deprecated public void next()
public void previousPage()
PageProviderpreviousPage in interface PageProvider<T>@Deprecated public void previous()
public void refresh()
When overriding it, call super.refresh() as last statement to
make sure that the PageProviderChangedListener is called with
the up-to-date @{code PageProvider} state.
refresh in interface PageProvider<T>public void setName(String name)
PageProvidersetName in interface PageProvider<T>public String getCurrentPageStatus()
PageProvidergetCurrentPageStatus in interface PageProvider<T>public boolean isNextEntryAvailable()
PageProviderThe next entry might be in next page, except if results count is unknown.
isNextEntryAvailable in interface PageProvider<T>public boolean isPreviousEntryAvailable()
PageProviderThe previous entry might be in previous page.
isPreviousEntryAvailable in interface PageProvider<T>public void nextEntry()
PageProviderIf needed and possible, the provider will forward to next page. No special exceptions: this method is intended to be plugged directly at the UI layer. In case there's no next entry, nothing happens.
nextEntry in interface PageProvider<T>public void previousEntry()
PageProviderNo exception: this method is intended to be plugged directly at the UI layer. In case there's no previous entry, nothing will happen.
previousEntry in interface PageProvider<T>public T getCurrentEntry()
PageProvidergetCurrentEntry in interface PageProvider<T>public void setCurrentEntry(T entry) throws ClientException
PageProvidersetCurrentEntry in interface PageProvider<T>ClientException - if entry is not found within current page.public void setCurrentEntryIndex(long index)
throws ClientException
PageProvidersetCurrentEntryIndex in interface PageProvider<T>ClientException - if index is not found within current page.public long getResultsCount()
PageProviderUNKNOWN_SIZE if it is unknown as query
was not done, and since 5.5, UNKNOWN_SIZE_AFTER_QUERY if it
is still unknown after query was done.getResultsCount in interface PageProvider<T>public Map<String,Serializable> getProperties()
PageProviderUseful to retrieve a provider specific field attributes after instantiation. Other contextual parameters can be passed through API constructing the result provider.
getProperties in interface PageProvider<T>public void setProperties(Map<String,Serializable> properties)
PageProviderUseful to initialize a provider specific field attributes after instantiation. Other contextual parameters can be passed through API constructing the result provider.
setProperties in interface PageProvider<T>public void setResultsCount(long resultsCount)
PageProvidersetResultsCount in interface PageProvider<T>public void setSortable(boolean sortable)
setSortable in interface PageProvider<T>public boolean isSortable()
PageProviderisSortable in interface PageProvider<T>public PageSelections<T> getCurrentSelectPage()
PageProviderPageSelection
item.
By default, no entry is selected, unless
PageProvider.setSelectedEntries(List) has been called before.
getCurrentSelectPage in interface PageProvider<T>public void setSelectedEntries(List<T> entries)
PageProviderPageProvider.getCurrentSelectPage().setSelectedEntries in interface PageProvider<T>public Object[] getParameters()
getParameters in interface PageProvider<T>public void setParameters(Object[] parameters)
setParameters in interface PageProvider<T>public DocumentModel getSearchDocumentModel()
getSearchDocumentModel in interface PageProvider<T>public void setSearchDocumentModel(DocumentModel searchDocumentModel)
setSearchDocumentModel in interface PageProvider<T>public String getErrorMessage()
getErrorMessage in interface PageProvider<T>public Throwable getError()
getError in interface PageProvider<T>public boolean hasError()
hasError in interface PageProvider<T>public PageProviderDefinition getDefinition()
getDefinition in interface PageProvider<T>public void setDefinition(PageProviderDefinition providerDefinition)
setDefinition in interface PageProvider<T>public long getMaxPageSize()
PageProviderIf page size is greater than this maximum value, it will be taken into account instead.
getMaxPageSize in interface PageProvider<T>public void setMaxPageSize(long maxPageSize)
PageProviderIf page size is greater than this maximum value, it will be taken into account instead.
setMaxPageSize in interface PageProvider<T>public long getMinMaxPageSize()
public int getCurrentHigherNonEmptyPageIndex()
public long getPageLimit()
getPageLimit in interface PageProvider<T>public void setCurrentHigherNonEmptyPageIndex(int higherFilledPageIndex)
public int getMaxNumberOfEmptyPages()
public void setPageProviderChangedListener(PageProviderChangedListener listener)
PageProviderPageProviderChangedListener for this
PageProvider.setPageProviderChangedListener in interface PageProvider<T>public boolean hasChangedParameters(Object[] parameters)
PageProviderhasChangedParameters in interface PageProvider<T>public List<AggregateDefinition> getAggregateDefinitions()
getAggregateDefinitions in interface PageProvider<T>public Map<String,Aggregate> getAggregates()
getAggregates in interface PageProvider<T>public boolean hasAggregateSupport()
hasAggregateSupport in interface PageProvider<T>Copyright © 2014 Nuxeo SA. All rights reserved.