Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/process/QOutProcessor.java @ 7081:3c4efd4b2c19 generator-refactoring
Simplyfy / unify "invert axis" logic
- DataUtil now can check if two datasets are in the same direction
- In the case of WKM data a no means that the Water flows Right to Left
- If the water flows from right to left do inversion of diagrams
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 20 Sep 2013 17:36:11 +0200 |
parents | 253d80af5b7f |
children | f0731aa7b735 |
comparison
equal
deleted
inserted
replaced
7080:02a704a37323 | 7081:3c4efd4b2c19 |
---|---|
48 | 48 |
49 StyledSeriesBuilder.addStepPointsKmQ(series, wqkms); | 49 StyledSeriesBuilder.addStepPointsKmQ(series, wqkms); |
50 | 50 |
51 generator.addAxisSeries(series, axisName, visible); | 51 generator.addAxisSeries(series, axisName, visible); |
52 | 52 |
53 generator.handleLTRWaterFlowInversion(wqkms); | 53 /* Check if the diagram should be inverted*/ |
54 generator.setInverted(wqkms.guessRTLData()); | |
54 } | 55 } |
55 | 56 |
56 @Override | 57 @Override |
57 public void doOut( | 58 public void doOut( |
58 XYChartGenerator generator, | 59 XYChartGenerator generator, |
68 | 69 |
69 StyledSeriesBuilder.addStepPointsKmQ(series, wqkms); | 70 StyledSeriesBuilder.addStepPointsKmQ(series, wqkms); |
70 | 71 |
71 generator.addAxisSeries(series, index, visible); | 72 generator.addAxisSeries(series, index, visible); |
72 | 73 |
73 invertAxis(generator, wqkms); | 74 /* Check if the diagram should be inverted*/ |
75 generator.setInverted(wqkms.guessRTLData()); | |
74 } | 76 } |
75 | 77 |
76 /** | 78 /** |
77 * Returns true if facettype is q-type. | 79 * Returns true if facettype is q-type. |
78 */ | 80 */ |
87 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_Q)) { | 89 || facetType.equals(FacetTypes.DISCHARGE_LONGITUDINAL_Q)) { |
88 return true; | 90 return true; |
89 } | 91 } |
90 return false; | 92 return false; |
91 } | 93 } |
92 | |
93 /** | |
94 * This method determines - taking JFreeCharts auto x value ordering into | |
95 * account - if the x axis need to be inverted. Waterlines in these charts | |
96 * should decrease. | |
97 * | |
98 * @param generator the generator to invert the axis or not. | |
99 * @param wkms The data object that stores the x and y values used for this | |
100 * chart. | |
101 */ | |
102 public void invertAxis(XYChartGenerator generator, WKms wkms) { | |
103 boolean wsUp = wkms.guessWaterIncreasing(); | |
104 boolean kmUp = DataUtil.guessWaterIncreasing(wkms.allKms()); | |
105 int size = wkms.size(); | |
106 boolean inv = ((wsUp && kmUp) || (!wsUp && !kmUp)) && size > 1; | |
107 | |
108 if (logger.isDebugEnabled()) { | |
109 logger.debug("(Wkms)Values : " + size); | |
110 if (size > 0) { | |
111 logger.debug("Start km: " + wkms.getKm(0)); | |
112 logger.debug("End km: " + wkms.getKm(size-1)); | |
113 } | |
114 logger.debug("wsUp: " + wsUp); | |
115 logger.debug("kmUp: " + kmUp); | |
116 if (size == 1) { | |
117 logger.debug("InvertAxis not inverting because we have just one km"); | |
118 } | |
119 logger.debug("inv: " + inv); | |
120 } | |
121 generator.setInverted(inv); | |
122 } | |
123 } | 94 } |
124 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 95 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |