diff flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterList.java @ 60:f793d35bfb08

Implemented a mechanism to step back to previous states. flys-client/trunk@1523 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 21 Mar 2011 08:28:02 +0000
parents 246af33f621c
children 9b726350ab07
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterList.java	Fri Mar 18 13:45:34 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/ParameterList.java	Mon Mar 21 08:28:02 2011 +0000
@@ -12,9 +12,16 @@
 
 import de.intevation.flys.client.shared.model.Data;
 import de.intevation.flys.client.shared.model.DataList;
+import de.intevation.flys.client.client.event.HasStepBackHandlers;
+import de.intevation.flys.client.client.event.StepBackEvent;
+import de.intevation.flys.client.client.event.StepBackHandler;
 
 
-public class ParameterList extends VLayout {
+public class ParameterList
+extends      VLayout
+implements   StepBackHandler
+{
+    protected CollectionView cView;
 
     protected List<DataList> old;
     protected DataList   current;
@@ -24,7 +31,8 @@
     protected VLayout oldItems;
     protected VLayout currentItems;
 
-    public ParameterList() {
+    public ParameterList(CollectionView cView) {
+        this.cView   = cView;
         old          = new ArrayList<DataList>();
         oldItems     = new VLayout();
         currentItems = new VLayout();
@@ -111,6 +119,8 @@
 
             String     provider   = dataList.getUIProvider();
             UIProvider uiprovider = UIProviderFactory.getProvider(provider);
+            ((HasStepBackHandlers) uiprovider).addStepBackHandler(cView);
+            ((HasStepBackHandlers) uiprovider).addStepBackHandler(this);
 
             oldItems.addMember(uiprovider.createOld(dataList));
         }
@@ -139,5 +149,17 @@
             currentItems.addMember(c);
         }
     }
+
+
+    /**
+     * This method is used to remove all old items from this list after the user
+     * has clicked the step back button.
+     *
+     * @param e The StepBackEvent.
+     */
+    public void onStepBack(StepBackEvent e) {
+        old.clear();
+        oldItems.removeMembers(oldItems.getMembers());
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org