Example usage for org.jfree.chart.fx ChartViewer addChartMouseListener

List of usage examples for org.jfree.chart.fx ChartViewer addChartMouseListener

Introduction

In this page you can find the example usage for org.jfree.chart.fx ChartViewer addChartMouseListener.

Prototype

public void addChartMouseListener(ChartMouseListenerFX listener) 

Source Link

Document

Registers a listener to receive ChartMouseEvent notifications from this viewer.

Usage

From source file:com.bdb.weather.display.summary.RainSummary.java

private Node createChartElements() {
    chart = ChartFactory.createXYBarChart("Water Cycle", "Date", true, "", null, PlotOrientation.VERTICAL, true,
            true, false);//from   ww w . jav  a 2 s.c  om
    ChartViewer chartViewer = new ChartViewer(chart);
    chartViewer.setPrefSize(500, 300);
    chartViewer.addChartMouseListener(this);

    rainPlot = (XYPlot) chart.getPlot();
    DateAxis dateAxis = (DateAxis) rainPlot.getDomainAxis();
    dateAxis.setDateFormatOverride(interval.getLegacyFormat());
    ClusteredXYBarRenderer renderer = new ClusteredXYBarRenderer();
    rainPlot.setRenderer(renderer);
    //renderer.setBarAlignmentFactor(0.0);
    renderer.setMargin(0.2);
    renderer.setShadowVisible(false);

    StandardXYToolTipGenerator ttgen = new StandardXYToolTipGenerator(
            StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, interval.getLegacyFormat(),
            Depth.getDefaultFormatter());

    renderer.setBaseToolTipGenerator(ttgen);
    //renderer.setSeriesPaint(0, Color.BLUE); // TODO Use color preferences
    //renderer.setSeriesPaint(1, Color.RED); // TODO Use color preferences

    rainPlot.setRangeAxis(valueAxis);
    rainPlot.getDomainAxis().setVerticalTickLabels(true);

    return chartViewer;
}

From source file:com.bdb.weather.display.summary.WindSummary.java

/**
 * Create the plot.//from  w w  w.  ja  v a  2 s.c  o  m
 * 
 * @return The panel that contains the plot
 */
private ChartViewer createPlot() {
    JFreeChart chart = ChartFactory.createXYLineChart("", "", "", null, PlotOrientation.VERTICAL, true, true,
            true);
    plot = (XYPlot) chart.getPlot();
    ChartViewer panel = new ChartViewer(chart);
    panel.setPrefSize(500, 300);
    panel.addChartMouseListener(this);

    //
    // Set up the Domain Axis (X)
    //
    dateAxis = new DateAxis("Time");
    dateAxis.setDateFormatOverride(interval.getLegacyFormat());
    dateAxis.setVerticalTickLabels(true);
    plot.setDomainAxis(dateAxis);

    valueAxis = WindSpeedRangeAxis.create();
    plot.setRangeAxis(valueAxis);

    //
    // Set up the renderer to generate tool tips, not show shapes
    //
    DefaultXYItemRenderer renderer = new DefaultXYItemRenderer();
    renderer.setBaseShapesVisible(false);
    renderer.setBaseToolTipGenerator(
            new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
                    interval.getLegacyFormat(), Speed.getDefaultFormatter()));
    renderer.setDefaultEntityRadius(1);
    plot.setRenderer(SUSTAINED_WIND_SERIES, renderer);

    renderer = new DefaultXYItemRenderer();
    WeatherSenseConstants.configureGustRenderer(renderer, 0);
    plot.setRenderer(GUST_SERIES, renderer);

    return panel;
}

From source file:com.bdb.weather.display.summary.HighLowPanel.java

@SuppressWarnings("LeakingThisInConstructor")
public HighLowPanel(String title, SummaryInterval interval, ViewLauncher launcher, SummarySupporter supporter,
        ValueAxis rangeAxis, String domainAxisLabel, SeriesInfo<T>[] seriesList, NumberFormat format) {
    this.setPrefSize(500, 300);
    this.interval = interval;
    this.launcher = launcher;
    this.supporter = supporter;

    chart = ChartFactory.createHighLowChart(title, domainAxisLabel, "", seriesCollection, true);
    chart.getLegend().setPosition(RectangleEdge.RIGHT);

    plot = (XYPlot) chart.getPlot();//w  ww . ja  va2  s.  c om
    renderer = (HighLowRenderer) plot.getRenderer();
    renderer.setDrawCloseTicks(false);

    plot.setRangeAxis(rangeAxis);

    dateAxis = (DateAxis) plot.getDomainAxis();
    dateAxis.setDateFormatOverride(interval.getLegacyFormat());
    dateAxis.setVerticalTickLabels(true);
    dateAxis.setTickMarkPosition(DateTickMarkPosition.START);
    //dateAxis.setTickUnit(interval.getDateTickUnit());
    //dateAxis.setTickUnit(new DateTickUnit(DateTickUnitType.MONTH, 2));

    ChartViewer chartViewer = new ChartViewer(chart);
    chartViewer.addChartMouseListener(this);
    chartViewer.setPrefSize(500, 300);

    series = new OHLCSeries[seriesList.length];

    for (int i = 0; i < seriesList.length; i++) {
        series[i] = new OHLCSeries(seriesList[i].getSeriesName());
        seriesCollection.addSeries(series[i]);
    }

    seriesInfo = Arrays.copyOf(seriesList, seriesList.length);

    TableColumn<SummaryRecord, String> column = new TableColumn<>("Date");
    column.setCellValueFactory(
            (rec) -> new ReadOnlyStringWrapper(DisplayConstants.formatDate(rec.getValue().getDate())));

    dataTable.getColumns().add(column);

    String headingPrefix[] = { HIGH_COL_HEADING, LOW_COL_HEADING, AVG_COL_HEADING };

    for (SeriesInfo<T> seriesColumn : seriesList) {
        for (String heading : headingPrefix) {
            column = new TableColumn<>(heading + " - " + seriesColumn.getSeriesName());
            column.setCellValueFactory(seriesColumn);
            column.setUserData(heading);
            dataTable.getColumns().add(column);
        }
    }

    this.setTabContents(chartViewer, dataTable);

    HighLowItemLabelGenerator ttg = new HiLoItemLabelGenerator(interval.getLegacyFormat(), format);
    plot.getRenderer().setBaseToolTipGenerator(ttg);
}