Example usage for org.jfree.chart.renderer.xy XYBarRenderer setAutoPopulateSeriesFillPaint

List of usage examples for org.jfree.chart.renderer.xy XYBarRenderer setAutoPopulateSeriesFillPaint

Introduction

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

Prototype

public void setAutoPopulateSeriesFillPaint(boolean auto) 

Source Link

Document

Sets the flag that controls whether or not the series fill paint list is automatically populated when #lookupSeriesFillPaint(int) is called.

Usage

From source file:maltcms.ui.fileHandles.serialized.JFCPanel.java

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
    String s = (String) jComboBox1.getSelectedItem();
    Logger.getLogger(getClass().getName()).log(Level.INFO, "Selected: {0}", s);
    XYPlot oldPlot = this.chartPanel.getChart().getXYPlot();
    XYItemRenderer xyir = oldPlot.getRenderer();
    if (xyir instanceof XYBlockRenderer) {
        jComboBox1.setEnabled(false);// www.j  a  va2 s.  c o  m
        return;
    }
    this.chartPanel.getChart().getXYPlot().setRenderer(null);
    int datasets = this.chartPanel.getChart().getXYPlot().getSeriesCount();
    XYItemRenderer newRenderer = null;
    if (xyir instanceof XYLineAndShapeRenderer) {
        if (s.equalsIgnoreCase("lines")) {
            ((XYLineAndShapeRenderer) xyir).setBaseLinesVisible(true);
            ((XYLineAndShapeRenderer) xyir).setBaseShapesVisible(false);
            newRenderer = xyir;
            //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer);
        } else if (s.equalsIgnoreCase("lines and shapes")) {
            ((XYLineAndShapeRenderer) xyir).setBaseLinesVisible(true);
            ((XYLineAndShapeRenderer) xyir).setBaseShapesVisible(true);
            newRenderer = xyir;
            //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer);
        } else if (s.equalsIgnoreCase("shapes")) {
            ((XYLineAndShapeRenderer) xyir).setBaseLinesVisible(false);
            ((XYLineAndShapeRenderer) xyir).setBaseShapesVisible(true);
            newRenderer = xyir;
        } else if (s.equalsIgnoreCase("bars")) {
            XYBarRenderer xyl = new XYBarRenderer(0);
            StandardXYBarPainter sp = new StandardXYBarPainter();
            xyl.setBarPainter(sp);
            xyl.setShadowVisible(false);
            xyl.clearSeriesPaints(true);
            xyl.setAutoPopulateSeriesFillPaint(false);
            xyl.setAutoPopulateSeriesOutlinePaint(false);
            xyl.setAutoPopulateSeriesPaint(false);
            newRenderer = xyl;
        } else if (s.equalsIgnoreCase("clustered bars")) {
            ClusteredXYBarRenderer xyl = new ClusteredXYBarRenderer(0, true);
            StandardXYBarPainter sp = new StandardXYBarPainter();
            xyl.setBarPainter(sp);
            xyl.setShadowVisible(false);
            xyl.clearSeriesPaints(true);
            xyl.setAutoPopulateSeriesFillPaint(false);
            xyl.setAutoPopulateSeriesOutlinePaint(false);
            xyl.setAutoPopulateSeriesPaint(false);
            newRenderer = xyl;
        }
    } else {
        if (s.equalsIgnoreCase("lines")) {
            newRenderer = new XYLineAndShapeRenderer(true, false);
            //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer);
        } else if (s.equalsIgnoreCase("lines and shapes")) {
            newRenderer = new XYLineAndShapeRenderer(true, true);
            //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer);
        } else if (s.equalsIgnoreCase("shapes")) {
            newRenderer = new XYLineAndShapeRenderer(false, true);
            //this.chartPanel.getChart().getXYPlot().setRenderer(newRenderer);
        } else if (s.equalsIgnoreCase("bars")) {
            XYBarRenderer xyl = new XYBarRenderer(0);
            StandardXYBarPainter sp = new StandardXYBarPainter();
            xyl.setBarPainter(sp);
            xyl.setShadowVisible(false);
            xyl.clearSeriesPaints(true);
            xyl.setAutoPopulateSeriesFillPaint(false);
            xyl.setAutoPopulateSeriesOutlinePaint(false);
            xyl.setAutoPopulateSeriesPaint(false);
            newRenderer = xyl;

        } else if (s.equalsIgnoreCase("clustered bars")) {
            ClusteredXYBarRenderer xyl = new ClusteredXYBarRenderer(0, true);
            StandardXYBarPainter sp = new StandardXYBarPainter();
            xyl.setBarPainter(sp);
            xyl.setShadowVisible(false);
            xyl.clearSeriesPaints(true);
            xyl.setAutoPopulateSeriesFillPaint(false);
            xyl.setAutoPopulateSeriesOutlinePaint(false);
            xyl.setAutoPopulateSeriesPaint(false);
            newRenderer = xyl;
        }
    }

    newRenderer.setBasePaint(xyir.getBasePaint());
    newRenderer.setBaseOutlinePaint(xyir.getBaseOutlinePaint());
    newRenderer.setBaseItemLabelPaint(xyir.getBaseItemLabelPaint());
    //        XYPlot xyp = new XYPlot();
    //        for(int i = 0;i<oldPlot.getRangeAxisCount();i++) {
    //            xyp.setRangeAxis(i, oldPlot.getRangeAxis(i));
    //        }
    //        for(int i = 0;i<oldPlot.getDomainAxisCount();i++) {
    //            xyp.setDomainAxis(i, oldPlot.getDomainAxis(i));
    //        }
    for (int i = 0; i < datasets; i++) {
        //            XYDataset xyds = oldPlot.getDataset(i);
        //            xyp.setDataset(i, xyds);
        newRenderer.setSeriesPaint(i, xyir.getSeriesPaint(i));
        newRenderer.setSeriesOutlinePaint(i, xyir.getSeriesOutlinePaint(i));
        newRenderer.setSeriesItemLabelPaint(i, xyir.getSeriesItemLabelPaint(i));
    }
    oldPlot.setRenderer(newRenderer);
    //        this.chartPanel.setChart(new JFreeChart(xyp));
}

From source file:org.locationtech.udig.processingtoolbox.tools.HistogramDialog.java

private void updateChart(SimpleFeatureCollection features, String field) {
    int bin = spinner.getSelection();

    double[] values = getValues(features, field);
    HistogramDataset dataset = new HistogramDataset();
    dataset.addSeries(field, values, bin, minMaxVisitor.getMinX(), minMaxVisitor.getMaxX());
    dataset.setType(histogramType);/*from   w w  w  . j  a  v a 2  s . c o m*/

    JFreeChart chart = ChartFactory.createHistogram(EMPTY, null, null, dataset, PlotOrientation.VERTICAL, false,
            false, false);

    // 1. Create a single plot containing both the scatter and line
    chart.setBackgroundPaint(java.awt.Color.WHITE);
    chart.setBorderVisible(false);

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setForegroundAlpha(0.85F);
    plot.setBackgroundPaint(java.awt.Color.WHITE);
    plot.setOrientation(PlotOrientation.VERTICAL);

    plot.setDomainGridlinePaint(java.awt.Color.LIGHT_GRAY);
    plot.setRangeGridlinePaint(java.awt.Color.LIGHT_GRAY);

    int fontStyle = java.awt.Font.BOLD;
    FontData fontData = getShell().getDisplay().getSystemFont().getFontData()[0];

    NumberAxis valueAxis = new NumberAxis(cboField.getText());
    valueAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12));
    valueAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10));

    valueAxis.setAutoRange(false);
    valueAxis.setRange(minMaxVisitor.getMinX(), minMaxVisitor.getMaxX());

    String rangeAxisLabel = histogramType == HistogramType.FREQUENCY ? "Frequency" : "Ratio"; //$NON-NLS-1$ //$NON-NLS-2$
    NumberAxis rangeAxis = new NumberAxis(rangeAxisLabel);
    rangeAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12));
    rangeAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10));
    if (histogramType == HistogramType.FREQUENCY) {
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    }

    XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();
    renderer.setShadowVisible(false);
    CustomXYBarPainter.selectedColumn = -1; // init
    renderer.setBarPainter(new CustomXYBarPainter());
    renderer.setAutoPopulateSeriesFillPaint(true);
    renderer.setAutoPopulateSeriesPaint(true);
    renderer.setShadowXOffset(3);
    renderer.setMargin(0.01);
    renderer.setBaseItemLabelsVisible(true);

    ItemLabelPosition pos = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.TOP_CENTER);
    renderer.setBasePositiveItemLabelPosition(pos);

    XYToolTipGenerator plotToolTip = new StandardXYToolTipGenerator();
    renderer.setBaseToolTipGenerator(plotToolTip);

    // color
    GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, java.awt.Color.GRAY, 0.0f, 0.0f,
            java.awt.Color.LIGHT_GRAY);
    renderer.setSeriesPaint(0, gp0);

    plot.setDomainAxis(0, valueAxis);
    plot.setRangeAxis(0, rangeAxis);

    // 3. Setup line
    // Create the line data, renderer, and axis
    XYItemRenderer lineRenderer = new XYLineAndShapeRenderer(true, false); // Lines only
    lineRenderer.setSeriesPaint(0, java.awt.Color.RED);
    lineRenderer.setSeriesStroke(0, new BasicStroke(2f));

    // Set the line data, renderer, and axis into plot
    NumberAxis xLineAxis = new NumberAxis(EMPTY);
    xLineAxis.setTickMarksVisible(false);
    xLineAxis.setTickLabelsVisible(false);
    xLineAxis.setAutoRange(false);

    NumberAxis yLineAxis = new NumberAxis(EMPTY);
    yLineAxis.setTickMarksVisible(false);
    yLineAxis.setTickLabelsVisible(false);
    yLineAxis.setAutoRange(false);

    double maxYValue = Double.MIN_VALUE;
    for (int i = 0; i < dataset.getItemCount(0); i++) {
        maxYValue = Math.max(maxYValue, dataset.getYValue(0, i));
    }

    XYSeriesCollection lineDatset = new XYSeriesCollection();

    // Vertical Average
    XYSeries vertical = new XYSeries("Average"); //$NON-NLS-1$
    vertical.add(minMaxVisitor.getAverageX(), 0);
    vertical.add(minMaxVisitor.getAverageX(), maxYValue);
    lineDatset.addSeries(vertical);

    plot.setDataset(1, lineDatset);
    plot.setRenderer(1, lineRenderer);
    plot.setDomainAxis(1, xLineAxis);
    plot.setRangeAxis(1, yLineAxis);

    // Map the line to the second Domain and second Range
    plot.mapDatasetToDomainAxis(1, 0);
    plot.mapDatasetToRangeAxis(1, 0);

    chartComposite.setChart(chart);
    chartComposite.forceRedraw();
}