Example usage for org.jfree.data.xy DefaultXYDataset removeSeries

List of usage examples for org.jfree.data.xy DefaultXYDataset removeSeries

Introduction

In this page you can find the example usage for org.jfree.data.xy DefaultXYDataset removeSeries.

Prototype

public void removeSeries(Comparable seriesKey) 

Source Link

Document

Removes a series from the dataset, then sends a DatasetChangeEvent to all registered listeners.

Usage

From source file:net.bioclipse.chart.ChartUtils.java

public static void handleCellChangeEvent(CellChangedEvent e) {
    //      Iterator<CellChangeListener> iterator = listeners.iterator();
    //      while( iterator.hasNext() )
    //      {/*from w w w  . java2s .c o  m*/
    //         CellChangeListener listener = iterator.next();
    //         listener.handleCellChangeEvent(e);
    //      }
    Set<JFreeChart> keySet = chartManager.keySet();
    Iterator<JFreeChart> iterator = keySet.iterator();
    while (iterator.hasNext()) {
        JFreeChart chart = iterator.next();

        ChartDescriptor desc = chartManager.get(chart);

        String domainLabel = desc.getXLabel();
        String rangeLabel = desc.getYLabel();
        CellData data = e.getCellData();

        if (domainLabel.equals(data.getColName()) || rangeLabel.equals(data.getColName())) {
            DefaultXYDataset dataset = (DefaultXYDataset) chart.getXYPlot().getDataset();
            int itemCount = dataset.getItemCount(0);
            double[] yValues = new double[itemCount];
            double[] xValues = new double[itemCount];
            for (int i = 0; i < itemCount; i++) {
                double x = dataset.getXValue(0, i);
                double y = dataset.getYValue(0, i);
                xValues[i] = x;
                yValues[i] = y;
            }
            int indices[] = desc.getSourceIndices();
            if (domainLabel.equals(e.getCellData().getColName())) {
                int rowIndex = data.getRowIndex();
                for (int i = 0; i < indices.length; i++) {
                    if (indices[i] == rowIndex) {
                        xValues[i] = data.getValue();
                    }
                }
            } else if (rangeLabel.equals(e.getCellData().getColName())) {
                int rowIndex = data.getRowIndex();
                for (int i = 0; i < indices.length; i++) {
                    if (indices[i] == rowIndex) {
                        yValues[i] = data.getValue();
                    }
                }
            }
            double[][] chartData = new double[2][];
            chartData[0] = xValues;
            chartData[1] = yValues;

            dataset.getSeriesKey(0);
            Comparable seriesKey = dataset.getSeriesKey(0);

            dataset.removeSeries(seriesKey);
            dataset.addSeries(seriesKey, chartData);
        }
    }
}