package jas.hist; import jas.plot.DataArea; import jas.plot.DoubleAxis; import jas.plot.Legend; import java.io.IOException; import java.io.ObjectInputStream; class DoubleDataManager extends BinnedDataManager { DoubleDataManager(JASHist plot, DataArea da, Legend l, StatisticsBlock stats, int bins) { super(plot,da,l,stats,bins); // Configure the Axes xAxis = new DoubleAxis(); DoubleAxis yAxis = new DoubleAxis(); yAxis.setUseSuggestedRange(true); xm.setDataManager(this,true, xAxis); ym[0].setDataManager(this,false,yAxis); new DoubleAxisListener(xm); xm.setBins(bins); } private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); new DoubleAxisListener(xm); } final JASHistData add(DataSource data) { if (data instanceof Rebinnable1DHistogramData) { Rebinnable1DHistogramData d = (Rebinnable1DHistogramData) data; // We only support adding items with continuous axes if (d.getAxisType() != d.DOUBLE) throw new DataManagerException("Incompatible data type for axis"); } else { XYDataSource d = (XYDataSource) data; if (d.getAxisType() != d.DOUBLE) throw new DataManagerException("Incompatible data type for axis"); } return super.add(data); } final protected void calcMinMaxBins(double x1, double x2) { double oldXMin = xAxis.getPlotMin(); double oldXMax = xAxis.getPlotMax(); if (x1 != oldXMin || x2 != oldXMax) { xAxis.setMin(x1); xAxis.setMax(x2); xm.invalidate(); } } private DoubleAxis xAxis; }