You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by mi...@apache.org on 2006/03/12 11:41:36 UTC
svn commit: r385275 - in
/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components:
Table.java TableActionPageChange.java TableFormPages.java TablePages.java
TableView.java
Author: mindbridge
Date: Sun Mar 12 02:41:35 2006
New Revision: 385275
URL: http://svn.apache.org/viewcvs?rev=385275&view=rev
Log: (empty)
Added:
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableActionPageChange.java
Modified:
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/Table.java
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.java
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TablePages.java
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableView.java
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/Table.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/Table.java?rev=385275&r1=385274&r2=385275&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/Table.java (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/Table.java Sun Mar 12 02:41:35 2006
@@ -17,6 +17,7 @@
import org.apache.tapestry.BaseComponent;
import org.apache.tapestry.IForm;
import org.apache.tapestry.TapestryUtils;
+import org.apache.tapestry.contrib.table.model.ITableAction;
import org.apache.tapestry.contrib.table.model.ITableColumn;
import org.apache.tapestry.contrib.table.model.ITableModel;
import org.apache.tapestry.contrib.table.model.ITableModelSource;
@@ -116,5 +117,13 @@
IForm form = (IForm) getPage().getRequestCycle().getAttribute(TapestryUtils.FORM_ATTRIBUTE);
return (form == null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tapestry.contrib.table.model.ITableModelSource#storeTableAction(org.apache.tapestry.contrib.table.model.ITableAction)
+ */
+ public void storeTableAction(ITableAction action)
+ {
+ getTableViewComponent().storeTableAction(action);
}
}
Added: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableActionPageChange.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableActionPageChange.java?rev=385275&view=auto
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableActionPageChange.java (added)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableActionPageChange.java Sun Mar 12 02:41:35 2006
@@ -0,0 +1,42 @@
+// Copyright 2004, 2005 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package org.apache.tapestry.contrib.table.components;
+
+import org.apache.tapestry.contrib.table.model.ITableAction;
+import org.apache.tapestry.contrib.table.model.ITableModel;
+
+
+/**
+ * <p>A table action that changes the current table page</p>
+ *
+ * @author teo
+ */
+public class TableActionPageChange implements ITableAction
+{
+ private int _page;
+
+ public TableActionPageChange(int page)
+ {
+ super();
+ _page = page;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void executeTableAction(ITableModel objTableModel)
+ {
+ objTableModel.getPagingState().setCurrentPage(_page - 1);
+ }
+}
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.java?rev=385275&r1=385274&r2=385275&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.java (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableFormPages.java Sun Mar 12 02:41:35 2006
@@ -87,10 +87,7 @@
public void changePage(IRequestCycle objCycle)
{
ITableModelSource objSource = getTableModelSource();
- setCurrentPage(objSource, getSelectedPage());
-
- // ensure that the change is saved
- objSource.fireObservedStateChange();
+ objSource.storeTableAction(new TableActionPageChange(getSelectedPage()));
}
// defined in the JWC file
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TablePages.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TablePages.java?rev=385275&r1=385274&r2=385275&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TablePages.java (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TablePages.java Sun Mar 12 02:41:35 2006
@@ -178,12 +178,11 @@
return;
}
- ComponentAddress objAddress = (ComponentAddress) arrParameters[0];
- ITableModelSource objSource = (ITableModelSource) objAddress.findComponent(objCycle);
- setCurrentPage(objSource, ((Integer) arrParameters[1]).intValue());
-
- // ensure that the change is saved
- objSource.fireObservedStateChange();
+ ComponentAddress objAddress = (ComponentAddress)arrParameters[0];
+ ITableModelSource objSource = (ITableModelSource)objAddress.findComponent(objCycle);
+ int page = ((Integer)arrParameters[1]).intValue();
+
+ objSource.storeTableAction(new TableActionPageChange(page));
}
public void setCurrentPage(ITableModelSource objSource, int nPage)
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableView.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableView.java?rev=385275&r1=385274&r2=385275&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableView.java (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/table/components/TableView.java Sun Mar 12 02:41:35 2006
@@ -27,6 +27,7 @@
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.contrib.table.model.IAdvancedTableColumnSource;
import org.apache.tapestry.contrib.table.model.IBasicTableModel;
+import org.apache.tapestry.contrib.table.model.ITableAction;
import org.apache.tapestry.contrib.table.model.ITableColumn;
import org.apache.tapestry.contrib.table.model.ITableColumnModel;
import org.apache.tapestry.contrib.table.model.ITableDataModel;
@@ -149,6 +150,10 @@
public abstract void setClientAppState(Serializable sessionState);
+ public abstract List getTableActions();
+
+ public abstract void setTableActions(List actions);
+
/**
* The component constructor. Invokes the component member initializations.
*/
@@ -396,6 +401,8 @@
*/
public void pageBeginRender(PageEvent event)
{
+ executeTableActions();
+
// 'suspenders': save the table model if it has been already loaded.
// this means that if a change has been made explicitly in a listener,
// it will be saved. this is the last place before committing the changes
@@ -500,4 +507,42 @@
cycle.setAttribute(ITableModelSource.TABLE_MODEL_SOURCE_ATTRIBUTE, objOldValue);
}
-}
\ No newline at end of file
+ /**
+ * Stores the provided table action
+ */
+ public void storeTableAction(ITableAction action)
+ {
+ List actions = getTableActions();
+ if (actions == null) {
+ actions = new ArrayList(5);
+ setTableActions(actions);
+ }
+
+ actions.add(action);
+ }
+
+ /**
+ * Executes the stored table actions
+ */
+ public void executeTableActions()
+ {
+ List actions = getTableActions();
+ if (actions == null || actions.isEmpty())
+ return;
+
+ // save the actions and clear the list
+ List savedActions = new ArrayList(actions);
+ actions.clear();
+
+ ITableModel objTableModel = getTableModel();
+ for(Iterator it = savedActions.iterator(); it.hasNext();)
+ {
+ ITableAction action = (ITableAction) it.next();
+ action.executeTableAction(objTableModel);
+ }
+
+ // ensure that the changes are saved
+ fireObservedStateChange();
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org