comparison flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java @ 1959:eace020067da

Further flys/issue420 fix, NaN-guard X axis extent. flys-artifacts/trunk@3360 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Tue, 06 Dec 2011 10:38:32 +0000
parents 82cefa3f954f
children ddb7b7da6199
comparison
equal deleted inserted replaced
1958:82cefa3f954f 1959:eace020067da
76 datasets = new ArrayList<XYDataset>(); 76 datasets = new ArrayList<XYDataset>();
77 } 77 }
78 78
79 /** Merge (or create given range with range so far (if any). */ 79 /** Merge (or create given range with range so far (if any). */
80 private void mergeRanges(Range subRange) { 80 private void mergeRanges(Range subRange) {
81 // Avoid merging NaNs, as they take min/max place forever.
82 if (subRange == null ||
83 Double.isNaN(subRange.getLowerBound()) ||
84 Double.isNaN(subRange.getUpperBound())) {
85 return;
86 }
81 if (range == null) { 87 if (range == null) {
82 range = subRange; 88 range = subRange;
83 return; 89 return;
84 } 90 }
85 range = Range.combine(range, subRange); 91 range = Range.combine(range, subRange);
91 includeYRange(dataset); 97 includeYRange(dataset);
92 } 98 }
93 99
94 /** Adjust range to include given dataset. */ 100 /** Adjust range to include given dataset. */
95 public void includeYRange(XYSeries dataset) { 101 public void includeYRange(XYSeries dataset) {
96 // Avoid merging NaNs, as they take min/max place forever.
97 if (Double.isNaN(dataset.getMinY()) ||
98 Double.isNaN(dataset.getMaxY())) {
99 return;
100 }
101 mergeRanges(new Range(dataset.getMinY(), dataset.getMaxY())); 102 mergeRanges(new Range(dataset.getMinY(), dataset.getMaxY()));
102 } 103 }
103 104
104 /** True if no datasets given. */ 105 /** True if no datasets given. */
105 public boolean isEmpty() { 106 public boolean isEmpty() {
365 * Effect: extend range of x axis to include given limits. 366 * Effect: extend range of x axis to include given limits.
366 * @param range the given ("minimal") range. 367 * @param range the given ("minimal") range.
367 * @param index index of axis to be merged. 368 * @param index index of axis to be merged.
368 */ 369 */
369 private void combineXRanges(Range range, int index) { 370 private void combineXRanges(Range range, int index) {
371
372 if (range == null
373 || Double.isNaN(range.getLowerBound())
374 || Double.isNaN(range.getUpperBound())) {
375 return;
376 }
370 377
371 Range old = xRanges.get(index); 378 Range old = xRanges.get(index);
372 379
373 if (old != null) { 380 if (old != null) {
374 range = Range.combine(old, range); 381 range = Range.combine(old, range);

http://dive4elements.wald.intevation.org