Example usage for org.jfree.data.datasetextension DatasetSelectionExtension addSelectionChangeListener

List of usage examples for org.jfree.data.datasetextension DatasetSelectionExtension addSelectionChangeListener

Introduction

In this page you can find the example usage for org.jfree.data.datasetextension DatasetSelectionExtension addSelectionChangeListener.

Prototype

public void addSelectionChangeListener(SelectionChangeListener listener);

Source Link

Document

adds a label selection listener to the dataset extension

the listener is triggered if a data item changes its selection state except the notify flag is set to false (@link #setNotify(boolean)).

Usage

From source file:org.jfree.expdemo.SelectionDemo7ScatterRenderer.java

/**
 * Creates a chart./*from w  ww .  j  a  v  a  2s.c  o m*/
 * 
 * @param dataset
 *            the dataset.
 * 
 * @return A chart.
 */
private static JFreeChart createChart(final MultiValueCategoryDataset dataset,
        final DatasetSelectionExtension ext) {

    ScatterRenderer r = new ScatterRenderer();
    CategoryPlot plot = new CategoryPlot(dataset, new CategoryAxis("Category"), new NumberAxis("Value"), r);
    plot.setBackgroundPaint(Color.lightGray);
    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.addSelectionChangeListener(plot);

    //illustrates the usage of a shape item rendering strategy
    final CategoryCursor cursor = new CategoryCursor();
    r.setShapeIRS(new DefaultShapeIRS(r) {
        public Shape getItemShape(int row, int column) {
            cursor.setPosition(dataset.getRowKey(row), 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.expdemo.SelectionDemo4.java

/**
 * Creates a chart./*w  w w  .j a v  a2  s .  c  om*/
 * 
 * @param dataset
 *            a dataset.
 * 
 * @return The chart.
 */
private static JFreeChart createChart(IntervalXYDataset dataset, DatasetSelectionExtension ext) {
    JFreeChart chart = ChartFactory.createHistogram("SelectionDemo4", null, null, dataset,
            PlotOrientation.VERTICAL, true, true, false);
    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.setBaseOutlinePaint(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.addSelectionChangeListener(plot);

    return chart;
}

From source file:org.jfree.expdemo.SelectionDemo6Pie.java

public JPanel createDemoPanel() {
    this.dataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension datasetExtension = new PieDatasetSelectionExtension(this.dataset);
    datasetExtension.addSelectionChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(this.dataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);/* w  w w.  ja  v  a2s  . 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.expdemo.SelectionDemo4.java

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

    //standard setup
    JFreeChart chart = createChart(dataset, 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[] { dataset },
            dExManager);
    selectionManager.setIntersectionSelection(true);
    panel.setSelectionManager(selectionManager);

    return panel;
}

From source file:org.jfree.expdemo.SelectionDemo2.java

/**
 * Creates a panel for the demo (used by SuperDemo.java).
 *
 * @return A panel./*from   www . ja v  a2s .  c  o m*/
 */
public JPanel createDemoPanel() {
    XYDataset dataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension datasetExtension = new XYDatasetSelectionExtension(dataset);
    datasetExtension.addSelectionChangeListener(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.expdemo.SelectionDemo3.java

/**
 * Creates a panel for the demo (used by SuperDemo.java).
 *
 * @return A panel.//from w ww .ja  va 2 s .co m
 */
public JPanel createDemoPanel() {
    XYDataset dataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension datasetExtension = new XYDatasetSelectionExtension(dataset);
    datasetExtension.addSelectionChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(dataset, 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[] { dataset }, dExManager));

    return panel;
}

From source file:org.jfree.expdemo.SelectionDemo1.java

/**
 * Creates a chart./*ww w. j a va2s. c  o  m*/
 * 
 * @param dataset
 *            a dataset.
 * 
 * @return A chart.
 */
private static JFreeChart createChart(XYDataset dataset, DatasetSelectionExtension ext) {
    JFreeChart chart = ChartFactory.createTimeSeriesChart("Stock Prices", // title
            "Date", // x-axis label
            "Price Per Unit", // y-axis label
            dataset, // data
            true, // create legend?
            true, // generate tooltips?
            false // generate URLs?
    );

    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.addSelectionChangeListener(plot);

    return chart;

}

From source file:org.jfree.expdemo.SelectionDemo5Category.java

public JPanel createDemoPanel() {
    this.dataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension datasetExtension = new CategoryDatasetSelectionExtension(this.dataset);
    datasetExtension.addSelectionChangeListener(this);

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

    // 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[] { this.dataset }, dExManager));

    return panel;
}

From source file:org.jfree.expdemo.SelectionDemo1.java

public JPanel createDemoPanel() {
    XYDataset dataset = createDataset();
    //extend dataset and add selection change listener for the demo
    DatasetSelectionExtension datasetExtension = new XYDatasetSelectionExtension(dataset);
    datasetExtension.addSelectionChangeListener(this);

    //standard setup
    JFreeChart chart = createChart(dataset, datasetExtension);
    ChartPanel panel = new ChartPanel(chart);
    panel.setMouseWheelEnabled(true);/*  www  . ja  v a 2s .co  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[] { dataset }, dExManager));

    return panel;
}

From source file:org.jfree.expdemo.SelectionDemo6Pie.java

private static JFreeChart createChart(final PieDataset dataset, DatasetSelectionExtension ext) {
    JFreeChart chart = ChartFactory.createPieChart("Pie Chart Demo 2", // chart title
            dataset, // dataset
            true, // include legend
            true, false);// www.  j  a va  2 s .c  om

    final PiePlot plot = (PiePlot) chart.getPlot();
    plot.setSectionPaint("One", new Color(160, 160, 255));
    plot.setSectionPaint("Two", new Color(128, 128, 255 - 32));
    plot.setSectionPaint("Three", new Color(96, 96, 255 - 64));
    plot.setSectionPaint("Four", new Color(64, 64, 255 - 96));
    plot.setSectionPaint("Five", new Color(32, 32, 255 - 128));
    plot.setSectionPaint("Six", new Color(0, 0, 255 - 144));

    plot.setNoDataMessage("No data available");

    plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} ({2} percent)"));
    plot.setLabelBackgroundPaint(new Color(220, 220, 220));

    plot.setLegendLabelToolTipGenerator(new StandardPieSectionLabelGenerator("Tooltip for legend item {0}"));
    plot.setSimpleLabels(true);
    plot.setInteriorGap(0.1);

    //pie plots done use abstract renderers need to react to selection on our own
    final PieCursor cursor = new PieCursor();

    ext.addSelectionChangeListener(new SelectionChangeListener() {
        public void selectionChanged(SelectionChangeEvent event) {
            for (int i = 0; i < dataset.getItemCount(); i++) {
                cursor.setPosition(dataset.getKey(i));
                if (event.getSelectionExtension().isSelected(cursor)) {
                    plot.setExplodePercent(cursor.key, 0.15);
                } else {
                    plot.setExplodePercent(cursor.key, 0.0);
                }
            }
        }
    });

    return chart;
}