comparison flys-artifacts/src/main/java/de/intevation/flys/exports/TimeseriesChartGenerator.java @ 3236:b0eee4c1eaa0

Implemented mergeRanges to combine y bounds in timeseries charts. flys-artifacts/trunk@4867 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 03 Jul 2012 15:27:07 +0000
parents ed07dd55f487
children 1dca41dba135
comparison
equal deleted inserted replaced
3235:07231dcd5755 3236:b0eee4c1eaa0
141 return false; 141 return false;
142 } 142 }
143 143
144 144
145 protected void mergeRanges(TimeSeriesCollection dataset) { 145 protected void mergeRanges(TimeSeriesCollection dataset) {
146 logger.debug("Range after merging: " + range); 146 logger.debug("Range before merging: " + range);
147 147 Range subRange = null;
148 Bounds[] xyRanges = ChartHelper.getBounds(dataset); 148
149 149 // Determine min/max of range axis.
150 // TODO COMBINE BOUNDS! 150 for (int i = 0; i < dataset.getSeriesCount(); i++) {
151 151 double min = 0;
152 logger.debug("Range after merging: " + range); 152 double max = 0;
153 TimeSeries series = dataset.getSeries(i);
154 for (int j = 0; j < series.getItemCount(); j++) {
155 double tmp = series.getValue(j).doubleValue();
156 min = tmp < min ? tmp : min;
157 max = tmp > max ? tmp : max;
158 }
159 if (subRange != null) {
160 subRange = new Range(
161 min < subRange.getLowerBound() ?
162 min : subRange.getLowerBound(),
163 max > subRange.getUpperBound() ?
164 max : subRange.getUpperBound());
165 }
166 else {
167 subRange = new Range(min, max);
168 }
169 }
170
171 // Avoid merging NaNs, as they take min/max place forever.
172 if (subRange == null ||
173 Double.isNaN(subRange.getLowerBound()) ||
174 Double.isNaN(subRange.getUpperBound())) {
175 return;
176 }
177 if (range == null) {
178 range = subRange;
179 return;
180 }
181 range = Range.combine(range, subRange);
153 } 182 }
154 183
155 } // end of TimeseriesAxisDataset class 184 } // end of TimeseriesAxisDataset class
156 185
157 186

http://dive4elements.wald.intevation.org