Example usage for org.jfree.chart.renderer.category BarRenderer3D BarRenderer3D

List of usage examples for org.jfree.chart.renderer.category BarRenderer3D BarRenderer3D

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.category BarRenderer3D BarRenderer3D.

Prototype

public BarRenderer3D() 

Source Link

Document

Default constructor, creates a renderer with a default '3D effect'.

Usage

From source file:com.tonbeller.jpivot.chart.ChartFactory.java

/**
 * Creates a vertical 3D-effect bar chart with default settings.
 *
 * @param title  the chart title./*from   w  ww .  j  a va2 s  .  c  o  m*/
 * @param categoryAxisLabel  the label for the category axis.
 * @param valueAxisLabel  the label for the value axis.
 * @param data  the dataset for the chart.
 * @param legend  a flag specifying whether or not a legend is required.
 * @param tooltips  configure chart to generate tool tips?
 * @param urls  configure chart to generate URLs?
 *
 * @return a vertical 3D-effect bar chart.
 */
public static JFreeChart createBarChart3D(String title, java.awt.Font titleFont, String categoryAxisLabel,
        String valueAxisLabel, CategoryDataset data, PlotOrientation orientation, boolean legend,
        boolean tooltips, boolean urls, CategoryURLGenerator urlGenerator) {

    CategoryAxis categoryAxis = new CategoryAxis3D(categoryAxisLabel);
    ValueAxis valueAxis = new NumberAxis3D(valueAxisLabel);

    BarRenderer3D renderer = new BarRenderer3D();

    //renderer.setLabelGenerator(new StandardCategoryLabelGenerator());
    if (tooltips) {
        renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
    }
    if (urls) {
        renderer.setItemURLGenerator(urlGenerator);
    }

    CategoryPlot plot = new CategoryPlot(data, categoryAxis, valueAxis, renderer);
    plot.setOrientation(orientation);
    plot.setForegroundAlpha(0.75f);

    JFreeChart chart = new JFreeChart(title, titleFont, plot, legend);

    return chart;

}

From source file:msi.gama.outputs.layers.charts.ChartJFreeChartOutputHistogram.java

@Override
protected AbstractRenderer createRenderer(final IScope scope, final String serieid) {
    final String style = this.getChartdataset().getDataSeries(scope, serieid).getStyle(scope);
    AbstractRenderer newr = new BarRenderer();
    switch (style) {
    case IKeyword.STACK: {
        newr = new StackedBarRenderer();
        break;/*from  w ww.j a  va2 s  . com*/

    }
    case IKeyword.THREE_D: {
        newr = new BarRenderer3D();
        break;

    }
    case IKeyword.DOT: {
        newr = new ScatterRenderer();
        break;
    }
    case IKeyword.AREA: {
        newr = new StackedAreaRenderer();
        break;
    }
    case IKeyword.LINE: {
        newr = new StatisticalLineAndShapeRenderer();
        break;
    }
    case IKeyword.STEP: {
        newr = new LevelRenderer();
        break;
    }
    case IKeyword.RING:
    case IKeyword.EXPLODED:
    default: {
        newr = new BarRenderer();
        break;

    }
    }
    return newr;
}

From source file:org.n52.oxf.render.sos.AnimatedMapBarChartRenderer.java

protected CategoryPlot drawChart4FOI(String featureID, String timeString, ObservedValueTuple tuple) {

    BarRenderer3D barRenderer = new BarRenderer3D();

    CategoryPlot plot = new CategoryPlot();
    plot.setDomainAxis(new CategoryAxis(featureID));

    for (int i = 0; i < observedProperties.length; i++) {
        plot.setDataset(i, createDataset(i, timeString, tuple));
        plot.setRangeAxis(i, new NumberAxis(
                tuple.getPhenomenonNames()[i].split(":")[tuple.getPhenomenonNames()[i].split(":").length - 1]));
        plot.setRenderer(i, barRenderer);
        plot.mapDatasetToRangeAxis(i, i);
    }//from   w w  w  .  j a v a  2 s  . com

    return plot;
}

From source file:com.sun.japex.ChartGenerator.java

private JFreeChart generateDriverBarChart() {
    try {/*from ww w  . j a v a 2s . com*/
        String resultUnit = _testSuite.getParam(Constants.RESULT_UNIT);
        String resultUnitX = _testSuite.getParam(Constants.RESULT_UNIT_X);

        // Ensure japex.resultUnitX is not null
        if (resultUnitX == null) {
            resultUnitX = "";
        }

        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        DefaultCategoryDataset datasetX = new DefaultCategoryDataset();

        // Find first normalizer driver (if any) and adjust unit            
        DriverImpl normalizerDriver = null;
        for (DriverImpl driver : _testSuite.getDriverInfoList()) {
            if (driver.isNormal()) {
                normalizerDriver = driver;
                break;
            }
        }

        // Check if normalizer driver can be used as such
        if (normalizerDriver != null) {
            if (normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN) == 0.0
                    || normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN) == 0.0
                    || normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN) == 0.0) {
                System.out.println("Warning: Driver '" + normalizerDriver.getName()
                        + "' cannot be used to normalize results");
                normalizerDriver = null;
            } else {
                resultUnit = "% of " + resultUnit;
                if (resultUnitX != null) {
                    resultUnitX = "% of " + resultUnitX;
                }
            }
        }

        boolean hasValueX = false;

        // Generate charts
        for (DriverImpl di : _testSuite.getDriverInfoList()) {
            if (normalizerDriver != null) {
                dataset.addValue(
                        normalizerDriver == di ? 100.0
                                : (100.0 * di.getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN)
                                        / normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN)),
                        di.getName(), "Arithmetic Mean");
                dataset.addValue(
                        normalizerDriver == di ? 100.0
                                : (100.0 * di.getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN)
                                        / normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN)),
                        di.getName(), "Geometric Mean");
                dataset.addValue(
                        normalizerDriver == di ? 100.0
                                : (100.0 * di.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN)
                                        / normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN)),
                        di.getName(), "Harmonic Mean");

                if (di.hasParam(Constants.RESULT_ARIT_MEAN_X)) {
                    datasetX.addValue(
                            normalizerDriver == di ? 100.0
                                    : (100.0 * di.getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN_X)
                                            / normalizerDriver
                                                    .getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN_X)),
                            di.getName(), "Arithmetic Mean");
                    datasetX.addValue(
                            normalizerDriver == di ? 100.0
                                    : (100.0 * di.getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN_X)
                                            / normalizerDriver
                                                    .getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN_X)),
                            di.getName(), "Geometric Mean");
                    datasetX.addValue(
                            (100.0 * di.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN_X)
                                    / normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN_X)),
                            di.getName(), "Harmonic Mean");
                    hasValueX = true;
                }
            } else {
                dataset.addValue(di.getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN), di.getName(),
                        "Arithmetic Mean");
                dataset.addValue(di.getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN), di.getName(),
                        "Geometric Mean");
                dataset.addValue(di.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN), di.getName(),
                        "Harmonic Mean");

                if (di.hasParam(Constants.RESULT_ARIT_MEAN_X)) {
                    datasetX.addValue(di.getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN_X), di.getName(),
                            "Arithmetic Mean");
                    datasetX.addValue(di.getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN_X), di.getName(),
                            "Geometric Mean");
                    datasetX.addValue(di.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN_X), di.getName(),
                            "Harmonic Mean");
                    hasValueX = true;
                }
            }

        }

        int nextPlotIndex = 1;
        CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot();

        // Use same renderer in combine charts to get same colors
        BarRenderer3D renderer = new BarRenderer3D();
        renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());

        // Bar chart for secondary data set based on japex.resultValueX
        if (hasValueX) {
            NumberAxis rangeAxisX = new NumberAxis(resultUnitX);
            CategoryPlot subplotX = new CategoryPlot(datasetX, null, rangeAxisX, renderer);

            // Set transparency and clear legend for this plot
            subplotX.setForegroundAlpha(0.7f);
            subplotX.setFixedLegendItems(new LegendItemCollection());

            plot.add(subplotX, nextPlotIndex++);
            _chartHeight += 50; // Adjust chart height
        } else {
        }

        // Bar chart for main data set based on japex.resultValue
        NumberAxis rangeAxis = new NumberAxis(resultUnit);
        CategoryPlot subplot = new CategoryPlot(dataset, null, rangeAxis, renderer);
        subplot.setForegroundAlpha(0.7f); // transparency
        plot.add(subplot, nextPlotIndex);

        // Create chart and save it as JPEG
        String chartTitle = "Result Summary";
        JFreeChart chart = new JFreeChart(hasValueX ? chartTitle : (chartTitle + "(" + resultUnit + ")"),
                new Font("SansSerif", Font.BOLD, 14), plot, true);
        chart.setAntiAlias(true);
        return chart;
    } catch (RuntimeException e) {
        throw e;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:org.hxzon.demo.jfreechart.CategoryDatasetDemo2.java

private static JFreeChart createBarChart3D(CategoryDataset dataset) {

    CategoryAxis categoryAxis = new CategoryAxis3D(categoryAxisLabel);
    ValueAxis valueAxis = new NumberAxis3D(valueAxisLabel);

    BarRenderer3D renderer = new BarRenderer3D();
    if (tooltips) {
        renderer.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());
    }/*from w  w  w .j  a  va  2s  .  c o m*/
    if (urls) {
        renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator());
    }

    CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, valueAxis, renderer);
    plot.setOrientation(orientation);
    if (orientation == PlotOrientation.HORIZONTAL) {
        // change rendering order to ensure that bar overlapping is the
        // right way around
        plot.setRowRenderingOrder(SortOrder.DESCENDING);
        plot.setColumnRenderingOrder(SortOrder.DESCENDING);
    }
    plot.setForegroundAlpha(0.75f);

    JFreeChart chart = new JFreeChart("Bar Chart 3D Demo 1", JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
    chart.setBackgroundPaint(Color.white);

    plot.setForegroundAlpha(0.5f);

    valueAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.blue, 0.0f, 0.0f, new Color(0, 0, 64));
    GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.green, 0.0f, 0.0f, new Color(0, 64, 0));
    GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f, 0.0f, new Color(64, 0, 0));
    renderer.setSeriesPaint(0, gp0);
    renderer.setSeriesPaint(1, gp1);
    renderer.setSeriesPaint(2, gp2);

    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);

    return chart;

}

From source file:org.jajuk.ui.views.StatView.java

/**
 * Creates the bar chart3 d./*from w w w  . ja v a 2 s  . co m*/
 * 
 * 
 * @param title 
 * @param categoryAxisLabel 
 * @param valueAxisLabel 
 * @param dataset 
 * @param orientation 
 * @param legend 
 * @param tooltips 
 * @param urls 
 * @param format 
 * 
 * @return the j free chart
 */
public static JFreeChart createBarChart3D(String title, String categoryAxisLabel, String valueAxisLabel,
        CategoryDataset dataset, PlotOrientation orientation, boolean legend, boolean tooltips, boolean urls,
        String format) {
    if (orientation == null)
        throw new IllegalArgumentException("Null 'orientation' argument.");
    CategoryAxis categoryAxis = new CategoryAxis3D(categoryAxisLabel);
    ValueAxis valueAxis = new NumberAxis3D(valueAxisLabel);
    BarRenderer3D renderer = new BarRenderer3D();
    if (tooltips)
        renderer.setBaseToolTipGenerator(
                new StandardCategoryToolTipGenerator(format, NumberFormat.getInstance()));
    if (urls)
        renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator());
    CategoryPlot plot = new CategoryPlot(dataset, categoryAxis, valueAxis, renderer);
    plot.setOrientation(orientation);
    if (orientation == PlotOrientation.HORIZONTAL) {
        plot.setRowRenderingOrder(SortOrder.DESCENDING);
        plot.setColumnRenderingOrder(SortOrder.DESCENDING);
    }
    plot.setForegroundAlpha(0.75F);
    JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, legend);
    ChartFactory.getChartTheme().apply(chart);
    return chart;
}

From source file:org.toobsframework.pres.chart.ChartUtil.java

public static AbstractRenderer getRenderer(IRequest componentRequest, BasePlot plot, DatasetGroup group,
        Map params) {/*ww  w  . j  a v  a 2 s. c om*/
    AbstractRenderer renderer = null;

    String format = ParameterUtil.resolveParam(componentRequest, group.getRenderer(), params, "area")[0];
    boolean is3D = (ParameterUtil.resolveParam(componentRequest, plot.getIs3D(), params, "false")[0]
            .equals("false") ? false : true);

    switch (supportedRenderers.get(format)) {
    case ChartUtil.RENDERER_TYPE_AREA:
        if (group.getStacked()) {
            renderer = new StackedAreaRenderer();
            if (group.getRenderAsPercentages()) {
                ((StackedAreaRenderer) renderer).setRenderAsPercentages(true);
            }
        } else {
            renderer = new AreaRenderer();
        }
        break;
    case ChartUtil.RENDERER_TYPE_BAR:
        if (is3D) {
            if (group.getStacked()) {
                renderer = new StackedBarRenderer3D();
                if (group.getRenderAsPercentages()) {
                    ((StackedBarRenderer3D) renderer).setRenderAsPercentages(true);
                }
            } else {
                renderer = new BarRenderer3D();
            }
        } else {
            if (group.getStacked()) {
                renderer = new StackedBarRenderer();
                if (group.getRenderAsPercentages()) {
                    ((StackedBarRenderer) renderer).setRenderAsPercentages(true);
                }
            } else {
                renderer = new BarRenderer();
            }
        }
        break;
    case ChartUtil.RENDERER_TYPE_BAR_EVEN_ODD:
        if (is3D) {
            if (group.getStacked()) {
                renderer = new EvenOddStackedBarRenderer3D(group.getEven());
                if (group.getRenderAsPercentages()) {
                    ((EvenOddStackedBarRenderer3D) renderer).setRenderAsPercentages(true);
                }
            } else {
                renderer = new EvenOddBarRenderer3D(group.getEven());
            }
        } else {
            if (group.getStacked()) {
                renderer = new EvenOddStackedBarRenderer(group.getEven());
                if (group.getRenderAsPercentages()) {
                    ((EvenOddStackedBarRenderer) renderer).setRenderAsPercentages(true);
                }
            } else {
                renderer = new EvenOddBarRenderer(group.getEven());
            }
        }
        break;
    case ChartUtil.RENDERER_TYPE_LINE:
        renderer = new LineAndShapeRenderer();
        break;
    case ChartUtil.RENDERER_TYPE_PIE:
        break;
    }
    configureDomainItemLabels(componentRequest, plot, renderer, params, is3D);
    configureSeriesPaint(plot, group, renderer);
    return renderer;
}

From source file:com.sun.japex.ChartGenerator.java

private int generateTestCaseBarCharts(String baseName, String extension) {
    int nOfFiles = 0;
    List<DriverImpl> driverInfoList = _testSuite.getDriverInfoList();

    // Get number of tests from first driver
    final int nOfTests = driverInfoList.get(0).getAggregateTestCases().size();

    int groupSizesIndex = 0;
    int[] groupSizes = calculateGroupSizes(nOfTests, _plotGroupSize);

    try {/*from   ww  w . j  a va  2s. c  om*/
        String resultUnit = _testSuite.getParam(Constants.RESULT_UNIT);
        String resultUnitX = _testSuite.getParam(Constants.RESULT_UNIT_X);

        // Ensure japex.resultUnitX is not null
        if (resultUnitX == null) {
            resultUnitX = "";
        }

        // Find first normalizer driver (if any)
        DriverImpl normalizerDriver = null;
        for (DriverImpl di : driverInfoList) {
            if (di.isNormal()) {
                normalizerDriver = di;
                break;
            }
        }

        // Check if normalizer driver can be used as such
        if (normalizerDriver != null) {
            if (normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_ARIT_MEAN) == 0.0
                    || normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_GEOM_MEAN) == 0.0
                    || normalizerDriver.getDoubleParamNoNaN(Constants.RESULT_HARM_MEAN) == 0.0) {
                normalizerDriver = null;
            } else {
                resultUnit = "% of " + resultUnit;
                if (resultUnitX != null) {
                    resultUnitX = "% of " + resultUnitX;
                }
            }
        }

        // Generate charts 
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        DefaultCategoryDataset datasetX = new DefaultCategoryDataset();

        boolean hasValueX = false;

        int i = 0, thisGroupSize = 0;
        for (; i < nOfTests; i++) {

            for (DriverImpl di : driverInfoList) {
                TestCaseImpl tc = (TestCaseImpl) di.getAggregateTestCases().get(i);

                // User normalizer driver if defined
                if (normalizerDriver != null) {
                    TestCaseImpl normalTc = (TestCaseImpl) normalizerDriver.getAggregateTestCases().get(i);

                    dataset.addValue(
                            normalizerDriver == di ? 100.0
                                    : (100.0 * tc.getDoubleParamNoNaN(Constants.RESULT_VALUE)
                                            / normalTc.getDoubleParamNoNaN(Constants.RESULT_VALUE)),
                            _plotDrivers ? tc.getName() : di.getName(),
                            _plotDrivers ? di.getName() : tc.getName());

                    if (tc.hasParam(Constants.RESULT_VALUE_X)) {
                        datasetX.addValue(
                                (100.0 * tc.getDoubleParamNoNaN(Constants.RESULT_VALUE_X)
                                        / normalTc.getDoubleParamNoNaN(Constants.RESULT_VALUE_X)),
                                _plotDrivers ? tc.getName() : di.getName(),
                                _plotDrivers ? di.getName() : tc.getName());
                        hasValueX = true;
                    }
                } else {
                    dataset.addValue(tc.getDoubleParamNoNaN(Constants.RESULT_VALUE),
                            _plotDrivers ? tc.getName() : di.getName(),
                            _plotDrivers ? di.getName() : tc.getName());

                    if (tc.hasParam(Constants.RESULT_VALUE_X)) {
                        datasetX.addValue(tc.getDoubleParamNoNaN(Constants.RESULT_VALUE_X),
                                _plotDrivers ? tc.getName() : di.getName(),
                                _plotDrivers ? di.getName() : tc.getName());
                        hasValueX = true;
                    }
                }

            }

            thisGroupSize++;

            // Generate chart for this group if complete
            if (thisGroupSize == groupSizes[groupSizesIndex]) {
                int nextPlotIndex = 1;
                CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot();

                // Use same renderer in combine charts to get same colors
                BarRenderer3D renderer = new BarRenderer3D();
                renderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());

                // Bar chart for secondary data set based on japex.resultValueX
                if (hasValueX) {
                    NumberAxis rangeAxisX = new NumberAxis(resultUnitX);
                    CategoryPlot subplotX = new CategoryPlot(datasetX, null, rangeAxisX, renderer);

                    // Set transparency and clear legend for this plot
                    subplotX.setForegroundAlpha(0.7f);
                    subplotX.setFixedLegendItems(new LegendItemCollection());

                    plot.add(subplotX, nextPlotIndex++);
                    _chartHeight += 50; // Adjust chart height
                }

                // Bar chart for main data set based on japex.resultValue
                NumberAxis rangeAxis = new NumberAxis(resultUnit);
                CategoryPlot subplot = new CategoryPlot(dataset, null, rangeAxis, renderer);
                subplot.setForegroundAlpha(0.7f); // transparency
                plot.add(subplot, nextPlotIndex);

                // Create chart and save it as JPEG
                String chartTitle = _plotDrivers ? "Results per Driver" : "Results per Test";
                JFreeChart chart = new JFreeChart(
                        hasValueX ? chartTitle : (chartTitle + "(" + resultUnit + ")"),
                        new Font("SansSerif", Font.BOLD, 14), plot, true);
                chart.setAntiAlias(true);
                ChartUtilities.saveChartAsJPEG(new File(baseName + Integer.toString(nOfFiles) + extension),
                        chart, _chartWidth, _chartHeight);

                nOfFiles++;
                groupSizesIndex++;
                thisGroupSize = 0;

                // Create fresh data sets
                dataset = new DefaultCategoryDataset();
                datasetX = new DefaultCategoryDataset();
            }
        }
    } catch (RuntimeException e) {
        throw e;
    } catch (Exception e) {
        e.printStackTrace();
    }

    return nOfFiles;
}

From source file:org.orbeon.oxf.processor.serializer.legacy.JFreeChartSerializer.java

protected JFreeChart drawChart(ChartConfig chartConfig, final Dataset ds) {
    JFreeChart chart = null;//from   w  w  w  . j a va2s.c  om
    Axis categoryAxis = null;
    if (ds instanceof XYSeriesCollection) {
        categoryAxis = new RestrictedNumberAxis(chartConfig.getCategoryTitle());
    } else if (ds instanceof TimeSeriesCollection) {
        categoryAxis = new DateAxis(chartConfig.getCategoryTitle());
        ((DateAxis) categoryAxis).setDateFormatOverride(new SimpleDateFormat(chartConfig.getDateFormat()));
        if (chartConfig.getCategoryLabelAngle() == 90) {
            ((DateAxis) categoryAxis).setVerticalTickLabels(true);
        } else {
            if (chartConfig.getCategoryLabelAngle() != 0)
                throw new OXFException(
                        "The only supported values of category-label-angle for time-series charts are 0 or 90");
        }
    } else {
        categoryAxis = new CategoryAxis(chartConfig.getCategoryTitle());
        ((CategoryAxis) categoryAxis).setCategoryLabelPositions(chartConfig.getCategoryLabelPosition());
    }
    NumberAxis valueAxis = new RestrictedNumberAxis(chartConfig.getSerieTitle());
    valueAxis.setAutoRangeIncludesZero(chartConfig.getSerieAutoRangeIncludeZero());
    AbstractRenderer renderer = null;
    Plot plot = null;

    switch (chartConfig.getType()) {
    case ChartConfig.VERTICAL_BAR_TYPE:
    case ChartConfig.HORIZONTAL_BAR_TYPE:
        renderer = (ds instanceof ItemPaintCategoryDataset) ? new BarRenderer() {
            public Paint getItemPaint(int row, int column) {
                Paint p = ((ItemPaintCategoryDataset) ds).getItemPaint(row, column);
                if (p != null)
                    return p;
                else
                    return getSeriesPaint(row);
            }
        } : new BarRenderer();

        plot = new CategoryPlot((CategoryDataset) ds, (CategoryAxis) categoryAxis, (ValueAxis) valueAxis,
                (CategoryItemRenderer) renderer);

        if (chartConfig.getType() == ChartConfig.VERTICAL_BAR_TYPE)
            ((CategoryPlot) plot).setOrientation(PlotOrientation.VERTICAL);
        else
            ((CategoryPlot) plot).setOrientation(PlotOrientation.HORIZONTAL);

        break;
    case ChartConfig.STACKED_VERTICAL_BAR_TYPE:
    case ChartConfig.STACKED_HORIZONTAL_BAR_TYPE:
        renderer = (ds instanceof ItemPaintCategoryDataset) ? new StackedBarRenderer() {
            public Paint getItemPaint(int row, int column) {
                Paint p = ((ItemPaintCategoryDataset) ds).getItemPaint(row, column);
                if (p != null)
                    return p;
                else
                    return getSeriesPaint(row);
            }
        } : new StackedBarRenderer();
        plot = new CategoryPlot((CategoryDataset) ds, (CategoryAxis) categoryAxis, (ValueAxis) valueAxis,
                (CategoryItemRenderer) renderer);

        if (chartConfig.getType() == ChartConfig.STACKED_VERTICAL_BAR_TYPE)
            ((CategoryPlot) plot).setOrientation(PlotOrientation.VERTICAL);
        else
            ((CategoryPlot) plot).setOrientation(PlotOrientation.HORIZONTAL);
        break;
    case ChartConfig.LINE_TYPE:
        renderer = (ds instanceof ItemPaintCategoryDataset) ? new LineAndShapeRenderer(true, false) {
            public Paint getItemPaint(int row, int column) {
                Paint p = ((ItemPaintCategoryDataset) ds).getItemPaint(row, column);
                if (p != null)
                    return p;
                else
                    return getSeriesPaint(row);
            }
        } : (new LineAndShapeRenderer(true, false));
        plot = new CategoryPlot((CategoryDataset) ds, (CategoryAxis) categoryAxis, (ValueAxis) valueAxis,
                (CategoryItemRenderer) renderer);
        ((CategoryPlot) plot).setOrientation(PlotOrientation.VERTICAL);
        break;
    case ChartConfig.AREA_TYPE:
        renderer = (ds instanceof ItemPaintCategoryDataset) ? new AreaRenderer() {
            public Paint getItemPaint(int row, int column) {
                Paint p = ((ItemPaintCategoryDataset) ds).getItemPaint(row, column);
                if (p != null)
                    return p;
                else
                    return getSeriesPaint(row);
            }
        } : new AreaRenderer();
        plot = new CategoryPlot((CategoryDataset) ds, (CategoryAxis) categoryAxis, (ValueAxis) valueAxis,
                (CategoryItemRenderer) renderer);
        ((CategoryPlot) plot).setOrientation(PlotOrientation.VERTICAL);
        break;
    case ChartConfig.VERTICAL_BAR3D_TYPE:
    case ChartConfig.HORIZONTAL_BAR3D_TYPE:
        categoryAxis = new CategoryAxis3D(chartConfig.getCategoryTitle());
        valueAxis = new NumberAxis3D(chartConfig.getSerieTitle());
        renderer = (ds instanceof ItemPaintCategoryDataset) ? new BarRenderer3D() {
            public Paint getItemPaint(int row, int column) {
                Paint p = ((ItemPaintCategoryDataset) ds).getItemPaint(row, column);
                if (p != null)
                    return p;
                else
                    return getSeriesPaint(row);
            }
        } : new BarRenderer3D();
        plot = new CategoryPlot((CategoryDataset) ds, (CategoryAxis) categoryAxis, (ValueAxis) valueAxis,
                (CategoryItemRenderer) renderer);

        if (chartConfig.getType() == ChartConfig.VERTICAL_BAR3D_TYPE)
            ((CategoryPlot) plot).setOrientation(PlotOrientation.VERTICAL);
        else
            ((CategoryPlot) plot).setOrientation(PlotOrientation.HORIZONTAL);

        break;
    case ChartConfig.STACKED_VERTICAL_BAR3D_TYPE:
    case ChartConfig.STACKED_HORIZONTAL_BAR3D_TYPE:
        categoryAxis = new CategoryAxis3D(chartConfig.getCategoryTitle());
        valueAxis = new NumberAxis3D(chartConfig.getSerieTitle());
        renderer = (ds instanceof ItemPaintCategoryDataset) ? new StackedBarRenderer3D() {
            public Paint getItemPaint(int row, int column) {
                Paint p = ((ItemPaintCategoryDataset) ds).getItemPaint(row, column);
                if (p != null)
                    return p;
                else
                    return getSeriesPaint(row);
            }
        } : new StackedBarRenderer3D();
        plot = new CategoryPlot((CategoryDataset) ds, (CategoryAxis) categoryAxis, (ValueAxis) valueAxis,
                (CategoryItemRenderer) renderer);

        if (chartConfig.getType() == ChartConfig.STACKED_VERTICAL_BAR3D_TYPE)
            ((CategoryPlot) plot).setOrientation(PlotOrientation.VERTICAL);
        else
            ((CategoryPlot) plot).setOrientation(PlotOrientation.HORIZONTAL);

        break;
    case ChartConfig.PIE_TYPE:
    case ChartConfig.PIE3D_TYPE:
        categoryAxis = null;
        valueAxis = null;
        renderer = null;
        ExtendedPieDataset pds = (ExtendedPieDataset) ds;

        plot = chartConfig.getType() == ChartConfig.PIE_TYPE ? new PiePlot(pds) : new PiePlot3D(pds);

        PiePlot pp = (PiePlot) plot;
        pp.setLabelGenerator(new StandardPieSectionLabelGenerator());

        for (int i = 0; i < pds.getItemCount(); i++) {
            Paint p = pds.getPaint(i);
            if (p != null)
                pp.setSectionPaint(i, p);

            pp.setExplodePercent(i, pds.getExplodePercent(i));

            Paint paint = pds.getPaint(i);
            if (paint != null)
                pp.setSectionPaint(i, paint);
        }
        break;
    case ChartConfig.XY_LINE_TYPE:
        renderer = new XYLineAndShapeRenderer(true, false);
        plot = new XYPlot((XYDataset) ds, (ValueAxis) categoryAxis, (ValueAxis) valueAxis,
                (XYLineAndShapeRenderer) renderer);
        break;
    case ChartConfig.TIME_SERIES_TYPE:
        renderer = new XYLineAndShapeRenderer(true, false);
        plot = new XYPlot((XYDataset) ds, (DateAxis) categoryAxis, (ValueAxis) valueAxis,
                (XYLineAndShapeRenderer) renderer);
        break;
    default:
        throw new OXFException("Chart Type not supported");
    }

    if (categoryAxis != null) {
        categoryAxis.setLabelPaint(chartConfig.getTitleColor());
        categoryAxis.setTickLabelPaint(chartConfig.getTitleColor());
        categoryAxis.setTickMarkPaint(chartConfig.getTitleColor());
        if (categoryAxis instanceof RestrictedNumberAxis) {
            ((RestrictedNumberAxis) categoryAxis).setMaxTicks(chartConfig.getMaxNumOfLabels());
        }
        if (categoryAxis instanceof CategoryAxis && chartConfig.getCategoryMargin() != 0)
            ((CategoryAxis) categoryAxis).setCategoryMargin(chartConfig.getCategoryMargin());
    }

    if (valueAxis != null) {
        valueAxis.setLabelPaint(chartConfig.getTitleColor());
        valueAxis.setTickLabelPaint(chartConfig.getTitleColor());
        valueAxis.setTickMarkPaint(chartConfig.getTitleColor());
        ((RestrictedNumberAxis) valueAxis).setMaxTicks(chartConfig.getMaxNumOfLabels());
    }

    if (renderer != null) {
        if (renderer instanceof XYLineAndShapeRenderer) {
            ((XYLineAndShapeRenderer) renderer).setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
        } else {
            ((CategoryItemRenderer) renderer)
                    .setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
        }
        if (renderer instanceof BarRenderer)
            ((BarRenderer) renderer).setItemMargin(chartConfig.getBarMargin());

        int j = 0;
        for (Iterator i = chartConfig.getValueIterator(); i.hasNext();) {
            Value v = (Value) i.next();
            renderer.setSeriesPaint(j, v.getColor());
            j++;
        }
    }

    plot.setOutlinePaint(chartConfig.getTitleColor());
    CustomLegend legend = chartConfig.getLegendConfig();
    chart = new JFreeChart(chartConfig.getTitle(), TextTitle.DEFAULT_FONT, plot, false);
    if (legend.isVisible()) {
        legend.setSources(new LegendItemSource[] { plot });
        chart.addLegend(legend);
    }
    chart.setBackgroundPaint(chartConfig.getBackgroundColor());
    TextTitle textTitle = new TextTitle(chartConfig.getTitle(), TextTitle.DEFAULT_FONT,
            chartConfig.getTitleColor(), TextTitle.DEFAULT_POSITION, TextTitle.DEFAULT_HORIZONTAL_ALIGNMENT,
            TextTitle.DEFAULT_VERTICAL_ALIGNMENT, TextTitle.DEFAULT_PADDING);
    chart.setTitle(textTitle);
    return chart;
}

From source file:org.jfree.eastwood.ChartEngine.java

/**
 * Creates a bar chart with the specified orientation.
 *
 * @param orientation  the plot orientation.
 *
 * @return A bar chart.//from w  ww  . ja  v  a2  s . c  om
 */
private static JFreeChart createBarChart3D(PlotOrientation orientation) {
    return createBarChart3D(orientation, new BarRenderer3D());
}