diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java @ 697:b972eba2ed8a facets-slt

Removed ComputeCallback because this was thought too complicated. Fixed issue with facets not be re-generated if same state is entered again. flys-artifacts/branches/facets-slt@2143 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 17 Jun 2011 10:40:54 +0000
parents 708b270dfd30
children af3b5d9e91a4
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java	Fri Jun 17 09:19:43 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ComputedDischargeCurveState.java	Fri Jun 17 10:40:54 2011 +0000
@@ -10,8 +10,6 @@
 
 import de.intevation.flys.artifacts.FLYSArtifact;
 import de.intevation.flys.artifacts.WINFOArtifact;
-import de.intevation.flys.artifacts.model.ComputeCallback;
-import de.intevation.flys.artifacts.model.ComputeCallbackAdapter;
 import de.intevation.flys.artifacts.model.FacetTypes;
 import de.intevation.flys.artifacts.model.WaterlevelFacet;
 import de.intevation.flys.artifacts.model.WQKms;
@@ -36,43 +34,45 @@
 
 
     @Override
-    public ComputeCallback createComputeCallback(
-        String hash, FLYSArtifact flys)
-    {
-        final WINFOArtifact winfo = (WINFOArtifact) flys;
-
-        return new ComputeCallbackAdapter() {
-
-            @Override
-            public Object computeAdvance(
-                CallContext context,
-                List<Facet> facets)
-            {
-                WQKms res = winfo.getComputedDischargeCurveData();
+    public Object computeAdvance(
+        FLYSArtifact artifact,
+        String       hash,
+        CallContext  context,
+        List<Facet>  facets, 
+        Object       old
+    ) {
+        WINFOArtifact winfo = (WINFOArtifact)artifact;
 
-                if (res == null) {
-                    logger.debug("No results given.");
-                    return null;
-                }
-
-                Object[] args = new Object[] {
-                    winfo.getRiver().getName(),
-                    res.getName()
-                };
+        WQKms res;
 
-                String name = Resources.getMsg(
-                    context.getMeta(),
-                    "chart.computed.discharge.curve.curve.label",
-                    "",
-                    args);
+        if (old instanceof WQKms []) {
+            res = ((WQKms [])old)[0];
+        }
+        else {
+            res = winfo.getComputedDischargeCurveData();
 
-                Facet q = new WaterlevelFacet(0, COMPUTED_DISCHARGE_Q, name);
+            if (res == null) {
+                logger.debug("No results given.");
+                return null;
+            }
+        }
 
-                facets.add(q);
+        Object[] args = new Object[] {
+            winfo.getRiver().getName(),
+            res.getName()
+        };
 
-                return new WQKms[] { res };
-            }
-        };
+        String name = Resources.getMsg(
+            context.getMeta(),
+            "chart.computed.discharge.curve.curve.label",
+            "",
+            args);
+
+        Facet q = new WaterlevelFacet(0, COMPUTED_DISCHARGE_Q, name);
+
+        facets.add(q);
+
+        return new WQKms[] { res };
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org