comparison gnv-artifacts/src/main/java/de/intevation/gnv/jfreechart/PolygonDataset.java @ 422:f426f55d4f7a

Added Ingo Weinzierl's special JFreeChart classes. gnv-artifacts/trunk@470 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 21 Dec 2009 16:47:45 +0000
parents
children 6642ab6c583c
comparison
equal deleted inserted replaced
421:fd71ee76fa58 422:f426f55d4f7a
1 package de.intevation.gnv.jfreechart;
2
3 import java.util.List;
4 import java.util.ArrayList;
5
6 import org.jfree.data.Range;
7 import org.jfree.data.general.AbstractSeriesDataset;
8
9 /**
10 * @author Ingo Weinzierl <ingo.weinzierl@intevation.de>
11 */
12 public class PolygonDataset
13 extends AbstractSeriesDataset
14 {
15 /** PolygonSeries included in this Dataset */
16 private List data;
17
18
19 public PolygonDataset() {
20 this(null);
21 }
22
23
24 public PolygonDataset(PolygonSeries series) {
25 data = new ArrayList();
26
27 if (series != null) {
28 data.add(series);
29 }
30 }
31
32
33 public void addSeries(PolygonSeries series) {
34 if (series == null)
35 throw new IllegalArgumentException("Null 'series' argument.");
36
37 data.add(series);
38 }
39
40
41 public Range getDomainBounds() {
42 double lower = Double.POSITIVE_INFINITY;
43 double upper = Double.NEGATIVE_INFINITY;
44 int seriesCount = getSeriesCount();
45
46 for (int s = 0; s < seriesCount; s++) {
47 PolygonSeries series = getSeries(s);
48
49 Range domainRange = series.getDomainBounds();
50 double minX = domainRange.getLowerBound();
51 if (!Double.isNaN(minX)) {
52 lower = Math.min(lower, minX);
53 }
54
55 double maxX = domainRange.getUpperBound();
56 if (!Double.isNaN(maxX)) {
57 upper = Math.max(upper, maxX);
58 }
59 }
60
61 return new Range(lower, upper);
62 }
63
64
65 public Range getRangeBounds() {
66 double lower = Double.POSITIVE_INFINITY;
67 double upper = Double.NEGATIVE_INFINITY;
68 int seriesCount = getSeriesCount();
69
70 for (int i = 0; i < seriesCount; i++) {
71 PolygonSeries series = getSeries(i);
72
73 Range range = series.getRangeBounds();
74 double minX = range.getLowerBound();
75 if (!Double.isNaN(minX)) {
76 lower = Math.min(lower, minX);
77 }
78
79 double maxX = range.getUpperBound();
80 if (!Double.isNaN(maxX)) {
81 upper = Math.max(upper, maxX);
82 }
83 }
84
85 return new Range(lower, upper);
86 }
87
88
89 public int getSeriesCount() {
90 return data.size();
91 }
92
93
94 public Comparable getSeriesKey(int series) {
95 return ((PolygonSeries)data.get(series)).getKey();
96 }
97
98
99 public PolygonSeries getSeries(int idx) {
100 return (PolygonSeries)data.get(idx);
101 }
102 }
103 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org