You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2014/03/05 14:24:49 UTC
git commit: WICKET-5520 improve reusability of DataTable and
AbstractPageableView
Repository: wicket
Updated Branches:
refs/heads/master 5fdc484c3 -> c55143172
WICKET-5520 improve reusability of DataTable and AbstractPageableView
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c5514317
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c5514317
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c5514317
Branch: refs/heads/master
Commit: c551431720a1627b6876909a72d685c7708feb7a
Parents: 5fdc484
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Mar 5 15:24:27 2014 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Mar 5 15:24:27 2014 +0200
----------------------------------------------------------------------
.../markup/repeater/AbstractPageableView.java | 2 +-
.../html/repeater/data/table/DataTable.java | 85 ++++++++++++--------
2 files changed, 54 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/c5514317/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractPageableView.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractPageableView.java b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractPageableView.java
index 6d7aa2f..d9b93a1 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractPageableView.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractPageableView.java
@@ -282,7 +282,7 @@ public abstract class AbstractPageableView<T> extends RefreshingView<T> implemen
* @see org.apache.wicket.markup.html.navigation.paging.IPageable#getPageCount()
*/
@Override
- public final long getPageCount()
+ public long getPageCount()
{
long total = getRowCount();
long itemsPerPage = getItemsPerPage();
http://git-wip-us.apache.org/repos/asf/wicket/blob/c5514317/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
index 34935d1..38a1616 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.java
@@ -143,38 +143,7 @@ public class DataTable<T, S> extends Panel implements IPageableItems
this.colGroup = new ColGroup("colGroup");
add(colGroup);
body = newBodyContainer("body");
- datagrid = new DataGridView<T>("rows", columns, dataProvider)
- {
- private static final long serialVersionUID = 1L;
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- protected Item newCellItem(final String id, final int index, final IModel model)
- {
- Item item = DataTable.this.newCellItem(id, index, model);
- final IColumn<T, S> column = DataTable.this.columns.get(index);
- if (column instanceof IStyledColumn)
- {
- item.add(new CssAttributeBehavior()
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected String getCssClass()
- {
- return ((IStyledColumn<T, S>)column).getCssClass();
- }
- });
- }
- return item;
- }
-
- @Override
- protected Item<T> newRowItem(final String id, final int index, final IModel<T> model)
- {
- return DataTable.this.newRowItem(id, index, model);
- }
- };
+ datagrid = newDataGridView("rows", columns, dataProvider);
datagrid.setItemsPerPage(rowsPerPage);
body.add(datagrid);
add(body);
@@ -185,6 +154,22 @@ public class DataTable<T, S> extends Panel implements IPageableItems
}
/**
+ * Factory method for the DataGridView
+ *
+ * @param id
+ * The component id
+ * @param columns
+ * list of IColumn objects
+ * @param dataProvider
+ * imodel for data provider
+ * @return the data grid view
+ */
+ protected DataGridView<T> newDataGridView(String id, List<? extends IColumn<T, S>> columns, IDataProvider<T> dataProvider)
+ {
+ return new DefaultDataGridView(id, columns, dataProvider);
+ }
+
+ /**
* Returns the model for table's caption. The caption wont be rendered if the model has empty
* value.
*
@@ -555,4 +540,40 @@ public class DataTable<T, S> extends Panel implements IPageableItems
return null;
}
}
+
+ private class DefaultDataGridView extends DataGridView<T>
+ {
+ public DefaultDataGridView(String id, List<? extends IColumn<T, S>> columns, IDataProvider<T> dataProvider)
+ {
+ super(id, columns, dataProvider);
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ protected Item newCellItem(final String id, final int index, final IModel model)
+ {
+ Item item = DataTable.this.newCellItem(id, index, model);
+ final IColumn<T, S> column = DataTable.this.columns.get(index);
+ if (column instanceof IStyledColumn)
+ {
+ item.add(new CssAttributeBehavior()
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected String getCssClass()
+ {
+ return ((IStyledColumn<T, S>)column).getCssClass();
+ }
+ });
+ }
+ return item;
+ }
+
+ @Override
+ protected Item<T> newRowItem(final String id, final int index, final IModel<T> model)
+ {
+ return DataTable.this.newRowItem(id, index, model);
+ }
+ }
}