Skip to content
Snippets Groups Projects
Commit 7f59cf2c authored by Tim Molter's avatar Tim Molter
Browse files

improved generics so you can pass series as list<Double> for example

parent 89e2fad0
No related branches found
No related tags found
No related merge requests found
......@@ -16,7 +16,7 @@
package com.xeiam.xchart.standalone;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
......@@ -77,7 +77,7 @@ public class RealtimeAttempt {
public void buildPanel() {
Collection<Number> yData = getRandomData(5);
List<Double> yData = getRandomData(5);
// Create Chart
chart = new Chart(500, 400);
......@@ -93,13 +93,13 @@ public class RealtimeAttempt {
public void updateData() {
// Get some new data
Collection<Number> newData = getRandomData(1);
List<Double> newData = getRandomData(1);
// Replace the existing
ArrayList<Number> replacementData = new ArrayList<Number>();
List<Double> replacementData = new ArrayList<Double>();
Series oldSeries = (Series) chart.getSeriesMap().values().toArray()[0];
Collection<Number> oldData = oldSeries.getYData();
List<Double> oldData = (List<Double>) oldSeries.getYData();
replacementData.addAll(oldData);
replacementData.addAll(newData);
......@@ -132,9 +132,9 @@ public class RealtimeAttempt {
return chartPanel;
}
private static Collection<Number> getRandomData(int numPoints) {
private static List<Double> getRandomData(int numPoints) {
ArrayList<Number> data = new ArrayList<Number>();
List<Double> data = new ArrayList<Double>();
for (int i = 0; i < numPoints; i++) {
data.add(Math.random() * 100);
}
......
......@@ -82,11 +82,11 @@ public class CSVExporter {
out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newFile), "UTF8"));
Collection<?> xData = series.getXData();
Collection<Number> yData = series.getYData();
Collection<Number> errorBarData = series.getErrorBars();
Collection<? extends Number> yData = series.getYData();
Collection<? extends Number> errorBarData = series.getErrorBars();
Iterator<?> itrx = xData.iterator();
Iterator<Number> itry = yData.iterator();
Iterator<Number> itrErrorBar = null;
Iterator<? extends Number> itry = yData.iterator();
Iterator<? extends Number> itrErrorBar = null;
if (errorBarData != null) {
itrErrorBar = errorBarData.iterator();
}
......
......@@ -151,7 +151,7 @@ public class Chart {
* @param yData the Y-Axis data
* @return A Series object that you can set properties on
*/
public Series addSeries(String seriesName, Collection<Number> xData, Collection<Number> yData) {
public Series addSeries(String seriesName, Collection<? extends Number> xData, Collection<? extends Number> yData) {
return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, null);
}
......@@ -165,7 +165,7 @@ public class Chart {
* @param errorBars the error bar data
* @return A Series object that you can set properties on
*/
public Series addSeries(String seriesName, Collection<Number> xData, Collection<Number> yData, Collection<Number> errorBars) {
public Series addSeries(String seriesName, Collection<? extends Number> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
return chartPainter.getAxisPair().addSeries(seriesName, xData, yData, errorBars);
}
......
......@@ -39,10 +39,10 @@ public class Series {
private Collection<?> xData;
private AxisType xAxisType;
private Collection<Number> yData;
private Collection<? extends Number> yData;
private AxisType yAxisType;
private Collection<Number> errorBars;
private Collection<? extends Number> errorBars;
/** the minimum value of axis range */
private BigDecimal xMin;
......@@ -79,7 +79,8 @@ public class Series {
* @param errorBars
* @param seriesColorMarkerLineStyle
*/
public Series(String name, Collection<?> xData, AxisType xAxisType, Collection<Number> yData, AxisType yAxisType, Collection<Number> errorBars, SeriesColorMarkerLineStyle seriesColorMarkerLineStyle) {
public Series(String name, Collection<?> xData, AxisType xAxisType, Collection<? extends Number> yData, AxisType yAxisType, Collection<? extends Number> errorBars,
SeriesColorMarkerLineStyle seriesColorMarkerLineStyle) {
if (name == null || name.length() < 1) {
throw new IllegalArgumentException("Series name cannot be null or zero-length!!!");
......@@ -147,13 +148,13 @@ public class Series {
* @param data
* @return
*/
private BigDecimal[] findMinMaxWithErrorBars(Collection<Number> data, Collection<Number> errorBars) {
private BigDecimal[] findMinMaxWithErrorBars(Collection<? extends Number> data, Collection<? extends Number> errorBars) {
BigDecimal min = null;
BigDecimal max = null;
Iterator<Number> itr = data.iterator();
Iterator<Number> ebItr = errorBars.iterator();
Iterator<? extends Number> itr = data.iterator();
Iterator<? extends Number> ebItr = errorBars.iterator();
while (itr.hasNext()) {
BigDecimal bigDecimal = new BigDecimal(itr.next().doubleValue());
BigDecimal eb = new BigDecimal(ebItr.next().doubleValue());
......@@ -249,12 +250,12 @@ public class Series {
return xData;
}
public Collection<Number> getYData() {
public Collection<? extends Number> getYData() {
return yData;
}
public Collection<Number> getErrorBars() {
public Collection<? extends Number> getErrorBars() {
return errorBars;
}
......
......@@ -62,7 +62,7 @@ public class AxisPair implements ChartPart {
* @param xData
* @param yData
*/
public <T> Series addSeries(String seriesName, Collection<T> xData, Collection<Number> yData, Collection<Number> errorBars) {
public <T> Series addSeries(String seriesName, Collection<T> xData, Collection<? extends Number> yData, Collection<? extends Number> errorBars) {
// Sanity checks
if (seriesName == null) {
......
......@@ -74,7 +74,7 @@ public class PlotContentBarChart extends PlotContent {
// data points
Collection<?> xData = series.getXData();
Collection<Number> yData = series.getYData();
Collection<? extends Number> yData = series.getYData();
BigDecimal yMin = getChartPainter().getAxisPair().getyAxis().getMin();
BigDecimal yMax = getChartPainter().getAxisPair().getyAxis().getMax();
......@@ -121,7 +121,7 @@ public class PlotContentBarChart extends PlotContent {
// System.out.println(yMax);
Iterator<?> categoryItr = categories.iterator();
Iterator<Number> yItr = yData.iterator();
Iterator<? extends Number> yItr = yData.iterator();
int barCounter = 0;
while (categoryItr.hasNext()) {
......
......@@ -65,7 +65,7 @@ public class PlotContentLineChart extends PlotContent {
BigDecimal xMin = getChartPainter().getAxisPair().getxAxis().getMin();
BigDecimal xMax = getChartPainter().getAxisPair().getxAxis().getMax();
Collection<Number> yData = series.getYData();
Collection<? extends Number> yData = series.getYData();
BigDecimal yMin = getChartPainter().getAxisPair().getyAxis().getMin();
BigDecimal yMax = getChartPainter().getAxisPair().getyAxis().getMax();
......@@ -92,14 +92,14 @@ public class PlotContentLineChart extends PlotContent {
yMin = new BigDecimal(Math.log10(yMin.doubleValue()));
yMax = new BigDecimal(Math.log10(yMax.doubleValue()));
}
Collection<Number> errorBars = series.getErrorBars();
Collection<? extends Number> errorBars = series.getErrorBars();
double previousX = Integer.MIN_VALUE;
double previousY = Integer.MIN_VALUE;
Iterator<?> xItr = xData.iterator();
Iterator<Number> yItr = yData.iterator();
Iterator<Number> ebItr = null;
Iterator<? extends Number> yItr = yData.iterator();
Iterator<? extends Number> ebItr = null;
if (errorBars != null) {
ebItr = errorBars.iterator();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment