Example usage for org.jfree.chart.renderer AbstractRenderer setSeriesPaint

List of usage examples for org.jfree.chart.renderer AbstractRenderer setSeriesPaint

Introduction

In this page you can find the example usage for org.jfree.chart.renderer AbstractRenderer setSeriesPaint.

Prototype

public void setSeriesPaint(int series, Paint paint) 

Source Link

Document

Sets the paint used for a series and sends a RendererChangeEvent to all registered listeners.

Usage

From source file:org.operamasks.faces.render.graph.ChartRenderer.java

protected void setSeriesStyles(AbstractRenderer renderer, UIChart comp, int index, UIDataItem item) {
    if (!item.isShowLegend() || item.getLegend() == null) {
        renderer.setSeriesVisibleInLegend(index, false);
    }/*from w w w  .  j  ava  2s.c  om*/

    Paint color = item.getColor();
    if (color != null) {
        renderer.setSeriesPaint(index, color);
    }

    Paint outlineColor = item.getOutlineColor();
    if (outlineColor == null) {
        outlineColor = comp.getOutlineColor();
        if (outlineColor == null) {
            outlineColor = renderer.getSeriesPaint(index);
            if (outlineColor instanceof Color) {
                outlineColor = ((Color) outlineColor).darker();
            }
        }
    }
    renderer.setSeriesOutlinePaint(index, outlineColor);

    Boolean drawItemLabel = item.getDrawItemLabel();
    if (drawItemLabel != null) {
        renderer.setSeriesItemLabelsVisible(index, drawItemLabel);
        if (drawItemLabel) {
            if (renderer instanceof CategoryItemRenderer) {
                CategoryItemRenderer r = (CategoryItemRenderer) renderer;
                if (r.getBaseItemLabelGenerator() == null) {
                    r.setSeriesItemLabelGenerator(index, new StandardCategoryItemLabelGenerator());
                }
            } else if (renderer instanceof XYItemRenderer) {
                XYItemRenderer r = (XYItemRenderer) renderer;
                if (r.getBaseItemLabelGenerator() == null) {
                    r.setSeriesItemLabelGenerator(index, new StandardXYItemLabelGenerator());
                }
            }
        }
    }

    Paint itemLabelColor = item.getItemLabelColor();
    if (itemLabelColor != null) {
        renderer.setSeriesItemLabelPaint(index, itemLabelColor);
    }

    Font itemLabelFont = item.getItemLabelFont();
    if (itemLabelFont != null) {
        renderer.setSeriesItemLabelFont(index, itemLabelFont);
    }
}

From source file:com.xpn.xwiki.plugin.charts.ChartCustomizer.java

public static void customizeRenderer(AbstractRenderer renderer, ChartParams params) {
    if (params.get(ChartParams.RENDERER_COLOR) != null) {
        renderer.setPaint(params.getColor(ChartParams.RENDERER_COLOR));
    }//w w w. ja  v a  2s. c o m
    if (params.get(ChartParams.RENDERER_STROKE) != null) {
        renderer.setStroke(params.getStroke(ChartParams.RENDERER_STROKE));
    }
    if (params.get(ChartParams.RENDERER_SHAPE) != null) {
        renderer.setShape(params.getShape(ChartParams.RENDERER_SHAPE));
    }
    if (params.get(ChartParams.RENDERER_FILL_COLOR) != null) {
        renderer.setFillPaint(params.getColor(ChartParams.RENDERER_FILL_COLOR));
    }
    if (params.get(ChartParams.RENDERER_OUTLINE_COLOR) != null) {
        renderer.setOutlinePaint(params.getColor(ChartParams.RENDERER_OUTLINE_COLOR));
    }
    if (params.get(ChartParams.RENDERER_OUTLINE_STROKE) != null) {
        renderer.setOutlineStroke(params.getStroke(ChartParams.RENDERER_OUTLINE_STROKE));
    }
    if (params.get(ChartParams.RENDERER_ITEM_LABEL_VISIBLE) != null) {
        if (params.getBoolean(ChartParams.RENDERER_ITEM_LABEL_VISIBLE).booleanValue()) {
            renderer.setItemLabelsVisible(true);
            if (params.get(ChartParams.RENDERER_ITEM_LABEL_COLOR) != null) {
                renderer.setItemLabelPaint(params.getColor(ChartParams.RENDERER_ITEM_LABEL_COLOR));
            }
            if (params.get(ChartParams.RENDERER_ITEM_LABEL_FONT) != null) {
                renderer.setItemLabelFont(params.getFont(ChartParams.RENDERER_ITEM_LABEL_FONT));
            }
        } else {
            renderer.setItemLabelsVisible(false);
        }
    }
    if (params.get(ChartParams.RENDERER_SERIES_VISIBLE) != null) {
        renderer.setSeriesVisible(params.getBoolean(ChartParams.RENDERER_SERIES_VISIBLE));
    }
    if (params.get(ChartParams.RENDERER_SERIES_VISIBLE_IN_LEGEND) != null) {
        renderer.setSeriesVisibleInLegend(params.getBoolean(ChartParams.RENDERER_SERIES_VISIBLE_IN_LEGEND));
    }

    // series
    if (params.get(ChartParams.RENDERER_SERIES_COLORS) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_COLORS);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesPaint(i, (Color) list.get(i));
        }
        // TODO: how the f*** do we get rid of the default values -- we don't! :(
        // for (int i = list.size(); renderer.getSeriesPaint(i) != null; i++) {
        // renderer.setSeriesPaint(i, null);
        // }
    }

    if (params.get(ChartParams.RENDERER_SERIES_STROKES) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_STROKES);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesStroke(i, (Stroke) list.get(i));
        }
    }

    if (params.get(ChartParams.RENDERER_SERIES_SHAPES) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_SHAPES);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesShape(i, (Shape) list.get(i));
        }
    }

    if (params.get(ChartParams.RENDERER_SERIES_FILL_COLORS) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_FILL_COLORS);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesFillPaint(i, (Color) list.get(i));
        }
    }

    if (params.get(ChartParams.RENDERER_SERIES_OUTLINE_COLORS) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_OUTLINE_COLORS);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesOutlinePaint(i, (Color) list.get(i));
        }
    }

    if (params.get(ChartParams.RENDERER_SERIES_OUTLINE_STROKES) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_OUTLINE_STROKES);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesOutlineStroke(i, (Stroke) list.get(i));
        }
    }

    if (params.get(ChartParams.RENDERER_SERIES_ITEM_LABEL_VISIBLES) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_ITEM_LABEL_VISIBLES);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesItemLabelsVisible(i, (Boolean) list.get(i));
        }
    }

    if (params.get(ChartParams.RENDERER_SERIES_ITEM_LABEL_COLORS) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_ITEM_LABEL_COLORS);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesItemLabelPaint(i, (Color) list.get(i));
        }
    }

    if (params.get(ChartParams.RENDERER_SERIES_ITEM_LABEL_FONTS) != null) {
        List list = params.getList(ChartParams.RENDERER_SERIES_ITEM_LABEL_FONTS);
        for (int i = 0; i < list.size(); i++) {
            renderer.setSeriesItemLabelFont(i, (Font) list.get(i));
        }
    }
}

From source file:com.appnativa.rare.ui.chart.jfreechart.ChartHandler.java

protected void customizeSeriesAttributes(ChartPanel chartPanel, ChartDefinition cd, Plot plot,
        boolean multiset) {
    List<RenderableDataItem> rows = cd.getSeries();
    ChartInfo ci = (ChartInfo) cd.getChartHandlerInfo();
    List<SeriesData> seriesData = ci.seriesData;
    int len = (seriesData == null) ? 0 : seriesData.size();

    if (len == 0) {
        return;//from  w ww. j  a va2s . c  om
    }

    ChartDataItem di;
    Paint p = null;
    iPainter painter;
    BasicStroke stroke = null;
    BasicStroke ostroke = null;
    RareBarPainter barPainter = null;
    AbstractRenderer r;
    Object o;
    UIColor c;
    PlotInformation pi = cd.getPlotInformation();

    if (pi != null) {
        float lt = pi.getLineThickness();
        float ot = pi.getOutlineThickness();

        if (lt > 1) {
            stroke = new BasicStroke(lt);
        }

        if (ot > 1) {
            ostroke = (ot == lt) ? stroke : new BasicStroke(ot);
        }
    }

    int n = 0;

    for (int i = 0; i < len; i++) {
        SeriesData data = seriesData.get(i);

        di = (ChartDataItem) rows.get(data.seriesIndex);

        if ((di == null) || di.isEmpty()) {
            continue;
        }

        p = null;
        o = ((XYPlot) plot).getRenderer(multiset ? i : 0);

        if (!(o instanceof AbstractRenderer)) {
            continue;
        }

        UIColor fc = data.fillColor;
        UIColor oc = data.outlineColor;

        r = (AbstractRenderer) o;
        painter = di.getComponentPainter();

        if (painter == null) {
            c = di.getBackground();

            if (c instanceof UIColorShade) {
                painter = ((UIColorShade) c).getBackgroundPainter();

                if (painter instanceof UISimpleBackgroundPainter) {
                    p = painter.getBackgroundColor();
                    painter = null;
                }
            } else {
                p = c;
            }
        }

        if ((painter == null) && (p == null)) {
            painter = cd.getRangeAxis().getComponentPainter();

            if (painter == null) {
                c = cd.getRangeAxis().getBackground();

                if (c instanceof UIColorShade) {
                    painter = ((UIColorShade) c).getBackgroundPainter();

                    if (painter instanceof UISimpleBackgroundPainter) {
                        p = painter.getBackgroundColor();
                        painter = null;
                    }
                } else {
                    p = c;
                }
            }
        }

        if (painter != null) {
            if (r instanceof XYBarRenderer) {
                if (barPainter == null) {
                    barPainter = new RareBarPainter(chartPanel);
                }

                XYBarRenderer xr = (XYBarRenderer) r;

                xr.setBarPainter(barPainter);
                p = ChartHelper.getPaint(painter);
            } else if (r instanceof BarRenderer) {
                if (barPainter == null) {
                    barPainter = new RareBarPainter(chartPanel);
                }

                BarRenderer xr = (BarRenderer) r;

                xr.setItemMargin(0);
                xr.setBarPainter(barPainter);
                p = ChartHelper.getPaint(painter);
            } else {
                iPlatformPaint pp = painter.getPaint(50, 50);

                p = (pp == null) ? null : pp.getPaint();
            }
        }

        if (p == null) {
            p = di.getBackground();
        }

        if (p == null) {
            p = getDefaultColor(i);
        }

        n = multiset ? 0 : i;
        r.setSeriesPaint(n, p);

        if (r instanceof XYAreaSplineRendererEx) {
            r.setSeriesFillPaint(n, p);
        }

        float lt = getSeriesLineThickness(di, -1);

        if (lt != -1) {
            r.setSeriesStroke(n, new BasicStroke(lt));
        } else if (stroke != null) {
            r.setSeriesStroke(n, stroke);
        }

        lt = getSeriesOutlineLineThickness(di, -1);

        if (lt != -1) {
            r.setSeriesOutlineStroke(n, ostroke);
        } else if (ostroke != null) {
            r.setSeriesOutlineStroke(n, ostroke);
        }

        if (r instanceof XYLineAndShapeRenderer) {
            ShapeStyle ss = getSeriesShapeStyle(pi, di);
            XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;

            switch (ss) {
            case FILLED:
                renderer.setBaseShapesVisible(true);
                renderer.setBaseShapesFilled(true);
                renderer.setUseFillPaint(true);
                renderer.setSeriesFillPaint(n, (fc == null) ? p : fc.getPaint());

                break;

            case OUTLINED:
                renderer.setBaseShapesVisible(true);
                renderer.setUseOutlinePaint(true);
                renderer.setDrawOutlines(true);
                renderer.setSeriesOutlinePaint(n, (oc == null) ? p : oc.getPaint());

                break;

            case FILLED_AND_OUTLINED:
                renderer.setSeriesOutlinePaint(n, (oc == null) ? p : oc.getPaint());
                renderer.setSeriesFillPaint(n, (fc == null) ? UIColor.WHITE.getPaint() : fc.getPaint());
                renderer.setBaseShapesVisible(true);
                renderer.setDrawOutlines(true);
                renderer.setBaseShapesFilled(true);
                renderer.setUseFillPaint(true);
                renderer.setUseOutlinePaint(true);

                break;

            default:
                renderer.setBaseShapesVisible(false);

                break;
            }

            if (renderer.getBaseShapesVisible()) {
                renderer.setSeriesShape(n, getDefaultShape(i));
            }
        }
    }
}

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

protected JFreeChart drawChart(ChartConfig chartConfig, final Dataset ds) {
    JFreeChart chart = null;// w ww  .ja  v  a2 s . 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;
}