|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider<U,Object>
org.ujorm.wicket.component.grid.AbstractDataProvider<U>
org.ujorm.wicket.component.grid.OrmDataProvider<U>
public class OrmDataProvider<U extends OrmUjo>
This class called OrmDataProvider is an ORM based
Wicket DataProvider. For a customization you can use a your own IColumn implementations
or you can overwrite highlighting methods of this provider.
The implementation generates two database requests per a one rendering,
the first one get size and the second one get paged data. You can overwrite the two data methods:
iterator() and the size()
for more optimization.
The current class uses a WicketApplication implementation, which must
implement the interface OrmHandlerProvider for an ORM support. See the example:
Criterion<Hotel> allActiveHotels = Hotel.ACTIVE.whereEq(true);
OrmDataProvider<Hotel> dataProvider = OrmDataProvider.of(allActiveHotels);
dataProvider.addColumn(Hotel.NAME);
dataProvider.addColumn(Hotel.CITY.add(City.NAME)); // An example of relations
dataProvider.addColumn(Hotel.STREET);
dataProvider.addColumn(Hotel.PRICE);
dataProvider.addColumn(KeyColumn.of(Hotel.CURRENCY, SORTING_OFF));
dataProvider.addColumn(Hotel.STARS);
dataProvider.addColumn(Hotel.PHONE);
dataProvider.setSort(Hotel.NAME);
panel.add(dataProvider.createDataTable("datatable", 10));
| Field Summary |
|---|
| Fields inherited from class org.ujorm.wicket.component.grid.AbstractDataProvider |
|---|
DEFAULT_CSS_ACTION, DEFAULT_CSS_SELECTED, DEFAULT_DATATABLE_ID, filter, highlighting, size |
| Constructor Summary | |
|---|---|
OrmDataProvider(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<U>> criterion)
Constructor |
|
OrmDataProvider(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<U>> criterion,
Key<? super U,?> defaultSort)
Constructor |
|
| Method Summary | ||
|---|---|---|
void |
addHidden(Key<? super U,?> column)
Add the hidden column for a fetch loading from database |
|
protected Query<U> |
createQuery(org.ujorm.criterion.Criterion<U> criterion)
Create default Query |
|
void |
detach()
Commit and close transaction |
|
protected void |
fetchDatabaseColumns(Query<U> query)
The method reduces a lazy database requests from relational table columns. |
|
List<KeyRing<U>> |
getHiddenColumns()
Hidden column table list |
|
protected Session |
getOrmSession()
Returns ORM Session |
|
boolean |
isFetchDatabaseColumns()
Fetch database columns for better SQL performance where the feature is enabled by default |
|
protected boolean |
isSortingEnabled(Key<U,?> column)
The sorting is enabled for a persistent Ujorm Key by default |
|
Iterator<U> |
iterator(long first,
long count)
Build a JDBC ResultSet always. |
|
static
|
of(org.ujorm.criterion.Criterion<T> criterion)
Factory for the class |
|
static
|
of(org.ujorm.criterion.Criterion<T> criterion,
Key<? super T,?> defaultSort)
Factory for the class |
|
static
|
of(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<T>> criterion)
Factory for the class |
|
static
|
of(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<T>> criterion,
Key<? super T,?> defaultSort)
Factory for the class |
|
void |
setFetchDatabaseColumns(boolean fetchDatabaseColumns)
Fetch database columns for better SQL performance where the feature is enabled by default |
|
long |
size()
Method calculate the size using special SQL requst. |
|
protected void |
sortDatabaseQuery(Query<U> query)
Add sorting to a database Query, an empty method causes a natural sorting from database |
|
| Methods inherited from class org.ujorm.wicket.component.grid.AbstractDataProvider |
|---|
add, add, add, add, add, add, createBottomToolbars, createDataTable, createDataTable, createDataTable, createDataTable, createTopToolbars, deleteRow, getColumns, getCssSelected, getDomainClass, getFirstTableRow, getHighlighting, getSortKey, insertRow, isDefaultColumnSorting, model, setCssClass, setDefaultColumnSorting, setHighlighting, setHighlighting, setSelected, setSelected, setSort, updateRow |
| Methods inherited from class org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider |
|---|
getSort, getSortState, setSort, setSort |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public OrmDataProvider(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<U>> criterion)
criterion - Condition to a database query
public OrmDataProvider(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<U>> criterion,
Key<? super U,?> defaultSort)
criterion - Model of a condition to a database querydefaultSort - Default sorting can be assigned optionally| Method Detail |
|---|
public void addHidden(Key<? super U,?> column)
public Iterator<U> iterator(long first,
long count)
iterator in interface org.apache.wicket.markup.repeater.data.IDataProvider<U extends OrmUjo>iterator in class AbstractDataProvider<U extends OrmUjo>public long size()
size in interface org.apache.wicket.markup.repeater.data.IDataProvider<U extends OrmUjo>size in class AbstractDataProvider<U extends OrmUjo>protected Session getOrmSession()
public void detach()
detach in interface org.apache.wicket.model.IDetachabledetach in class AbstractDataProvider<U extends OrmUjo>protected Query<U> createQuery(org.ujorm.criterion.Criterion<U> criterion)
protected boolean isSortingEnabled(Key<U,?> column)
throws IllegalArgumentException
isSortingEnabled in class AbstractDataProvider<U extends OrmUjo>IllegalArgumentExceptionAbstractDataProvider.isDefaultColumnSorting()protected void fetchDatabaseColumns(Query<U> query)
isFetchDatabaseColumns()public List<KeyRing<U>> getHiddenColumns()
protected void sortDatabaseQuery(Query<U> query)
public final boolean isFetchDatabaseColumns()
public void setFetchDatabaseColumns(boolean fetchDatabaseColumns)
fetchDatabaseColumns - the fetchDatabaseColumns to set
public static <T extends OrmUjo> OrmDataProvider<T> of(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<T>> criterion,
Key<? super T,?> defaultSort)
public static <T extends OrmUjo> OrmDataProvider<T> of(org.apache.wicket.model.IModel<org.ujorm.criterion.Criterion<T>> criterion)
public static <T extends OrmUjo> OrmDataProvider<T> of(org.ujorm.criterion.Criterion<T> criterion,
Key<? super T,?> defaultSort)
public static <T extends OrmUjo> OrmDataProvider<T> of(org.ujorm.criterion.Criterion<T> criterion)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||