diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationProcessor.java @ 9612:f8308db94634

#20 UI, Diagramme
author dnt_bjoernsen <d.tironi@bjoernsen.de>
date Wed, 09 Oct 2019 16:17:16 +0200
parents 08f46ccd37ba
children 26e113e8224f
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationProcessor.java	Wed Oct 09 15:58:46 2019 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationProcessor.java	Wed Oct 09 16:17:16 2019 +0200
@@ -18,9 +18,9 @@
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.common.AbstractCalculationResult;
 import org.dive4elements.river.artifacts.common.AbstractProcessor;
-import org.dive4elements.river.artifacts.common.ResultFacet;
 import org.dive4elements.river.artifacts.resources.Resources;
 import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
+import org.dive4elements.river.artifacts.sinfo.flood_duration.FloodDurationCalculationResult.Infrastructure;
 import org.dive4elements.river.artifacts.sinfo.flood_duration.FloodDurationCalculationResult.ValueGetter;
 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
 import org.dive4elements.river.exports.DiagramGenerator;
@@ -39,8 +39,6 @@
 
     private static final String FACET_FLOOD_DURATION_RIGHT = "sinfo_facet_flood_duration.right";
 
-    private static final String FACET_FLOOD_DURATION_DESCRIPTION = "sinfo_facet_flood_duration.description";
-
     private static final String FACET_MAIN_VALUE_DURATION = "mainvalue.duration";
 
     private static final String FACET_MAIN_VALUE_DURATION_DESCRIPTION = "mainvalue.duration.description";
@@ -60,18 +58,11 @@
     }
 
     public static Facet createFloodDurationFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
-            final int facetIndex, final int resultIndex) {
+            final int facetIndex, final int resultIndex, final Infrastructure infrastructure) {
 
-        if (facetIndex == 0) {
-            final String description = Resources.getMsg(context.getMeta(), FACET_FLOOD_DURATION_DESCRIPTION, FACET_FLOOD_DURATION_DESCRIPTION,
-                    SInfoResultType.localizeRiverside(context, AttributeKey.LEFT));
-            return new ResultFacet(facetIndex, resultIndex, FACET_FLOOD_DURATION_LEFT, description, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash);
-        }
-        else {
-            final String description = Resources.getMsg(context.getMeta(), FACET_FLOOD_DURATION_DESCRIPTION, FACET_FLOOD_DURATION_DESCRIPTION,
-                    SInfoResultType.localizeRiverside(context, AttributeKey.RIGHT));
-            return new ResultFacet(facetIndex, resultIndex, FACET_FLOOD_DURATION_RIGHT, description, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash);
-        }
+        final String description = infrastructure.getFloodDurationLabel(context);
+        final String facetName = infrastructure.getRiverside() == AttributeKey.LEFT ? FACET_FLOOD_DURATION_LEFT : FACET_FLOOD_DURATION_RIGHT;
+        return new InfrastructureResultFacet(facetIndex, resultIndex, facetName, description, I18N_AXIS_LABEL, id, hash, infrastructure);
     }
 
     public static Facet createMainValueDurationFacet(final CallContext context, final String hash, final String id, final FloodDurationCalculationResult result,
@@ -89,12 +80,8 @@
 
         final String facetName = bundle.getFacetName();
 
-        if (FACET_FLOOD_DURATION_LEFT.contentEquals(facetName)) {
-            return buildInfrastructureSeries(generator, bundle, theme, visible, AttributeKey.LEFT);
-        }
-
-        if (FACET_FLOOD_DURATION_RIGHT.contentEquals(facetName))
-            return buildInfrastructureSeries(generator, bundle, theme, visible, AttributeKey.RIGHT);
+        if (FACET_FLOOD_DURATION_LEFT.contentEquals(facetName) || FACET_FLOOD_DURATION_RIGHT.contentEquals(facetName))
+            return buildInfrastructureSeries(generator, bundle, theme, visible);
 
         if (FACET_MAIN_VALUE_DURATION.contentEquals(facetName)) {
 
@@ -119,12 +106,15 @@
         throw new UnsupportedOperationException(error);
     }
 
-    private String buildInfrastructureSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible,
-            final AttributeKey riverside) {
+    private String buildInfrastructureSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme,
+            final boolean visible) {
+
+        final InfrastructureResultFacet infFacet = (InfrastructureResultFacet) bundle.getFacet();
+        final Infrastructure infrastructure = infFacet.getInfrastructure();
 
         final FloodDurationCalculationResult data = (FloodDurationCalculationResult) getResult(generator, bundle);
 
-        final double[][] points = data.getInfrastructurePoints(SInfoResultType.floodDuration, riverside);
+        final double[][] points = data.getInfrastructurePoints(SInfoResultType.floodDuration, infrastructure);
 
         return buildSeriesForPoints(points, generator, bundle, theme, visible, null);
     }

http://dive4elements.wald.intevation.org