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