diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/CollisionCalcProcessor.java @ 9204:4f411c6ee3ae

Individual facets/themes for single years i the S-Info collisions output
author mschaefer
date Mon, 02 Jul 2018 17:40:39 +0200
parents 6393e05a9610
children 3dae6b78e1da
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/CollisionCalcProcessor.java	Mon Jul 02 13:00:59 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/CollisionCalcProcessor.java	Mon Jul 02 17:40:39 2018 +0200
@@ -19,6 +19,7 @@
 import org.dive4elements.river.artifacts.common.AbstractCalculationResult;
 import org.dive4elements.river.artifacts.resources.Resources;
 import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcFacet;
+import org.dive4elements.river.artifacts.sinfo.collision.CollisionCalcOverviewResult;
 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
 import org.dive4elements.river.exports.DiagramGenerator;
 import org.dive4elements.river.themes.ThemeDocument;
@@ -33,6 +34,10 @@
 
     public static final String FACET_COLLISION_CALC_COUNT = "sinfo_facet_collision_calc_count";
 
+    public static final String FACET_COLLISION_CALC_COUNT_2 = "sinfo_facet_collision_calc_count.2";
+
+    public static final String FACET_COLLISION_CALC_COUNT_3 = "sinfo_facet_collision_calc_count.3";
+
     private static final String I18N_AXIS_LABEL = "chart.collision_count.section.yaxis.label";
 
     private static final String I18N_SERIES_NAME_PATTERN = "collision.count.title";
@@ -41,6 +46,8 @@
 
     static {
         HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT);
+        HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT_2);
+        HANDLED_FACET_TYPES.add(FACET_COLLISION_CALC_COUNT_3);
     }
 
     public CollisionCalcProcessor() {
@@ -50,12 +57,24 @@
     @Override
     protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
 
-        return buildSeriesForType(generator, bundle, theme, visible, SInfoResultType.collisionCount, null);
+        return buildSeriesForType1(generator, bundle, theme, visible, SInfoResultType.collisionCount, null);
     }
 
     public static final Facet createFacet(final CallContext context, final String hash, final String id, final AbstractCalculationResult result,
             final int index) {
-        final String facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel());
-        return new CollisionCalcFacet(index, FACET_COLLISION_CALC_COUNT, facetDescription, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash);
+
+        final CollisionCalcOverviewResult ccoResult = (CollisionCalcOverviewResult) result;
+        String facetDescription;
+        String facetName;
+        if (ccoResult.getSingleYears() == null) {
+            facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN, result.getLabel());
+            facetName = FACET_COLLISION_CALC_COUNT;
+        }
+        else {
+            facetDescription = Resources.getMsg(context.getMeta(), I18N_SERIES_NAME_PATTERN, I18N_SERIES_NAME_PATTERN,
+                    Integer.toString(ccoResult.getSingleYears()[index]));
+            facetName = new String[] { FACET_COLLISION_CALC_COUNT, FACET_COLLISION_CALC_COUNT_2, FACET_COLLISION_CALC_COUNT_3 }[index % 3].toString();
+        }
+        return new CollisionCalcFacet(index, facetName, facetDescription, I18N_AXIS_LABEL, ComputeType.ADVANCE, id, hash);
     }
 }
\ No newline at end of file

http://dive4elements.wald.intevation.org