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);
+		}
+	}
 }