83 lines
2.7 KiB
Java
83 lines
2.7 KiB
Java
package net.sf.jasperreports.charts.base;
|
|
|
|
import net.sf.jasperreports.charts.JRTimeSeries;
|
|
import net.sf.jasperreports.charts.JRTimeSeriesDataset;
|
|
import net.sf.jasperreports.engine.JRChartDataset;
|
|
import net.sf.jasperreports.engine.JRExpressionCollector;
|
|
import net.sf.jasperreports.engine.base.JRBaseChartDataset;
|
|
import net.sf.jasperreports.engine.base.JRBaseObjectFactory;
|
|
import net.sf.jasperreports.engine.design.JRVerifier;
|
|
import net.sf.jasperreports.engine.design.events.JRChangeEventsSupport;
|
|
import net.sf.jasperreports.engine.design.events.JRPropertyChangeSupport;
|
|
|
|
public class JRBaseTimeSeriesDataset extends JRBaseChartDataset implements JRTimeSeriesDataset, JRChangeEventsSupport {
|
|
private static final long serialVersionUID = 10200L;
|
|
|
|
public static final String PROPERTY_TIME_PERIOD = "timePeriod";
|
|
|
|
private JRTimeSeries[] timeSeries = null;
|
|
|
|
private Class timePeriod;
|
|
|
|
private transient JRPropertyChangeSupport eventSupport;
|
|
|
|
protected JRBaseTimeSeriesDataset(JRTimeSeriesDataset dataset) {
|
|
super((JRChartDataset)dataset);
|
|
}
|
|
|
|
public JRBaseTimeSeriesDataset(JRTimeSeriesDataset dataset, JRBaseObjectFactory factory) {
|
|
super((JRChartDataset)dataset, factory);
|
|
this.timePeriod = dataset.getTimePeriod();
|
|
JRTimeSeries[] srcTimeSeries = dataset.getSeries();
|
|
if (srcTimeSeries != null && srcTimeSeries.length > 0) {
|
|
this.timeSeries = new JRTimeSeries[srcTimeSeries.length];
|
|
for (int i = 0; i < this.timeSeries.length; i++)
|
|
this.timeSeries[i] = factory.getTimeSeries(srcTimeSeries[i]);
|
|
}
|
|
}
|
|
|
|
public JRTimeSeries[] getSeries() {
|
|
return this.timeSeries;
|
|
}
|
|
|
|
public Class getTimePeriod() {
|
|
return this.timePeriod;
|
|
}
|
|
|
|
public void setTimePeriod(Class timePeriod) {
|
|
Object old = this.timePeriod;
|
|
this.timePeriod = timePeriod;
|
|
getEventSupport().firePropertyChange("timePeriod", old, this.timePeriod);
|
|
}
|
|
|
|
public byte getDatasetType() {
|
|
return 6;
|
|
}
|
|
|
|
public void collectExpressions(JRExpressionCollector collector) {
|
|
collector.collect(this);
|
|
}
|
|
|
|
public void validate(JRVerifier verifier) {
|
|
verifier.verify(this);
|
|
}
|
|
|
|
public Object clone() {
|
|
JRBaseTimeSeriesDataset clone = (JRBaseTimeSeriesDataset)super.clone();
|
|
if (this.timeSeries != null) {
|
|
clone.timeSeries = new JRTimeSeries[this.timeSeries.length];
|
|
for (int i = 0; i < this.timeSeries.length; i++)
|
|
this.timeSeries[i] = (JRTimeSeries)this.timeSeries[i].clone();
|
|
}
|
|
return clone;
|
|
}
|
|
|
|
public JRPropertyChangeSupport getEventSupport() {
|
|
synchronized (this) {
|
|
if (this.eventSupport == null)
|
|
this.eventSupport = new JRPropertyChangeSupport(this);
|
|
}
|
|
return this.eventSupport;
|
|
}
|
|
}
|