diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java @ 9429:bd5f5d2220fa

Work on salix cross sections; waterlevels work now with different colors Colors and i10n for all themes.
author gernotbelger
date Fri, 17 Aug 2018 17:48:01 +0200
parents 6e7094368e97
children d8e753d0fdb9
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Fri Aug 17 17:40:59 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Fri Aug 17 17:48:01 2018 +0200
@@ -19,8 +19,12 @@
 import org.dive4elements.river.artifacts.D4EArtifact;
 import org.dive4elements.river.artifacts.access.RangeAccess;
 import org.dive4elements.river.artifacts.common.AbstractProcessor;
+import org.dive4elements.river.artifacts.model.CrossSectionWaterLineFacet;
+import org.dive4elements.river.artifacts.model.FacetTypes;
 import org.dive4elements.river.artifacts.resources.Resources;
+import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
 import org.dive4elements.river.artifacts.uinfo.common.UInfoResultType;
+import org.dive4elements.river.artifacts.uinfo.salix.SalixLineCrossSectionIndexData.SalixWaterlevel;
 import org.dive4elements.river.exports.DiagramGenerator;
 import org.dive4elements.river.themes.ThemeDocument;
 
@@ -60,6 +64,15 @@
 
     private static final String FACET_SALIX_RANK_DESCRIPTION = "uinfo_facet_salix_rank.description";
 
+    // REMARK: must end with FacetTypes.CROSS_SECTION_WATER_LINE so its correctly recognized as such a theme
+    private static final String FACET_SALIX_CROSS_SECTION_WATER_LINE = "uinfo_facet_salix_line_" + FacetTypes.CROSS_SECTION_WATER_LINE;
+
+    private static final String FACET_SALIX_CROSS_SECTION_WATER_LINE_DESCRIPTION = FACET_SALIX_CROSS_SECTION_WATER_LINE + "_description";
+
+    private static final String FACET_SALIX_SCENARIO_CROSS_SECTION_WATER_LINE = "uinfo_facet_salix_scenario_" + FacetTypes.CROSS_SECTION_WATER_LINE;
+
+    private static final String FACET_SALIX_WATERLEVEL_CROSS_SECTION_WATER_LINE_PREFIX = "uinfo_facet_salix_waterlevel_";
+
     private static final String I18N_AXIS_LABEL = "uinfo.chart.salix_line.section.yaxis.label";
 
     private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
@@ -107,8 +120,8 @@
     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);
+        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);
     }
 
@@ -125,6 +138,33 @@
         return new SalixRankResultFacet(facetIndex, resultIndex, FACET_SALIX_RANK, description, I18N_AXIS_LABEL, id, hash);
     }
 
+    public static Facet createSalixCrossSectionFacet(final CallContext context, final ComputeType type, final String hash, final String stateId,
+            final int facetIndex) {
+        final String description = Resources.getMsg(context.getMeta(), FACET_SALIX_CROSS_SECTION_WATER_LINE_DESCRIPTION);
+        return new CrossSectionWaterLineFacet(facetIndex, FACET_SALIX_CROSS_SECTION_WATER_LINE, description, type, hash, stateId,
+                SalixLineCrossSectionIndexData.salixLine());
+    }
+
+    public static Facet createSalixScenarioCrossSectionFacet(final CallContext context, final ComputeType type, final String hash, final String stateId,
+            final int scenarioIndex, 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 CrossSectionWaterLineFacet(facetIndex, FACET_SALIX_SCENARIO_CROSS_SECTION_WATER_LINE, description, type, hash, stateId,
+                SalixLineCrossSectionIndexData.scenario(scenarioIndex));
+    }
+
+    public static Facet createSalixWaterlevelCrossSectionFacet(final CallContext context, final ComputeType type, final String hash, final String stateId,
+            final SalixWaterlevel knownWaterlevel, final int facetIndex) {
+        final String facetName = FACET_SALIX_WATERLEVEL_CROSS_SECTION_WATER_LINE_PREFIX + knownWaterlevel.name() + "_" + FacetTypes.CROSS_SECTION_WATER_LINE;
+        final String facetI10n = facetName + "_description";
+        final String facetDescirption = Resources.getMsg(context.getMeta(), facetI10n);
+
+        return new CrossSectionWaterLineFacet(facetIndex, facetName, facetDescirption, type, hash, stateId,
+                SalixLineCrossSectionIndexData.waterlevel(knownWaterlevel));
+    }
+
     @Override
     protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
 
@@ -139,7 +179,6 @@
         }
 
         if (bundle.getFacetName().equals(FACET_SALIX_RANK)) {
-            final CallContext context = generator.getContext();
             final RangeAccess kmRange = new RangeAccess((D4EArtifact) bundle.getArtifact());
             // TODO get all rank data (5 ranks) from database
             final double[][] points = new double[2][2];

http://dive4elements.wald.intevation.org