diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java @ 9368:6f7e92c16050

Fixed U-Info salix mw calculation, added filtered themes, own y axis, warning report
author mschaefer
date Thu, 02 Aug 2018 16:11:12 +0200
parents 2aec052d4088
children 6e7094368e97
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Thu Aug 02 16:08:51 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Thu Aug 02 16:11:12 2018 +0200
@@ -20,7 +20,6 @@
 import org.dive4elements.river.artifacts.resources.Resources;
 import org.dive4elements.river.artifacts.uinfo.common.UInfoResultType;
 import org.dive4elements.river.exports.DiagramGenerator;
-import org.dive4elements.river.exports.process.WOutProcessor;
 import org.dive4elements.river.themes.ThemeDocument;
 
 /**
@@ -31,70 +30,132 @@
  */
 public final class SalixLineProcessor extends AbstractProcessor {
 
-    private static final String FACET_SALIX_LINE = "uinfo_facet_salix_line";
-
-    private static final String FACET_SALIX_LINE_DESCRIPTION = "uinfo_facet_salix_line.description";
+    private static final String FACET_SALIX_LINE_FILTERED = "uinfo_facet_salix_line.filtered";
 
-    private static final String FACET_SALIX_MNWMW = "uinfo_facet_salix_mnwmw";
+    private static final String FACET_SALIX_LINE_FILTERED_DESCRIPTION = "uinfo_facet_salix_line.filtered.description";
 
-    private static final String FACET_SALIX_MNWMW_DESCRIPTION = "uinfo_facet_salix_mnwmw.description";
+    public static final String FACET_SALIX_LINE_RAW = "uinfo_facet_salix_line";
 
-    public static final String FACET_SALIX_SCENARIO = "uinfo_facet_salix_scenario";
+    private static final String FACET_SALIX_LINE_RAW_DESCRIPTION = "uinfo_facet_salix_line.raw.description";
 
-    private static final String FACET_SALIX_SCENARIO_DESCRIPTION = "uinfo_facet_salix_scenario.description";
+    private static final String FACET_SALIX_MNWMW_FILTERED = "uinfo_facet_salix_mnwmw.filtered";
+
+    private static final String FACET_SALIX_MNWMW_FILTERED_DESCRIPTION = "uinfo_facet_salix_mnwmw.filtered.description";
+
+    public static final String FACET_SALIX_MNWMW_RAW = "uinfo_facet_salix_mnwmw";
+
+    private static final String FACET_SALIX_MNWMW_RAW_DESCRIPTION = "uinfo_facet_salix_mnwmw.raw.description";
+
+    public static final String FACET_SALIX_SCENARIO_FILTERED = "uinfo_facet_salix_scenario.filtered";
+
+    private static final String FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION = "uinfo_facet_salix_scenario.filtered.description";
+
+    public static final String FACET_SALIX_SCENARIO_RAW = "uinfo_facet_salix_scenario";
+
+    private static final String FACET_SALIX_SCENARIO_RAW_DESCRIPTION = "uinfo_facet_salix_scenario.raw.description";
+
+    public static final String FACET_SALIX_RANK = "uinfo_facet_salix_rank";
+
+    private static final String FACET_SALIX_RANK_DESCRIPTION = "uinfo_facet_salix_rank.description";
+
+    private static final String I18N_AXIS_LABEL = "uinfo.chart.salix_line.section.yaxis.label";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
 
     static {
-        HANDLED_FACET_TYPES.add(FACET_SALIX_LINE);
-        HANDLED_FACET_TYPES.add(FACET_SALIX_MNWMW);
-        HANDLED_FACET_TYPES.add(FACET_SALIX_SCENARIO);
-    }
-
-    public static Facet createSalixLineFacet(final CallContext context, final String hash, final String id, final int facetIndex, final int resultIndex) {
-
-        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_LINE_DESCRIPTION, FACET_SALIX_LINE_DESCRIPTION);
-        return new SalixLineResultFacet(facetIndex, resultIndex, FACET_SALIX_LINE, description, WOutProcessor.I18N_AXIS_LABEL, id, hash);
-    }
-
-    public static Facet createSalixMnwMwFacet(final CallContext context, final String hash, final String id, final int facetIndex, final int resultIndex) {
-
-        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_MNWMW_DESCRIPTION, FACET_SALIX_MNWMW_DESCRIPTION);
-        return new SalixMnwMwResultFacet(facetIndex, resultIndex, FACET_SALIX_MNWMW, description, WOutProcessor.I18N_AXIS_LABEL, id, hash);
-    }
-
-    public static Facet createSalixScenarioFacet(final CallContext context, final String hash, final String id, final int dataIndex, final int resultIndex,
-            final int facetIndex, final String subLabel) {
-
-        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_SCENARIO_DESCRIPTION, FACET_SALIX_SCENARIO_DESCRIPTION, subLabel);
-        return new SalixScenarioResultFacet(facetIndex, resultIndex, dataIndex, FACET_SALIX_SCENARIO, description, WOutProcessor.I18N_AXIS_LABEL, hash, id);
+        HANDLED_FACET_TYPES.add(FACET_SALIX_LINE_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_SALIX_LINE_RAW);
+        HANDLED_FACET_TYPES.add(FACET_SALIX_MNWMW_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_SALIX_MNWMW_RAW);
+        HANDLED_FACET_TYPES.add(FACET_SALIX_SCENARIO_FILTERED);
+        HANDLED_FACET_TYPES.add(FACET_SALIX_SCENARIO_RAW);
+        HANDLED_FACET_TYPES.add(FACET_SALIX_RANK);
     }
 
     public SalixLineProcessor() {
-        super(WOutProcessor.I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
+        super(I18N_AXIS_LABEL, HANDLED_FACET_TYPES);
+    }
+
+    public static Facet createSalixLineFilteredFacet(final CallContext context, final String hash, final String id, final int facetIndex,
+            final int resultIndex) {
+
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_LINE_FILTERED_DESCRIPTION, FACET_SALIX_LINE_FILTERED_DESCRIPTION);
+        return new SalixLineResultFacet(facetIndex, resultIndex, FACET_SALIX_LINE_FILTERED, description, I18N_AXIS_LABEL, id, hash);
+    }
+
+    public static Facet createSalixLineRawFacet(final CallContext context, final String hash, final String id, final int facetIndex, final int resultIndex) {
+
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_LINE_RAW_DESCRIPTION, FACET_SALIX_LINE_RAW_DESCRIPTION);
+        return new SalixLineResultFacet(facetIndex, resultIndex, FACET_SALIX_LINE_RAW, description, I18N_AXIS_LABEL, id, hash);
+    }
+
+    public static Facet createSalixMnwMwFilteredFacet(final CallContext context, final String hash, final String id, final int facetIndex,
+            final int resultIndex) {
+
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_MNWMW_FILTERED_DESCRIPTION, FACET_SALIX_MNWMW_FILTERED_DESCRIPTION);
+        return new SalixMnwMwResultFacet(facetIndex, resultIndex, FACET_SALIX_MNWMW_FILTERED, description, I18N_AXIS_LABEL, id, hash);
+    }
+
+    public static Facet createSalixMnwMwRawFacet(final CallContext context, final String hash, final String id, final int facetIndex, final int resultIndex) {
+
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_MNWMW_RAW_DESCRIPTION, FACET_SALIX_MNWMW_RAW_DESCRIPTION);
+        return new SalixMnwMwResultFacet(facetIndex, resultIndex, FACET_SALIX_MNWMW_RAW, description, I18N_AXIS_LABEL, id, hash);
+    }
+
+    public static Facet createSalixScenarioFilteredFacet(final CallContext context, final String hash, final String id, final int dataIndex,
+            final int resultIndex, final int facetIndex, final String subLabel) {
+
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION,
+                FACET_SALIX_SCENARIO_FILTERED_DESCRIPTION, subLabel);
+        return new SalixScenarioResultFacet(facetIndex, resultIndex, dataIndex, FACET_SALIX_SCENARIO_FILTERED, description, I18N_AXIS_LABEL, hash, id);
+    }
+
+    public static Facet createSalixScenarioRawFacet(final CallContext context, final String hash, final String id, final int dataIndex, final int resultIndex,
+            final int facetIndex, final String subLabel) {
+
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_SCENARIO_RAW_DESCRIPTION, FACET_SALIX_SCENARIO_RAW_DESCRIPTION, subLabel);
+        return new SalixScenarioResultFacet(facetIndex, resultIndex, dataIndex, FACET_SALIX_SCENARIO_RAW, description, I18N_AXIS_LABEL, hash, id);
+    }
+
+    public static Facet createSalixRankFacet(final CallContext context, final String hash, final String id, final int facetIndex, final int resultIndex) {
+
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_RANK_DESCRIPTION, FACET_SALIX_RANK_DESCRIPTION);
+        return new SalixRankResultFacet(facetIndex, resultIndex, FACET_SALIX_RANK, description, I18N_AXIS_LABEL, id, hash);
     }
 
     @Override
     protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
 
         // log.debug("Processing facet: " + bundle.getFacetName());
-        final CallContext context = generator.getContext();
-        final SalixLineCalculationResult data = (SalixLineCalculationResult) bundle.getData(context);
 
-        if (bundle.getFacetName().equals(FACET_SALIX_LINE)) {
-            return buildSeriesForType(generator, bundle, theme, visible, UInfoResultType.salixline, GAP_DISTANCE);
-        }
-
-        if (bundle.getFacetName().equals(FACET_SALIX_MNWMW)) {
-            return buildSeriesForType(generator, bundle, theme, visible, UInfoResultType.salix_mw_mnw, GAP_DISTANCE);
-        }
-
-        if (bundle.getFacetName().equals(FACET_SALIX_SCENARIO)) {
+        if (bundle.getFacetName().equals(FACET_SALIX_SCENARIO_FILTERED) || bundle.getFacetName().equals(FACET_SALIX_SCENARIO_RAW)) {
+            final CallContext context = generator.getContext();
+            final SalixLineCalculationResult data = (SalixLineCalculationResult) bundle.getData(context);
             final int dataIndex = ((SalixScenarioResultFacet) bundle.getFacet()).getDataIndex();
             final double[][] scenarioPoints = data.getScenarioPoints(dataIndex);
             return buildSeriesForPoints(scenarioPoints, generator, bundle, theme, visible, GAP_DISTANCE);
         }
 
-        throw new UnsupportedOperationException();
+        if (bundle.getFacetName().equals(FACET_SALIX_RANK)) {
+            // TODO return buildSeriesForType(generator, bundle, theme, visible, UInfoResultType.salixline, GAP_DISTANCE);
+        }
+
+        return buildSeriesForType(generator, bundle, theme, visible, doGetType(bundle.getFacetName()), GAP_DISTANCE);
+    }
+
+    protected UInfoResultType doGetType(final String facetName) {
+
+        if (FACET_SALIX_LINE_FILTERED.contentEquals(facetName))
+            return UInfoResultType.salixline;
+        if (FACET_SALIX_LINE_RAW.contentEquals(facetName))
+            return UInfoResultType.salixline;
+
+        if (FACET_SALIX_MNWMW_FILTERED.contentEquals(facetName))
+            return UInfoResultType.salix_mw_mnw;
+        if (FACET_SALIX_MNWMW_RAW.contentEquals(facetName))
+            return UInfoResultType.salix_mw_mnw;
+
+        final String error = String.format("Unknown facet name: %s", facetName);
+        throw new UnsupportedOperationException(error);
     }
 }
\ No newline at end of file

http://dive4elements.wald.intevation.org