Example usage for org.jfree.chart.renderer.xy AbstractXYItemRenderer setLegendItemURLGenerator

List of usage examples for org.jfree.chart.renderer.xy AbstractXYItemRenderer setLegendItemURLGenerator

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.xy AbstractXYItemRenderer setLegendItemURLGenerator.

Prototype

public void setLegendItemURLGenerator(XYSeriesLabelGenerator generator) 

Source Link

Document

Sets the legend item URL generator and sends a RendererChangeEvent to all registered listeners.

Usage

From source file:org.pentaho.platform.uifoundation.chart.JFreeChartEngine.java

private static JFreeChart createXYSeriesCollectionChart(
        final XYSeriesCollectionChartDefinition chartDefinition) {
    JFreeChart chart = null;/*from  ww w  .j av  a  2 s. com*/
    // TODO Make the following accessible from the chartDefinition
    String domainAxisLabel = null;
    String rangeAxisLabel = null;
    boolean tooltips = true;
    boolean urls = true;
    // -----------------------------------------------------------

    String title = chartDefinition.getTitle();
    boolean legend = chartDefinition.isLegendIncluded();

    NumberAxis domainAxis = chartDefinition.isThreeD() ? new NumberAxis3D(domainAxisLabel)
            : new NumberAxis(domainAxisLabel);
    domainAxis.setAutoRangeIncludesZero(chartDefinition.isDomainIncludesZero());
    domainAxis.setAutoRangeStickyZero(chartDefinition.isDomainStickyZero());
    ValueAxis rangeAxis = new NumberAxis(rangeAxisLabel);

    AbstractXYItemRenderer renderer = null;
    switch (chartDefinition.getChartType()) {
    case LINE_CHART_TYPE:
        renderer = chartDefinition.isThreeD() ? new XYLine3DRenderer()
                : new XYLineAndShapeRenderer(true, false);
        ((XYLineAndShapeRenderer) renderer).setShapesVisible(chartDefinition.isMarkersVisible());
        ((XYLineAndShapeRenderer) renderer).setBaseShapesFilled(chartDefinition.isMarkersVisible());
        break;
    case AREA_CHART_TYPE:
        renderer = new XYAreaRenderer();
        break;
    case STEP_CHART_TYPE:
        renderer = new XYStepRenderer();
        break;
    case STEP_AREA_CHART_TYPE:
        renderer = new XYStepAreaRenderer();
        break;
    case DIFFERENCE_CHART_TYPE:
        renderer = new XYDifferenceRenderer();
        break;
    case DOT_CHART_TYPE:
        renderer = new XYDotRenderer();
        ((XYDotRenderer) renderer).setDotHeight(chartDefinition.getDotHeight());
        ((XYDotRenderer) renderer).setDotWidth(chartDefinition.getDotWidth());
        break;
    default:
        // should log an error if invalid chart type passed in - at least return null for no renderer
        return null;
    }

    if (renderer != null && legend) {
        renderer.setLegendItemURLGenerator(new StandardXYSeriesLabelGenerator());
    }

    if (tooltips) {
        XYToolTipGenerator generator = new StandardXYToolTipGenerator(chartDefinition.getTooltipContent(),
                new DecimalFormat(chartDefinition.getTooltipXFormat()),
                new DecimalFormat(chartDefinition.getTooltipYFormat()));
        renderer.setToolTipGenerator(generator);
    }

    if (urls) {
        renderer.setURLGenerator(new StandardXYURLGenerator());
    }

    renderer.setStroke(JFreeChartEngine.getLineStyleStroke(chartDefinition.getLineStyle(),
            chartDefinition.getLineWidth()));

    XYPlot plot = new XYPlot(chartDefinition, domainAxis, rangeAxis, renderer);
    JFreeChartEngine.updatePlot(plot, chartDefinition);

    chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);

    return chart;

}