1
2
3
4
5
6
7
8
9
10
11 package nl.tudelft.simulation.jstats.charts.xy;
12
13 import java.util.ArrayList;
14 import java.util.Arrays;
15 import java.util.List;
16
17 import org.jfree.data.AbstractDataset;
18 import org.jfree.data.DatasetChangeEvent;
19 import org.jfree.data.DatasetChangeListener;
20
21 /***
22 * The xyDataset specifies the xyDataset in DSOL
23 * <p>
24 * (c) copyright 2003 <a href="http://www.simulation.tudelft.nl">Delft
25 * University of Technology </a>, the Netherlands. <br>
26 * See for project information <a href="http://www.simulation.tudelft.nl">
27 * www.simulation.tudelft.nl </a> <br>
28 * License of use: <a href="http://www.gnu.org/copyleft/gpl.html">General Public
29 * License (GPL) </a>, no warranty <br>
30 *
31 * @author <a href="http://www.simulation.tudelft.nl/people/jacobs.html">Peter
32 * Jacobs </a>
33 * @version 1.7 2004-03-18
34 * @since 1.0
35 */
36 public class XYDataset extends AbstractDataset implements
37 org.jfree.data.XYDataset, DatasetChangeListener
38 {
39 /*** series contains the series of the set */
40 private XYSeries[] series = new XYSeries[0];
41
42 /***
43 * constructs a new XYDataset
44 */
45 public XYDataset()
46 {
47 super();
48 this.fireDatasetChanged();
49 }
50
51 /***
52 * @see org.jfree.data.DatasetChangeListener
53 * #datasetChanged(org.jfree.data.DatasetChangeEvent)
54 */
55 public void datasetChanged(final DatasetChangeEvent arg0)
56 {
57 if (arg0 != null)
58 {
59 this.fireDatasetChanged();
60 }
61 }
62
63 /***
64 * adds a dataset to the series
65 *
66 * @param dataset the set
67 */
68 public synchronized void addSeries(final XYSeries dataset)
69 {
70 dataset.addChangeListener(this);
71 List list = new ArrayList(Arrays.asList(this.series));
72 list.add(dataset);
73 this.series = (XYSeries[]) list.toArray(new XYSeries[list.size()]);
74 this.fireDatasetChanged();
75 }
76
77 /***
78 * @see org.jfree.data.XYDataset#getItemCount(int)
79 */
80 public int getItemCount(final int serie)
81 {
82 return this.series[serie].getItemCount();
83 }
84
85 /***
86 * @see org.jfree.data.XYDataset#getXValue(int, int)
87 */
88 public Number getXValue(final int serie, final int item)
89 {
90 return this.series[serie].getXValue(item);
91 }
92
93 /***
94 * @see org.jfree.data.XYDataset#getYValue(int, int)
95 */
96 public Number getYValue(final int serie, final int item)
97 {
98 return this.series[serie].getYValue(item);
99 }
100
101 /***
102 * @see org.jfree.data.SeriesDataset#getSeriesCount()
103 */
104 public int getSeriesCount()
105 {
106 return this.series.length;
107 }
108
109 /***
110 * @see org.jfree.data.SeriesDataset#getSeriesName(int)
111 */
112 public String getSeriesName(final int serie)
113 {
114 return this.series[serie].getSeriesName();
115 }
116
117 /***
118 * @see org.jfree.data.XYDataset#getX(int, int)
119 */
120 public double getX(final int serie, final int item)
121 {
122 return this.series[serie].getXValue(item).doubleValue();
123 }
124
125 /***
126 * @see org.jfree.data.XYDataset#getY(int, int)
127 */
128 public double getY(final int serie, final int item)
129 {
130 return this.series[serie].getYValue(item).doubleValue();
131 }
132 }