Example usage for org.jfree.data.extension DatasetSelectionExtension addChangeListener

List of usage examples for org.jfree.data.extension DatasetSelectionExtension addChangeListener

Introduction

In this page you can find the example usage for org.jfree.data.extension DatasetSelectionExtension addChangeListener.

Prototype

public void addChangeListener(T listener);

Source Link

Document

adds a change listener to the dataset extension

The listener is triggered if if changes occur except the notify flag is set to false (@link #setNotify(boolean)).

Usage

From source file:org.jfree.chart.demo.selection.SelectionDemo7ScatterRenderer.java

/**
 * Creates a chart.// w  w w .  jav  a  2 s  . co m
 * 
 * @param dataset  the dataset.
 * 
 * @return A chart.
 */
private static JFreeChart createChart(final MultiValueCategoryDataset dataset,
        final DatasetSelectionExtension<CategoryCursor<String, String>> ext) {

    ScatterRenderer r = new ScatterRenderer();
    CategoryPlot plot = new CategoryPlot(dataset, new CategoryAxis("Category"), new NumberAxis("Value"), r);
    plot.setBackgroundColor(Color.LIGHT_GRAY);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    plot.setAxisOffset(new RectangleInsets(4, 4, 4, 4));
    JFreeChart chart = new JFreeChart("ScatterRendererDemo1", plot);
    ChartUtilities.applyCurrentTheme(chart);

    //register the plot
    ext.addChangeListener(plot);

    //illustrates the usage of a shape item rendering strategy
    final CategoryCursor<String, String> cursor = new CategoryCursor<String, String>();
    r.setShapeIRS(new DefaultShapeIRS(r) {
        private static final long serialVersionUID = 1L;

        @Override
        public Shape getItemShape(int row, int column) {
            cursor.setPosition((String) dataset.getRowKey(row), (String) dataset.getColumnKey(column));
            if (ext.isSelected(cursor)) {
                return new Rectangle2D.Double(-10.0, -10.0, 20.0, 20.0);
            } else {
                return super.getItemShape(row, column);
            }
        }
    });

    return chart;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo1.java

/**
 * Creates a chart./*from   w w  w . j  a v  a 2  s .  c o  m*/
 * 
 * @param dataset  a dataset.
 * 
 * @return A chart.
 */
private static JFreeChart createChart(XYDataset dataset, DatasetSelectionExtension<XYCursor> ext) {
    JFreeChart chart = ChartFactory.createTimeSeriesChart("Stock Prices", "Date", "Price Per Unit", dataset);

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setDomainPannable(true);
    plot.setRangePannable(true);
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    XYLineAndShapeRenderer r = (XYLineAndShapeRenderer) plot.getRenderer();
    r.setBaseShapesVisible(true);
    r.setBaseShapesFilled(true);
    r.setUseFillPaint(true);
    r.setSeriesFillPaint(0, r.lookupSeriesPaint(0));
    r.setSeriesFillPaint(1, r.lookupSeriesPaint(1));

    //add selection specific rendering
    IRSUtilities.setSelectedItemFillPaint(r, ext, Color.white);

    //register plot as selection change listener
    ext.addChangeListener(plot);

    return chart;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo4.java

/**
 * Creates a chart./* w  w w  .  ja  v  a 2s. c  om*/
 * 
 * @param dataset  a dataset.
 * 
 * @return The chart.
 */
private static JFreeChart createChart(IntervalXYDataset dataset, DatasetSelectionExtension<XYCursor> ext) {
    JFreeChart chart = ChartFactory.createHistogram("SelectionDemo4", null, null, dataset);
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setDomainPannable(true);
    plot.setRangePannable(true);
    plot.setForegroundAlpha(0.85f);
    NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
    yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();
    renderer.setDrawBarOutline(true);
    renderer.setDefaultOutlinePaint(Color.red);
    renderer.setBarPainter(new StandardXYBarPainter());
    renderer.setShadowVisible(false);

    //add selection specific rendering
    IRSUtilities.setSelectedItemPaint(renderer, ext, Color.white);

    //register plot as selection change listener
    ext.addChangeListener(plot);

    return chart;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo8.java

/**
 * Creates a chart.//w  ww .  j a va  2s .  co m
 * 
 * @param dataset  a dataset.
 * 
 * @return A chart.
 */
private static JFreeChart createChart(XYDataset dataset, DatasetSelectionExtension<XYCursor> ext) {

    JFreeChart chart = ChartFactory.createTimeSeriesChart("Stock Prices", "Date", "Price Per Unit", dataset);

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setDomainPannable(true);
    plot.setRangePannable(true);
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);

    XYLineAndShapeRenderer r = (XYLineAndShapeRenderer) plot.getRenderer();
    r.setBaseShapesVisible(true);
    r.setBaseShapesFilled(true);
    r.setUseFillPaint(true);
    r.setSeriesFillPaint(0, r.lookupSeriesPaint(0));
    r.setSeriesFillPaint(1, r.lookupSeriesPaint(1));

    r.setDrawOutlines(true);

    //add selection specific rendering
    IRSUtilities.setSelectedItemFillPaint(r, ext, Color.white);

    //register plot as selection change listener
    ext.addChangeListener(plot);

    return chart;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo4.java

/**
 * Creates a panel for the demo (used by SuperDemo.java).
 * //from www  .  j  av  a  2  s . c  o m
 * @return A panel.
 */
public final JPanel createDemoPanel() {
    IntervalXYDataset xydataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension<XYCursor> datasetExtension = new XYDatasetSelectionExtension(xydataset);
    datasetExtension.addChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(xydataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);

    // add a selection handler
    RegionSelectionHandler selectionHandler = new FreePathSelectionHandler();
    panel.addMouseHandler(selectionHandler);
    panel.addMouseHandler(new MouseClickSelectionHandler());
    panel.removeMouseHandler(panel.getZoomHandler());

    // add a selection manager with intersection selection
    DatasetExtensionManager dExManager = new DatasetExtensionManager();
    dExManager.registerDatasetExtension(datasetExtension);

    EntitySelectionManager selectionManager = new EntitySelectionManager(panel, new Dataset[] { xydataset },
            dExManager);
    selectionManager.setIntersectionSelection(true);
    panel.setSelectionManager(selectionManager);

    return panel;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo2.java

/**
 * Creates a panel for the demo (used by SuperDemo.java).
 *
 * @return A panel./*www. jav a 2 s  . c o  m*/
 */
public JPanel createDemoPanel() {
    XYDataset dataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension<XYCursor> datasetExtension = new XYDatasetSelectionExtension(dataset);
    datasetExtension.addChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(dataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);

    // add a selection handler
    RegionSelectionHandler selectionHandler = new CircularRegionSelectionHandler();
    panel.addMouseHandler(selectionHandler);
    panel.addMouseHandler(new MouseClickSelectionHandler());
    panel.removeMouseHandler(panel.getZoomHandler());

    // add a selection manager
    DatasetExtensionManager dExManager = new DatasetExtensionManager();
    dExManager.registerDatasetExtension(datasetExtension);
    panel.setSelectionManager(new EntitySelectionManager(panel, new Dataset[] { dataset }, dExManager));

    return panel;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo6Pie.java

public final JPanel createDemoPanel() {
    this.dataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension<PieCursor<String>> datasetExtension = new PieDatasetSelectionExtension<String>(
            this.dataset);
    datasetExtension.addChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(this.dataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);//  w  w w .  j  a  v  a 2s . co  m

    //add a selection handler with shift modifier for clicking
    RegionSelectionHandler selectionHandler = new FreeRegionSelectionHandler();
    AbstractMouseHandler clickHandler = new MouseClickSelectionHandler(InputEvent.SHIFT_MASK);
    panel.addMouseHandler(selectionHandler);
    panel.addMouseHandler(clickHandler);
    panel.removeMouseHandler(panel.getZoomHandler());

    // add a selection manager
    DatasetExtensionManager dExManager = new DatasetExtensionManager();
    dExManager.registerDatasetExtension(datasetExtension);
    panel.setSelectionManager(new EntitySelectionManager(panel, new Dataset[] { dataset }, dExManager));

    return panel;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo3.java

/**
 * Creates a panel for the demo (used by SuperDemo.java).
 *
 * @return A panel./*from   ww w  . ja v a2s. c o  m*/
 */
public final JPanel createDemoPanel() {
    XYDataset xydataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension<XYCursor> datasetExtension = new XYDatasetSelectionExtension(xydataset);
    datasetExtension.addChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(xydataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);

    // add a selection handler
    RegionSelectionHandler selectionHandler = new RectangularRegionSelectionHandler();
    panel.addMouseHandler(selectionHandler);
    panel.addMouseHandler(new MouseClickSelectionHandler());
    panel.removeMouseHandler(panel.getZoomHandler());

    // add a selection manager
    DatasetExtensionManager dExManager = new DatasetExtensionManager();
    dExManager.registerDatasetExtension(datasetExtension);
    panel.setSelectionManager(new EntitySelectionManager(panel, new Dataset[] { xydataset }, dExManager));
    return panel;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo8.java

public final JPanel createDemoPanel() {
    XYDataset xydataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension<XYCursor> datasetExtension = new XYDatasetSelectionExtension(xydataset);
    datasetExtension.addChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(xydataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);// w  w w. j a  v a  2  s .c o  m

    // add a selection handler
    RegionSelectionHandler selectionHandler = new RectangularHeightRegionSelectionHandler();
    panel.addMouseHandler(selectionHandler);
    panel.addMouseHandler(new MouseClickSelectionHandler());
    panel.removeMouseHandler(panel.getZoomHandler());

    // add a selection manager
    DatasetExtensionManager dExManager = new DatasetExtensionManager();
    dExManager.registerDatasetExtension(datasetExtension);
    panel.setSelectionManager(new EntitySelectionManager(panel, new Dataset[] { xydataset }, dExManager));

    return panel;
}

From source file:org.jfree.chart.demo.selection.SelectionDemo1.java

public final JPanel createDemoPanel() {
    XYDataset xydataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension<XYCursor> datasetExtension = new XYDatasetSelectionExtension(xydataset);
    datasetExtension.addChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(xydataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);//  ww  w .ja v  a  2s  . c  o  m

    // add a selection handler
    RegionSelectionHandler selectionHandler = new FreeRegionSelectionHandler();
    panel.addMouseHandler(selectionHandler);
    panel.addMouseHandler(new MouseClickSelectionHandler());
    panel.removeMouseHandler(panel.getZoomHandler());

    // add a selection manager
    DatasetExtensionManager dExManager = new DatasetExtensionManager();
    dExManager.registerDatasetExtension(datasetExtension);
    panel.setSelectionManager(new EntitySelectionManager(panel, new Dataset[] { xydataset }, dExManager));

    return panel;
}