Mercurial > dive4elements > river
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(); |