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 :

http://dive4elements.wald.intevation.org