Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/process/WOutProcessor.java @ 7075:253d80af5b7f generator-refactoring
More Processor refactoring
- Unify aandf aaf and bundle variable names to bundle
- Factor out diagram inversion code
- Add function with new signature to BedDiffYear and QOut processors
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 20 Sep 2013 16:25:43 +0200 |
parents | eb24d5203d17 |
children | 3c4efd4b2c19 |
comparison
equal
deleted
inserted
replaced
7074:a2abd87c0d3b | 7075:253d80af5b7f |
---|---|
35 Logger.getLogger(WOutProcessor.class); | 35 Logger.getLogger(WOutProcessor.class); |
36 | 36 |
37 @Override | 37 @Override |
38 public void doOut( | 38 public void doOut( |
39 DiagramGenerator generator, | 39 DiagramGenerator generator, |
40 ArtifactAndFacet aaf, | 40 ArtifactAndFacet bundle, |
41 ThemeDocument theme, | 41 ThemeDocument theme, |
42 boolean visible) { | 42 boolean visible) { |
43 CallContext context = generator.getCallContext(); | 43 CallContext context = generator.getCallContext(); |
44 WKms wkms = (WKms) aaf.getData(context); | 44 WKms wkms = (WKms) bundle.getData(context); |
45 | 45 |
46 logger.debug("doOut"); | 46 logger.debug("doOut"); |
47 | 47 |
48 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); | 48 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
49 | 49 |
50 StyledSeriesBuilder.addPoints(series, wkms); | 50 StyledSeriesBuilder.addPoints(series, wkms); |
51 generator.addAxisSeries(series, axisName, visible); | 51 generator.addAxisSeries(series, axisName, visible); |
52 | 52 |
53 // If a "band around the curve shall be drawn, add according area. | 53 // If a "band around the curve shall be drawn, add according area. |
54 double bandWidth = theme.parseBandWidth(); | 54 double bandWidth = theme.parseBandWidth(); |
55 if (bandWidth > 0 ) { | 55 if (bandWidth > 0 ) { |
56 XYSeries seriesDown = new StyledXYSeries( | 56 XYSeries seriesDown = new StyledXYSeries( |
57 "band " + aaf.getFacetDescription(), false, theme); | 57 "band " + bundle.getFacetDescription(), false, theme); |
58 XYSeries seriesUp = new StyledXYSeries( | 58 XYSeries seriesUp = new StyledXYSeries( |
59 aaf.getFacetDescription()+"+/-"+bandWidth, false, theme); | 59 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme); |
60 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth); | 60 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth); |
61 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth); | 61 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth); |
62 | 62 |
63 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); | 63 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); |
64 area.addSeries(seriesUp); | 64 area.addSeries(seriesUp); |
65 area.addSeries(seriesDown); | 65 area.addSeries(seriesDown); |
66 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); | 66 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); |
67 generator.addAreaSeries(area, axisName, visible); | 67 generator.addAreaSeries(area, axisName, visible); |
68 } | 68 } |
69 | 69 |
70 if (aaf.getFacetName().equals(FacetTypes.LONGITUDINAL_W) || | 70 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W) || |
71 aaf.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) || | 71 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) || |
72 aaf.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) { | 72 bundle.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) { |
73 /* Only use W values to check if the diagram should be inverted | 73 /* Only use W values to check if the diagram should be inverted |
74 * see flys/issue1290 for details */ | 74 * see flys/issue1290 for details */ |
75 invertAxis(generator, wkms); | 75 generator.handleLTRWaterFlowInversion(wkms); |
76 } | 76 } |
77 } | 77 } |
78 | 78 |
79 @Override | 79 @Override |
80 public void doOut( | 80 public void doOut( |
81 XYChartGenerator generator, | 81 XYChartGenerator generator, |
82 ArtifactAndFacet aaf, | 82 ArtifactAndFacet bundle, |
83 ThemeDocument theme, | 83 ThemeDocument theme, |
84 boolean visible, | 84 boolean visible, |
85 int index) | 85 int index) |
86 { | 86 { |
87 CallContext context = generator.getCallContext(); | 87 CallContext context = generator.getCallContext(); |
88 WKms wkms = (WKms) aaf.getData(context); | 88 WKms wkms = (WKms) bundle.getData(context); |
89 | 89 |
90 logger.debug("doOut"); | 90 logger.debug("doOut"); |
91 | 91 |
92 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); | 92 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); |
93 | 93 |
94 StyledSeriesBuilder.addPoints(series, wkms); | 94 StyledSeriesBuilder.addPoints(series, wkms); |
95 generator.addAxisSeries(series, index, visible); | 95 generator.addAxisSeries(series, index, visible); |
96 | 96 |
97 // If a "band around the curve shall be drawn, add according area. | 97 // If a "band around the curve shall be drawn, add according area. |
98 double bandWidth = theme.parseBandWidth(); | 98 double bandWidth = theme.parseBandWidth(); |
99 if (bandWidth > 0 ) { | 99 if (bandWidth > 0 ) { |
100 XYSeries seriesDown = new StyledXYSeries( | 100 XYSeries seriesDown = new StyledXYSeries( |
101 "band " + aaf.getFacetDescription(), false, theme); | 101 "band " + bundle.getFacetDescription(), false, theme); |
102 XYSeries seriesUp = new StyledXYSeries( | 102 XYSeries seriesUp = new StyledXYSeries( |
103 aaf.getFacetDescription()+"+/-"+bandWidth, false, theme); | 103 bundle.getFacetDescription()+"+/-"+bandWidth, false, theme); |
104 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth); | 104 StyledSeriesBuilder.addUpperBand(seriesUp, wkms, bandWidth); |
105 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth); | 105 StyledSeriesBuilder.addLowerBand(seriesDown, wkms, bandWidth); |
106 | 106 |
107 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); | 107 StyledAreaSeriesCollection area = new StyledAreaSeriesCollection(theme); |
108 area.addSeries(seriesUp); | 108 area.addSeries(seriesUp); |
109 area.addSeries(seriesDown); | 109 area.addSeries(seriesDown); |
110 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); | 110 area.setMode(StyledAreaSeriesCollection.FILL_MODE.BETWEEN); |
111 generator.addAreaSeries(area, index, visible); | 111 generator.addAreaSeries(area, index, visible); |
112 } | 112 } |
113 | 113 |
114 if (aaf.getFacetName().equals(FacetTypes.LONGITUDINAL_W) || | 114 if (bundle.getFacetName().equals(FacetTypes.LONGITUDINAL_W) || |
115 aaf.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) || | 115 bundle.getFacetName().equals(FacetTypes.DISCHARGE_LONGITUDINAL_W) || |
116 aaf.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) { | 116 bundle.getFacetName().equals(FacetTypes.STATIC_WQKMS_W)) { |
117 /* Only use W values to check if the diagram should be inverted | 117 /* Only use W values to check if the diagram should be inverted |
118 * see flys/issue1290 for details */ | 118 * see flys/issue1290 for details */ |
119 invertAxis(generator, wkms); | 119 invertAxis(generator, wkms); |
120 } | 120 } |
121 } | 121 } |
169 } | 169 } |
170 logger.debug("inv: " + inv); | 170 logger.debug("inv: " + inv); |
171 } | 171 } |
172 generator.setInverted(inv); | 172 generator.setInverted(inv); |
173 } | 173 } |
174 public void invertAxis(DiagramGenerator generator, WKms wkms) { | |
175 boolean wsUp = wkms.guessWaterIncreasing(); | |
176 boolean kmUp = DataUtil.guessWaterIncreasing(wkms.allKms()); | |
177 int size = wkms.size(); | |
178 boolean inv = ((wsUp && kmUp) || (!wsUp && !kmUp)) && size > 1; | |
179 | |
180 if (logger.isDebugEnabled()) { | |
181 logger.debug("(Wkms)Values : " + size); | |
182 if (size > 0) { | |
183 logger.debug("Start km: " + wkms.getKm(0)); | |
184 logger.debug("End km: " + wkms.getKm(size-1)); | |
185 } | |
186 logger.debug("wsUp: " + wsUp); | |
187 logger.debug("kmUp: " + kmUp); | |
188 if (size == 1) { | |
189 logger.debug("InvertAxis not inverting because we have just one km"); | |
190 } | |
191 logger.debug("inv: " + inv); | |
192 } | |
193 generator.setInverted(inv); | |
194 } | |
195 } | 174 } |
196 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 175 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |