comparison 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
comparison
equal deleted inserted replaced
7704:a877d2680a4a 7705:f1257717fa4b
15 15
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; 16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet;
17 import org.dive4elements.artifacts.CallContext; 17 import org.dive4elements.artifacts.CallContext;
18 import org.dive4elements.river.artifacts.D4EArtifact; 18 import org.dive4elements.river.artifacts.D4EArtifact;
19 import org.dive4elements.river.artifacts.model.minfo.BedHeightSingleData; 19 import org.dive4elements.river.artifacts.model.minfo.BedHeightSingleData;
20 import org.dive4elements.river.artifacts.model.minfo.BedDiffYearResult;
20 import org.dive4elements.river.artifacts.model.FacetTypes; 21 import org.dive4elements.river.artifacts.model.FacetTypes;
21 import org.dive4elements.river.exports.XYChartGenerator; 22 import org.dive4elements.river.exports.XYChartGenerator;
22 import org.dive4elements.river.exports.DiagramGenerator; 23 import org.dive4elements.river.exports.DiagramGenerator;
24 import org.dive4elements.river.exports.StyledSeriesBuilder;
23 import org.dive4elements.river.jfree.StyledXYSeries; 25 import org.dive4elements.river.jfree.StyledXYSeries;
24 import org.dive4elements.river.model.BedHeightSingleValue; 26 import org.dive4elements.river.model.BedHeightSingleValue;
25 import org.dive4elements.river.themes.ThemeDocument; 27 import org.dive4elements.river.themes.ThemeDocument;
26 import org.dive4elements.river.utils.RiverUtils; 28 import org.dive4elements.river.utils.RiverUtils;
27 29
32 34
33 public static final String I18N_AXIS_LABEL_DEFAULT 35 public static final String I18N_AXIS_LABEL_DEFAULT
34 = "Sohlhoehe [m]"; 36 = "Sohlhoehe [m]";
35 public static final String I18N_AXIS_LABEL = 37 public static final String I18N_AXIS_LABEL =
36 "chart.bedheight.height.yaxis.label"; 38 "chart.bedheight.height.yaxis.label";
39
40 protected static double GAP_TOLERANCE = 0.101d;
37 41
38 @Override 42 @Override
39 public void doOut( 43 public void doOut(
40 DiagramGenerator generator, 44 DiagramGenerator generator,
41 ArtifactAndFacet bundle, 45 ArtifactAndFacet bundle,
61 private XYSeries prepareSeries(ArtifactAndFacet bundle, 65 private XYSeries prepareSeries(ArtifactAndFacet bundle,
62 ThemeDocument theme, CallContext context) { 66 ThemeDocument theme, CallContext context) {
63 Object data = bundle.getData(context); 67 Object data = bundle.getData(context);
64 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), 68 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(),
65 theme); 69 theme);
66 if (data instanceof BedHeightSingleData) { 70 if (data instanceof BedDiffYearResult) {
71 BedDiffYearResult bData = (BedDiffYearResult) data;
72
73 double[][] points;
74 String facetType = bundle.getFacetName();
75
76 if (FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType) ||
77 FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType)) {
78 points = bData.getHeights1Data();
79 } else {
80 points = bData.getHeights2Data();
81 }
82 StyledSeriesBuilder.addPointsFactorY(series,
83 points,
84 false,
85 GAP_TOLERANCE,
86 1d);
87 } else if (data instanceof BedHeightSingleData) {
67 BedHeightSingleData bData = (BedHeightSingleData)data; 88 BedHeightSingleData bData = (BedHeightSingleData)data;
68 double[] heights = bData.getHeights(); 89 double[] heights = bData.getHeights();
69 double[] stations = bData.getStations().toNativeArray(); 90 double[] stations = bData.getStations().toNativeArray();
70 91
71 logger.debug("doBedheightSingleOut"); 92 logger.debug("doBedheightSingleOut");
72 93
73 for (int i = 0; i < heights.length; i++) { 94 for (int i = 0; i < heights.length; i++) {
74 series.add(stations[i], heights[i], false); 95 series.add(stations[i], heights[i], false);
75 } 96 }
76 } else if (data instanceof List<?>) { 97 }
98 else if (data instanceof List<?>) {
77 List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data; 99 List<BedHeightSingleValue> bData = (List<BedHeightSingleValue>)data;
78 100
79 logger.debug("doBedheightSingleValueOut"); 101 logger.debug("doBedheightSingleValueOut");
80 102
81 for(BedHeightSingleValue bvalue: bData) { 103 for(BedHeightSingleValue bvalue: bData) {
88 return series; 110 return series;
89 } 111 }
90 112
91 113
92 @Override 114 @Override
93 public boolean canHandle(String facettype) { 115 public boolean canHandle(String facetType) {
94 return FacetTypes.BEDHEIGHT.equals(facettype); 116 return FacetTypes.BEDHEIGHT.equals(facetType)
117 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1.equals(facetType)
118 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2.equals(facetType)
119 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT1_FILTERED.equals(facetType)
120 || FacetTypes.BED_DIFFERENCE_YEAR_HEIGHT2_FILTERED.equals(facetType);
95 } 121 }
96 122
97 @Override 123 @Override
98 public String getAxisLabel(DiagramGenerator generator) { 124 public String getAxisLabel(DiagramGenerator generator) {
99 D4EArtifact flys = (D4EArtifact) generator.getMaster(); 125 D4EArtifact flys = (D4EArtifact) generator.getMaster();

http://dive4elements.wald.intevation.org