Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to customize series fill in area chart via BIRT chart API?
    text
    copied!<p>I am trying to create a gradient fill for a series in an area chart that I am building through the BIRT chart API, but the book "Integrating and Extending BIRT" and the Interwebs seem curiously silent about how to get it to work. It seems no matter what I do, I always get a flat color from the default palette. I've tried using SeriesDefinition.getSeriesPalette().update(Gradient) and even creating my own Palette with the gradient fill in it and setting that on the SeriesDefinition, but to no avail. I've also noticed that if I do not perform a shift() on the Palette, even if it's shift(0), which the Javadocs claim will do nothing, I get NullPointerException when I try to generate the chart:</p> <pre><code>Caused by: java.lang.NullPointerException at org.eclipse.birt.chart.render.Area.renderDataPoints(Area.java:521) at org.eclipse.birt.chart.render.Line.renderSeries(Line.java:570) at org.eclipse.birt.chart.render.AxesRenderer.renderPlot(AxesRenderer.java:2181) at org.eclipse.birt.chart.render.AxesRenderer.render(AxesRenderer.java:314) at org.eclipse.birt.chart.factory.Generator.render(Generator.java:1368) ... 108 more </code></pre> <p>Here's the latest (non-working) code that I've tried:</p> <pre><code>Gradient gradient = FillUtil.createDefaultGradient(BirtReportBuilder.COLOR_WHITE); gradient.setStartColor(ColorDefinitionImpl.WHITE()); gradient.setEndColor(ColorDefinitionImpl.create(76, 116, 131)); gradient.setDirection(90); SeriesDefinition sdY = SeriesDefinitionImpl.create(); sdY.getQuery().setDefinition("\"Quantity\""); Palette pal = PaletteImpl.create(gradient); pal.shift(0); sdY.setSeriesPalette(pal); sdY.getSeries().add(as1); yAxisPrimary.getSeriesDefinitions().add(sdY); </code></pre> <p>So what's the magic incantation to get the BIRT charting API to use my Gradient as the area fill?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload