Mercurial > dive4elements > river
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 :