You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by eh...@apache.org on 2007/03/31 00:01:13 UTC
svn commit: r524289 - in /incubator/wicket/branches/wicket-1.x/jdk-1.4:
wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/
wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/
wicket-extensio...
Author: ehillenius
Date: Fri Mar 30 15:01:11 2007
New Revision: 524289
URL: http://svn.apache.org/viewvc?view=rev&rev=524289
Log:
WICKET-439
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/AbstractDataGridView.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/ICellPopulator.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/PropertyPopulator.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/AbstractColumn.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/DataTable.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/repeater/data/DataViewBase.java
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/AbstractDataGridView.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/AbstractDataGridView.java?view=diff&rev=524289&r1=524288&r2=524289
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/AbstractDataGridView.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/AbstractDataGridView.java Fri Mar 30 15:01:11 2007
@@ -66,7 +66,7 @@
this.populators = populators;
}
-
+
/**
* Returns iterator over ICellPopulator elements in the populators array.
* This method caches the iterator implemenation in a transient member
@@ -95,58 +95,14 @@
return populatorsIteratorCache;
}
-
- protected final void populateItem(Item item)
- {
- final IModel rowModel = item.getModel();
-
- // TODO Post 1.2: General: Does this need to be a refreshing view? since the rows
- // is a refreshing view this will be recreated anyways. maybe can se
- // orderedrepeatingview instead to simplify.
- item.add(new RefreshingView(CELL_REPEATER_ID)
- {
- private static final long serialVersionUID = 1L;
-
- protected Iterator getItemModels()
- {
- return getPopulatorsIterator();
- }
-
- protected void populateItem(Item item)
- {
- final ICellPopulator populator = (ICellPopulator)item.getModelObject();
- populator.populateItem(item, CELL_ITEM_ID, rowModel);
-
- if (item.get("cell") == null)
- {
- throw new WicketRuntimeException(populator.getClass().getName()
- + ".populateItem() failed to add a component with id [" + CELL_ITEM_ID
- + "] to the provided [cellItem] object. Make sure you call add() on cellItem ( cellItem.add(new MyComponent(componentId, rowModel) )");
- }
-
- }
-
- protected Item newItem(String id, int index, IModel model)
- {
- return newCellItem(id, index, model);
- }
-
- });
- }
-
protected final ICellPopulator[] internalGetPopulators()
{
return populators;
}
- protected final Item newItem(String id, int index, IModel model)
- {
- return newRowItem(id, index, model);
- }
-
/**
- * Factory method for Item container that represents a row.
+ * Factory method for Item container that represents a cell.
*
* @see Item
* @see RefreshingView#newItem(String, int, IModel)
@@ -156,17 +112,22 @@
* @param index
* the index of the new data item
* @param model
- * the model for the new data item.
+ * the model for the new data item
*
* @return DataItem created DataItem
*/
- protected Item newRowItem(final String id, int index, final IModel model)
+ protected Item newCellItem(final String id, int index, final IModel model)
{
return new Item(id, index, model);
}
+ protected final Item newItem(String id, int index, IModel model)
+ {
+ return newRowItem(id, index, model);
+ }
+
/**
- * Factory method for Item container that represents a cell.
+ * Factory method for Item container that represents a row.
*
* @see Item
* @see RefreshingView#newItem(String, int, IModel)
@@ -176,13 +137,66 @@
* @param index
* the index of the new data item
* @param model
- * the model for the new data item
+ * the model for the new data item.
*
* @return DataItem created DataItem
*/
- protected Item newCellItem(final String id, int index, final IModel model)
+ protected Item newRowItem(final String id, int index, final IModel model)
{
return new Item(id, index, model);
}
+
+ /**
+ * @see wicket.markup.repeater.data.DataViewBase#onDetach()
+ */
+ protected void onDetach()
+ {
+ super.onDetach();
+ if (populators != null)
+ {
+ for (int i = 0; i < populators.length; i++)
+ {
+ populators[i].detach();
+ }
+ }
+ }
+
+ protected final void populateItem(Item item)
+ {
+ final IModel rowModel = item.getModel();
+
+ // TODO Post 1.2: General: Does this need to be a refreshing view? since the rows
+ // is a refreshing view this will be recreated anyways. maybe can se
+ // orderedrepeatingview instead to simplify.
+ item.add(new RefreshingView(CELL_REPEATER_ID)
+ {
+ private static final long serialVersionUID = 1L;
+
+ protected Iterator getItemModels()
+ {
+ return getPopulatorsIterator();
+ }
+
+ protected Item newItem(String id, int index, IModel model)
+ {
+ return newCellItem(id, index, model);
+ }
+
+ protected void populateItem(Item item)
+ {
+ final ICellPopulator populator = (ICellPopulator)item.getModelObject();
+ populator.populateItem(item, CELL_ITEM_ID, rowModel);
+
+ if (item.get("cell") == null)
+ {
+ throw new WicketRuntimeException(populator.getClass().getName()
+ + ".populateItem() failed to add a component with id [" + CELL_ITEM_ID
+ + "] to the provided [cellItem] object. Make sure you call add() on cellItem ( cellItem.add(new MyComponent(componentId, rowModel) )");
+ }
+
+ }
+
+ });
+ }
}
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/ICellPopulator.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/ICellPopulator.java?view=diff&rev=524289&r1=524288&r2=524289
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/ICellPopulator.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/ICellPopulator.java Fri Mar 30 15:01:11 2007
@@ -18,6 +18,7 @@
import wicket.IClusterable;
import wicket.markup.repeater.Item;
+import wicket.model.IDetachable;
import wicket.model.IModel;
/**
@@ -47,7 +48,7 @@
* @author Igor Vaynberg (ivaynberg)
*
*/
-public interface ICellPopulator extends IClusterable
+public interface ICellPopulator extends IClusterable, IDetachable
{
/**
* Method used to populate a cell in the {@link DataGridView}
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/PropertyPopulator.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/PropertyPopulator.java?view=diff&rev=524289&r1=524288&r2=524289
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/PropertyPopulator.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/grid/PropertyPopulator.java Fri Mar 30 15:01:11 2007
@@ -57,6 +57,13 @@
}
/**
+ * @see wicket.model.IDetachable#detach()
+ */
+ public void detach()
+ {
+ }
+
+ /**
* @see wicket.extensions.markup.html.repeater.data.grid.ICellPopulator#populateItem(wicket.markup.repeater.Item,
* java.lang.String, wicket.model.IModel)
*/
@@ -64,5 +71,4 @@
{
cellItem.add(new Label(componentId, new PropertyModel(rowModel, property)));
}
-
}
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/AbstractColumn.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/AbstractColumn.java?view=diff&rev=524289&r1=524288&r2=524289
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/AbstractColumn.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/AbstractColumn.java Fri Mar 30 15:01:11 2007
@@ -83,5 +83,14 @@
return new Label(componentId, getDisplayModel());
}
-
+ /**
+ * @see wicket.model.IDetachable#detach()
+ */
+ public void detach()
+ {
+ if (displayModel != null)
+ {
+ displayModel.detach();
+ }
+ }
}
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/DataTable.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/DataTable.java?view=diff&rev=524289&r1=524288&r2=524289
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/DataTable.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/DataTable.java Fri Mar 30 15:01:11 2007
@@ -103,14 +103,14 @@
{
private static final long serialVersionUID = 1L;
- protected Item newRowItem(String id, int index, IModel model)
+ protected Item newCellItem(String id, int index, IModel model)
{
- return DataTable.this.newRowItem(id, index, model);
+ return DataTable.this.newCellItem(id, index, model);
}
- protected Item newCellItem(String id, int index, IModel model)
+ protected Item newRowItem(String id, int index, IModel model)
{
- return DataTable.this.newCellItem(id, index, model);
+ return DataTable.this.newRowItem(id, index, model);
}
};
datagrid.setRowsPerPage(rowsPerPage);
@@ -143,60 +143,37 @@
}
/**
- * @return array of column objects this table displays
- */
- public final IColumn[] getColumns()
- {
- return columns;
- }
-
- /**
- * Adds a toolbar to the datatable that will be displayed before the data
+ * Adds a toolbar to the datatable that will be displayed after the data
*
* @param toolbar
* toolbar to be added
*
* @see AbstractToolbar
*/
- public void addTopToolbar(AbstractToolbar toolbar)
+ public void addBottomToolbar(AbstractToolbar toolbar)
{
- addToolbar(toolbar, topToolbars);
+ addToolbar(toolbar, bottomToolbars);
}
/**
- * Adds a toolbar to the datatable that will be displayed after the data
+ * Adds a toolbar to the datatable that will be displayed before the data
*
* @param toolbar
* toolbar to be added
*
* @see AbstractToolbar
*/
- public void addBottomToolbar(AbstractToolbar toolbar)
+ public void addTopToolbar(AbstractToolbar toolbar)
{
- addToolbar(toolbar, bottomToolbars);
+ addToolbar(toolbar, topToolbars);
}
- private void addToolbar(AbstractToolbar toolbar, RepeatingView container)
+ /**
+ * @return array of column objects this table displays
+ */
+ public final IColumn[] getColumns()
{
- if (toolbar == null)
- {
- throw new IllegalArgumentException("argument [toolbar] cannot be null");
- }
-
- if (!toolbar.getId().equals(TOOLBAR_COMPONENT_ID))
- {
- throw new IllegalArgumentException(
- "Toolbar must have component id equal to AbstractDataTable.TOOLBAR_COMPONENT_ID");
- }
-
- toolbar.setRenderBodyOnly(true);
-
- // create a container item for the toolbar (required by repeating view)
- WebMarkupContainer item = new WebMarkupContainer(container.newChildId());
- item.setRenderBodyOnly(true);
- item.add(toolbar);
-
- container.add(item);
+ return columns;
}
/**
@@ -208,37 +185,54 @@
}
/**
- * @see wicket.markup.html.navigation.paging.IPageable#setCurrentPage(int)
+ * @see wicket.markup.html.navigation.paging.IPageable#getPageCount()
*/
- public final void setCurrentPage(int page)
+ public final int getPageCount()
{
- datagrid.setCurrentPage(page);
- onPageChanged();
+ return datagrid.getPageCount();
}
/**
- * Event listener for page-changed event
+ * @return total number of rows in this table
*/
- protected void onPageChanged()
+ public final int getRowCount()
{
- // noop
+ return datagrid.getRowCount();
}
+ /**
+ * @return number of rows per page
+ */
+ public final int getRowsPerPage()
+ {
+ return datagrid.getRowsPerPage();
+ }
/**
- * @see wicket.markup.html.navigation.paging.IPageable#getPageCount()
+ * @see wicket.markup.html.navigation.paging.IPageable#setCurrentPage(int)
*/
- public final int getPageCount()
+ public final void setCurrentPage(int page)
{
- return datagrid.getPageCount();
+ datagrid.setCurrentPage(page);
+ onPageChanged();
}
+
/**
- * @return total number of rows in this table
+ * Sets the item reuse strategy. This strategy controls the creation of
+ * {@link Item}s.
+ *
+ * @see RefreshingView#setItemReuseStrategy(IItemReuseStrategy)
+ * @see IItemReuseStrategy
+ *
+ * @param strategy
+ * item reuse strategy
+ * @return this for chaining
*/
- public final int getRowCount()
+ public final DataTable setItemReuseStrategy(IItemReuseStrategy strategy)
{
- return datagrid.getRowCount();
+ datagrid.setItemReuseStrategy(strategy);
+ return this;
}
/**
@@ -253,17 +247,32 @@
datagrid.setRowsPerPage(items);
}
- /**
- * @return number of rows per page
- */
- public final int getRowsPerPage()
+ private void addToolbar(AbstractToolbar toolbar, RepeatingView container)
{
- return datagrid.getRowsPerPage();
+ if (toolbar == null)
+ {
+ throw new IllegalArgumentException("argument [toolbar] cannot be null");
+ }
+
+ if (!toolbar.getId().equals(TOOLBAR_COMPONENT_ID))
+ {
+ throw new IllegalArgumentException(
+ "Toolbar must have component id equal to AbstractDataTable.TOOLBAR_COMPONENT_ID");
+ }
+
+ toolbar.setRenderBodyOnly(true);
+
+ // create a container item for the toolbar (required by repeating view)
+ WebMarkupContainer item = new WebMarkupContainer(container.newChildId());
+ item.setRenderBodyOnly(true);
+ item.add(toolbar);
+
+ container.add(item);
}
/**
- * Factory method for Item container that represents a row in the underlying
- * DataGridView
+ * Factory method for Item container that represents a cell in the
+ * underlying DataGridView
*
* @see Item
*
@@ -272,18 +281,18 @@
* @param index
* the index of the new data item
* @param model
- * the model for the new data item.
+ * the model for the new data item
*
* @return DataItem created DataItem
*/
- protected Item newRowItem(final String id, int index, final IModel model)
+ protected Item newCellItem(final String id, int index, final IModel model)
{
return new Item(id, index, model);
}
/**
- * Factory method for Item container that represents a cell in the
- * underlying DataGridView
+ * Factory method for Item container that represents a row in the underlying
+ * DataGridView
*
* @see Item
*
@@ -292,30 +301,36 @@
* @param index
* the index of the new data item
* @param model
- * the model for the new data item
+ * the model for the new data item.
*
* @return DataItem created DataItem
*/
- protected Item newCellItem(final String id, int index, final IModel model)
+ protected Item newRowItem(final String id, int index, final IModel model)
{
return new Item(id, index, model);
}
/**
- * Sets the item reuse strategy. This strategy controls the creation of
- * {@link Item}s.
- *
- * @see RefreshingView#setItemReuseStrategy(IItemReuseStrategy)
- * @see IItemReuseStrategy
- *
- * @param strategy
- * item reuse strategy
- * @return this for chaining
+ * @see wicket.Component#onDetach()
*/
- public final DataTable setItemReuseStrategy(IItemReuseStrategy strategy)
+ protected void onDetach()
{
- datagrid.setItemReuseStrategy(strategy);
- return this;
+ super.onDetach();
+ if (columns != null)
+ {
+ for (int i = 0; i < columns.length; i++)
+ {
+ columns[i].detach();
+ }
+ }
+ }
+
+ /**
+ * Event listener for page-changed event
+ */
+ protected void onPageChanged()
+ {
+ // noop
}
}
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java?view=diff&rev=524289&r1=524288&r2=524289
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket-extensions/src/main/java/wicket/extensions/markup/html/repeater/data/table/filter/ChoiceFilteredPropertyColumn.java Fri Mar 30 15:01:11 2007
@@ -63,6 +63,18 @@
}
/**
+ * @see wicket.model.IDetachable#detach()
+ */
+ public void detach()
+ {
+ super.detach();
+ if (filterChoices != null)
+ {
+ filterChoices.detach();
+ }
+ }
+
+ /**
* @see wicket.extensions.markup.html.repeater.data.table.filter.IFilteredColumn#getFilter(java.lang.String,
* wicket.extensions.markup.html.repeater.data.table.filter.FilterForm)
*/
@@ -112,5 +124,4 @@
{
return null;
}
-
}
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/repeater/data/DataViewBase.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/repeater/data/DataViewBase.java?view=diff&rev=524289&r1=524288&r2=524289
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/repeater/data/DataViewBase.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/repeater/data/DataViewBase.java Fri Mar 30 15:01:11 2007
@@ -134,6 +134,9 @@
return internalGetDataProvider().size();
}
+ /**
+ * @see wicket.markup.repeater.AbstractPageableView#onDetach()
+ */
protected void onDetach()
{
super.onDetach();