diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineState.java @ 9316:72b3270e1568

U-Info salix line with regional and supraregional scenario calculation and chart display
author mschaefer
date Thu, 26 Jul 2018 17:28:32 +0200
parents 385b52ccde23
children a978b601a034
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineState.java	Thu Jul 26 17:23:49 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineState.java	Thu Jul 26 17:28:32 2018 +0200
@@ -21,6 +21,7 @@
 import org.dive4elements.river.artifacts.model.EmptyFacet;
 import org.dive4elements.river.artifacts.model.FacetTypes;
 import org.dive4elements.river.artifacts.model.ReportFacet;
+import org.dive4elements.river.artifacts.resources.Resources;
 import org.dive4elements.river.artifacts.states.DefaultState;
 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
 
@@ -68,9 +69,9 @@
      * @param old
      *            Object that was cached.
      */
-    private Object compute(final UINFOArtifact sinfo, final CallContext context, final String hash, final List<Facet> facets, final Object old) {
+    private Object compute(final UINFOArtifact uinfo, final CallContext context, final String hash, final List<Facet> facets, final Object old) {
 
-        final CalculationResult res = doCompute(sinfo, context, old);
+        final CalculationResult res = doCompute(uinfo, context, old);
 
         if (facets == null)
             return res;
@@ -80,8 +81,25 @@
         final List<SalixLineCalculationNoScenarioResult> resultList = results.getResults();
 
         if (!resultList.isEmpty()) {
-            facets.add(SalixLineProcessor.createSalixLineFacet(context, hash, this.id, resultList.get(0), 0, 0, "Salix-Linie"));
-            facets.add(SalixLineProcessor.createSalixMnwMwFacet(context, hash, this.id, resultList.get(0), 0, 0, "MNW-MW"));
+            facets.add(SalixLineProcessor.createSalixLineFacet(context, hash, this.id, resultList.get(0), 0, 0));
+            facets.add(SalixLineProcessor.createSalixMnwMwFacet(context, hash, this.id, resultList.get(0), 0, 0));
+            if (resultList.get(0) instanceof SalixLineCalculationRegionalResult) {
+                final SalixLineCalculationRegionalResult result = (SalixLineCalculationRegionalResult) resultList.get(0);
+                for (int i = 0; i <= result.getScenarioCount() - 1; i++) {
+                    final String sublabel = Resources.getMsg(context.getMeta(), "uinfo_salix_scenario_deltaw", "uinfo_salix_scenario_deltaw",
+                            result.getScenarioLabel(i));
+                    facets.add(SalixLineProcessor.createSalixScenarioFacet(context, hash, this.id, result, i, 0, sublabel));
+                }
+            }
+            else if (resultList.get(0) instanceof SalixLineCalculationSupraRegionalResult) {
+                final String sublabel = Resources.getMsg(context.getMeta(), "uinfo_salix_scenario_supraregional");
+                facets.add(SalixLineProcessor.createSalixScenarioFacet(context, hash, this.id, resultList.get(0), 0, 0, sublabel));
+            }
+
+            else if (resultList.get(0) instanceof SalixLineCalculationHistoricalResult) {
+                final String sublabel = Resources.getMsg(context.getMeta(), "uinfo_salix_scenario_historical");
+                facets.add(SalixLineProcessor.createSalixScenarioFacet(context, hash, this.id, resultList.get(0), 0, 0, sublabel));
+            }
 
             final Facet csv = new DataFacet(FacetTypes.CSV, "CSV data", ComputeType.ADVANCE, hash, this.id);
             final Facet pdf = new DataFacet(FacetTypes.PDF, "PDF data", ComputeType.ADVANCE, hash, this.id);

http://dive4elements.wald.intevation.org