diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.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/DurationCurveState.java	Fri Jun 17 09:19:43 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/DurationCurveState.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.DurationCurveFacet;
 import de.intevation.flys.artifacts.model.FacetTypes;
 import de.intevation.flys.artifacts.model.WQDay;
@@ -35,50 +33,51 @@
 
 
     @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)
-            {
-                WQDay res = winfo.getDurationCurveData();
-
-                if (res == null) {
-                    logger.debug("No results given.");
-                    return null;
-                }
+    public Object computeAdvance(
+        FLYSArtifact artifact,
+        String       hash,
+        CallContext  context,
+        List<Facet>  facets, 
+        Object       old
+    ) {
+        WINFOArtifact winfo = (WINFOArtifact)artifact;
 
-                Object[] args = new Object[] {
-                    winfo.getRiver().getName()
-                };
-
-                String nameW = Resources.getMsg(
-                    context.getMeta(),
-                    "chart.duration.curve.curve.w",
-                    "",
-                    args);
+        WQDay res;
 
-                String nameQ = Resources.getMsg(
-                    context.getMeta(),
-                    "chart.duration.curve.curve.q",
-                    "",
-                    args);
+        if (old instanceof WQDay []) {
+            res = ((WQDay [])old)[0];
+        }
+        else {
+            res = winfo.getDurationCurveData();
+            if (res == null) {
+                logger.debug("No results given.");
+                return null;
+            }
+        }
 
-                Facet w = new DurationCurveFacet(0, DURATION_W, nameW);
-                Facet q = new DurationCurveFacet(0, DURATION_Q, nameQ);
+        Object[] args = new Object[] {
+            winfo.getRiver().getName()
+        };
 
-                facets.add(w);
-                facets.add(q);
+        String nameW = Resources.getMsg(
+            context.getMeta(),
+            "chart.duration.curve.curve.w",
+            "",
+            args);
 
-                return new WQDay[] { res };
-            }
-        };
+        String nameQ = Resources.getMsg(
+            context.getMeta(),
+            "chart.duration.curve.curve.q",
+            "",
+            args);
+
+        Facet w = new DurationCurveFacet(0, DURATION_W, nameW);
+        Facet q = new DurationCurveFacet(0, DURATION_Q, nameQ);
+
+        facets.add(w);
+        facets.add(q);
+
+        return new WQDay[] { res };
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org