diff artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java @ 7705:f1257717fa4b

(issue1594) Move Bed differences absolute height into the correct processor This also fixes that the filtered data of Height2 was never shown because of a to wide else clause.
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 17 Dec 2013 18:27:13 +0100
parents fab06617afb2
children 272cbcd94688
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java	Tue Dec 17 17:59:37 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/process/BedHeightProcessor.java	Tue Dec 17 18:27:13 2013 +0100
@@ -17,9 +17,11 @@
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.D4EArtifact;
 import org.dive4elements.river.artifacts.model.minfo.BedHeightSingleData;
+import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult;
 import org.dive4elements.river.artifacts.model.FacetTypes;
 import org.dive4elements.river.exports.XYChartGenerator;
 import org.dive4elements.river.exports.DiagramGenerator;
+import org.dive4elements.river.exports.StyledSeriesBuilder;
 import org.dive4elements.river.jfree.StyledXYSeries;
 import org.dive4elements.river.model.BedHeightSingleValue;
 import org.dive4elements.river.themes.ThemeDocument;
@@ -35,6 +37,8 @@
     public static final String I18N_AXIS_LABEL =
         "chart.bedheight.height.yaxis.label";
 
+    protected static double GAP_TOLERANCE = 0.101d;
+
     @Override
     public void doOut(
             DiagramGenerator generator,
@@ -63,7 +67,24 @@
         Object data = bundle.getData(context);
         XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
                 theme);
-        if (data instanceof BedHeightSingleData) {
+        if (data instanceof BedDiffYearResult) {
+            BedDiffYearResult bData = (BedDiffYearResult) data;
+
+            double[][] points;
+            String facetType = bundle.getFacetName();
+
+            if (FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType) ||
+                FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType)) {
+                points = bData.getHeights1Data();
+            } else {
+                points = bData.getHeights2Data();
+            }
+            StyledSeriesBuilder.addPointsFactorY(series,
+                    points,
+                    false,
+                    GAP_TOLERANCE,
+                    1d);
+        } else if (data instanceof BedHeightSingleData) {
             BedHeightSingleData bData = (BedHeightSingleData)data;
             double[] heights  = bData.getHeights();
             double[] stations = bData.getStations().toNativeArray();
@@ -73,7 +94,8 @@
             for (int i = 0; i < heights.length; i++) {
                 series.add(stations[i], heights[i], false);
             }
-        } else if (data instanceof List<?>) {
+        }
+        else if (data instanceof List<?>) {
             List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data;
 
             logger.debug("doBedheightSingleValueOut");
@@ -90,8 +112,12 @@
 
 
     @Override
-    public boolean canHandle(String facettype) {
-        return FacetTypes.BEDHEIGHT.equals(facettype);
+    public boolean canHandle(String facetType) {
+        return FacetTypes.BEDHEIGHT.equals(facetType)
+            || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType)
+            || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2.equals(facetType)
+            || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType)
+            || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED.equals(facetType);
     }
 
     @Override

http://dive4elements.wald.intevation.org