Mercurial > dive4elements > river
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