Mercurial > dive4elements > gnv-client
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 : |