Class TableDataProvider<T>
java.lang.Object
io.goobi.viewer.managedbeans.tabledata.TableDataProvider<T>
- Type Parameters:
T-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
PersistentTableDataProvider
Generic data provider for paginated, filterable, and sortable admin data tables.
- See Also:
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionTableDataProvider(int entriesPerPage, TableDataProvider.SortOrder sortOrder, TableDataSource<T> source) Creates a new TableDataProvider instance.TableDataProvider(TableDataSource<T> source) Creates a new TableDataProvider instance. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFilter(TableDataFilter filter) addFilter.cmdMoveFirst.cmdMoveLast.cmdMoveNext.cmdMovePrevious.intGetter for the fieldentriesPerPage.getFilter.getFilterIfPresent(String... columns) getFilterIfPresent.Getter for the fieldfilters.getFiltersAsMap.intgetLastPageNumber.getPageNumberCurrent.getPageNumberLast.getPaginatorList.longgetSizeOfDataList.Getter for the fieldsortField.Getter for the fieldsortOrder.intgetTxtMoveTo.booleanhasNextPage.booleanhasPreviousPage.static <T> TableDataProvider<T> initDataProvider(int itemsPerPage, String defaultSortField, TableDataProvider.SortOrder defaultSortOrder, DAOSearchFunction<T> search) initDataProvider.booleanisFirstPage.booleanisLastPage.loadList()loadList.voidremoveFilter(TableDataFilter filter) removeFilter.voidresetAll()resetAll.protected voidCalled ony any changes to the currently listed objects noop - may be implemented by inheriting classes.voidresetFilters.voidsetEntriesPerPage(int entriesPerPage) Setter for the fieldentriesPerPage.voidsetSortField(String sortField) Setter for the fieldsortField.voidsetSortOrder(TableDataProvider.SortOrder sortOrder) Setter for the fieldsortOrder.voidsetTxtMoveTo(int neueSeite) setTxtMoveTo.voidsortBy(String sortField, TableDataProvider.SortOrder sortOrder) sortBy.voidsortBy.voidupdate()update.
-
Constructor Details
-
TableDataProvider
Creates a new TableDataProvider instance.- Parameters:
source- data source that supplies and counts table entries
-
TableDataProvider
public TableDataProvider(int entriesPerPage, TableDataProvider.SortOrder sortOrder, TableDataSource<T> source) Creates a new TableDataProvider instance.- Parameters:
entriesPerPage- the number of entries per pagesortOrder- initial sort direction for the tablesource- data source that supplies and counts table entries
-
-
Method Details
-
initDataProvider
public static <T> TableDataProvider<T> initDataProvider(int itemsPerPage, String defaultSortField, TableDataProvider.SortOrder defaultSortOrder, DAOSearchFunction<T> search) initDataProvider.
- Type Parameters:
T- a T class- Parameters:
itemsPerPage- number of items displayed per pagedefaultSortField- field name used when no explicit sort is setdefaultSortOrder- sort direction applied with the default sort fieldsearch- DAO function used to fetch and count records- Returns:
- a new TableDataProvider backed by the given DAO search function
-
getPaginatorList
getPaginatorList.- Returns:
- a list of entries for the current page according to the current sort order and active filters
- Throws:
TableDataSourceException- if any.
-
loadList
loadList.- Returns:
- an Optional containing the current page's data list, or empty if the source returns null
-
getFiltersAsMap
getFiltersAsMap.- Returns:
- a map of column names to filter values derived from the active filters
-
resetCurrentList
protected void resetCurrentList()Called ony any changes to the currently listed objects noop - may be implemented by inheriting classes. -
sortBy
sortBy.- Parameters:
sortField- field name to sort the table bysortOrder- sort direction name, parsed via SortOrder.valueOf
-
sortBy
sortBy.- Parameters:
sortField- field name to sort the table bysortOrder- ascending or descending sort direction to apply
-
cmdMoveFirst
cmdMoveFirst.- Returns:
- an empty string after navigating to the first page of the data table
- Throws:
TableDataSourceException- if any.
-
cmdMovePrevious
cmdMovePrevious.- Returns:
- an empty string after navigating to the previous page of the data table
- Throws:
TableDataSourceException- if any.
-
cmdMoveNext
cmdMoveNext.- Returns:
- an empty string after navigating to the next page of the data table
- Throws:
TableDataSourceException- if any.
-
cmdMoveLast
cmdMoveLast.- Returns:
- an empty string after navigating to the last page of the data table
- Throws:
TableDataSourceException- if any.
-
setTxtMoveTo
setTxtMoveTo.- Parameters:
neueSeite- 1-based target page number to navigate to- Throws:
TableDataSourceException- if any.
-
getTxtMoveTo
public int getTxtMoveTo()getTxtMoveTo.- Returns:
- a int.
-
getLastPageNumber
public int getLastPageNumber()getLastPageNumber.- Returns:
- a int.
-
isFirstPage
public boolean isFirstPage()isFirstPage.- Returns:
- true if the current page is the first page of the data table, false otherwise
-
isLastPage
public boolean isLastPage()isLastPage.- Returns:
- true if the current page is the last page of the data table, false otherwise
-
hasNextPage
public boolean hasNextPage()hasNextPage.- Returns:
- true if there is a next page available in the data table, false otherwise
-
hasPreviousPage
public boolean hasPreviousPage()hasPreviousPage.- Returns:
- true if there is a previous page available in the data table, false otherwise
-
getPageNumberCurrent
getPageNumberCurrent.- Returns:
- the 1-based current page number
-
getPageNumberLast
getPageNumberLast.- Returns:
- the 1-based last page number
-
getSizeOfDataList
public long getSizeOfDataList()getSizeOfDataList.- Returns:
- a long.
-
getSortField
Getter for the fieldsortField.- Returns:
- the name of the field currently used for sorting the data table
-
setSortField
Setter for the fieldsortField.- Parameters:
sortField- field name to sort the table by
-
getSortOrder
Getter for the fieldsortOrder.- Returns:
- the current sort direction
-
setSortOrder
Setter for the fieldsortOrder.- Parameters:
sortOrder- ascending or descending sort direction to apply
-
setEntriesPerPage
public void setEntriesPerPage(int entriesPerPage) Setter for the fieldentriesPerPage.- Parameters:
entriesPerPage- number of rows to display per page
-
getEntriesPerPage
public int getEntriesPerPage()Getter for the fieldentriesPerPage.- Returns:
- a int.
-
getFilters
Getter for the fieldfilters.- Returns:
- a list of active filter criteria applied to the data source
-
removeFilter
removeFilter.- Parameters:
filter- filter instance to remove from the active filters
-
resetFilters
public void resetFilters()resetFilters. -
resetAll
public void resetAll()resetAll. -
update
public void update()update. -
getFilter
getFilter.
- Parameters:
columns- one or more column names the filter applies to- Returns:
- the existing filter for the given columns, or a newly created one if none exists
-
addFilter
addFilter.
- Parameters:
filter- pre-built filter instance to append to the active filters
-
getFilterIfPresent
getFilterIfPresent.
- Parameters:
columns- one or more column names to match against existing filters- Returns:
- an Optional containing the matching filter, or empty if none is found
-