diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java @ 9496:d8e753d0fdb9

stripedArea introduced for Assessment Scheme/Bewertungsschema
author gernotbelger
date Wed, 26 Sep 2018 15:48:05 +0200
parents bd5f5d2220fa
children 853f2dafc16e
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Tue Sep 25 16:43:51 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineProcessor.java	Wed Sep 26 15:48:05 2018 +0200
@@ -10,14 +10,14 @@
 
 package org.dive4elements.river.artifacts.uinfo.salix;
 
+import java.awt.Color;
 import java.util.HashSet;
 import java.util.Set;
 
 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
 import org.dive4elements.artifactdatabase.state.Facet;
 import org.dive4elements.artifacts.CallContext;
-import org.dive4elements.river.artifacts.D4EArtifact;
-import org.dive4elements.river.artifacts.access.RangeAccess;
+import org.dive4elements.artifacts.CallMeta;
 import org.dive4elements.river.artifacts.common.AbstractProcessor;
 import org.dive4elements.river.artifacts.model.CrossSectionWaterLineFacet;
 import org.dive4elements.river.artifacts.model.FacetTypes;
@@ -26,6 +26,7 @@
 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.jfree.StripedAreaDataset.Stripe;
 import org.dive4elements.river.themes.ThemeDocument;
 
 /**
@@ -167,9 +168,6 @@
 
     @Override
     protected String generateSeries(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) {
-
-        // log.debug("Processing facet: " + bundle.getFacetName());
-
         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);
@@ -179,19 +177,24 @@
         }
 
         if (bundle.getFacetName().equals(FACET_SALIX_RANK)) {
-            final RangeAccess kmRange = new RangeAccess((D4EArtifact) bundle.getArtifact());
-            // TODO get all rank data (5 ranks) from database
-            final double[][] points = new double[2][2];
-            points[0][0] = kmRange.getLowerKm();
-            points[0][1] = kmRange.getUpperKm();
-            points[1][0] = 1.5;
-            points[1][1] = 1.5;
-            return buildSeriesForPoints(points, generator, bundle, theme, visible, null);
+            final CallMeta meta = generator.getContext().getMeta();
+            final Stripe[] stripes = new Stripe[] { //
+                    new Stripe(getSimpleMsg("uinfo_salix_rank.excellent", meta), Color.decode("#00B0F0"), -0.3, 0.3), //
+                    new Stripe(getSimpleMsg("uinfo_salix_rank.good", meta), Color.decode("#00B050"), 0.3, 0.5), //
+                    new Stripe(getSimpleMsg("uinfo_salix_rank.moderate", meta), Color.decode("#FFFF00"), 0.5, 1.0), //
+                    new Stripe(getSimpleMsg("uinfo_salix_rank.bad", meta), Color.decode("#FFC000"), 1.0, 1.5), //
+                    new Stripe(getSimpleMsg("uinfo_salix_rank.very_bad", meta), Color.decode("#FF0000"), 1.5, Double.NaN) };
+
+            return buildStripedAreaSeries(stripes, generator, bundle, theme, visible);
         }
 
         return buildSeriesForType(generator, bundle, theme, visible, doGetType(bundle.getFacetName()), GAP_DISTANCE);
     }
 
+    private String getSimpleMsg(final String code, final CallMeta meta) {
+        return Resources.getMsg(meta, code);
+    }
+
     protected UInfoResultType doGetType(final String facetName) {
 
         if (FACET_SALIX_LINE_FILTERED.contentEquals(facetName))

http://dive4elements.wald.intevation.org