View Javadoc

1   /*
2    * @(#) XYDataset.java Sep 26, 2003
3    * 
4    * Copyright (c) 2003 Delft University of Technology Jaffalaan 5, 2628 BX Delft,
5    * the Netherlands All rights reserved.
6    * 
7    * This software is proprietary information of Delft University of Technology
8    * The code is published under the General Public License
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 }