Home » Archived » BIRT » Meter Chart can't Show
Meter Chart can't Show [message #154669] |
Thu, 20 April 2006 05:38  |
Eclipse User |
|
|
|
Originally posted by: sumanta.aunwesha.com
Hi,
I can not see the meter chart. It only show the backgroung plot color.It
did not show the chart.
I have given the code.
public static final Chart createSDialSRegionChart() {
DialChart dChart = (DialChart) DialChartImpl.create();
dChart.setDialSuperimposition(true);
dChart.setGridColumnCount(2);
dChart.setSeriesThickness(25);
// Title/Plot
dChart.getBlock().setBackground(ColorDefinitionImpl.WHITE()) ;
Plot p = dChart.getPlot();
p.getClientArea().setBackground(ColorDefinitionImpl.CREAM()) ;
p.getClientArea().getOutline().setVisible(true);
p.getOutline().setVisible(true);
dChart.getTitle().getLabel().getCaption().setValue("Meter Chart");
dChart.getTitle().getOutline().setVisible(true);
// Legend
Legend lg = dChart.getLegend();
LineAttributes lia = lg.getOutline();
lg.getText().getFont().setSize(6);
lia.setStyle(LineStyle.SOLID_LITERAL);
lg.getInsets().setLeft(5);
lg.getInsets().setRight(5);
lg.setBackground(null);
lg.getOutline().setVisible(true);
lg.setShowValue(true);
lg.getClientArea().setBackground(ColorDefinitionImpl.PINK()) ;
lg.getClientArea().getOutline().setVisible(true);
lg.getTitle().getCaption().getFont().setSize(8);
lg.getTitle().setInsets(InsetsImpl.create(10, 10, 10, 10));
lg.setTitlePosition(Position.ABOVE_LITERAL);
// Data Set
TextDataSet categoryValues = TextDataSetImpl
.create(new String[] { "Speed" });
SeriesDefinition sd = SeriesDefinitionImpl.create();
dChart.getSeriesDefinitions().add(sd);
Series seCategory = (Series) SeriesImpl.create();
final Fill[] fiaBase = {
ColorDefinitionImpl.ORANGE(),
GradientImpl.create(ColorDefinitionImpl.create(225, 225, 255),
ColorDefinitionImpl.create(255, 255, 225), -35, false),
ColorDefinitionImpl.RED(), ColorDefinitionImpl.RED(),
ColorDefinitionImpl.GREEN(),
ColorDefinitionImpl.BLUE().brighter(),
ColorDefinitionImpl.CYAN().darker(), };
sd.getSeriesPalette().getEntries().clear();
for (int i = 0; i < fiaBase.length; i++) {
System.out.println("========fiaBase[i]=========="+fiaBase[i]);
sd.getSeriesPalette().getEntries().add(fiaBase[i]);
}
seCategory.setDataSet(categoryValues);
sd.getSeries().add(seCategory);
SeriesDefinition sdCity = SeriesDefinitionImpl.create();
// Dial
DialSeries seDial = (DialSeries) DialSeriesImpl.create();
seDial.setDataSet(NumberDataSetImpl.create(new double[] { 60 }));
seDial.getDial().setFill(
GradientImpl.create(ColorDefinitionImpl.create(225, 225, 255),
ColorDefinitionImpl.create(255, 255, 225), -35, false));
seDial.getNeedle().setDecorator(LineDecorator.ARROW_LITERAL) ;
seDial.getDial().getMinorGrid().getTickAttributes().setVisib le(true);
seDial.getDial().getMinorGrid().getTickAttributes().setColor (
ColorDefinitionImpl.RED());
seDial.getDial().getMinorGrid().setTickStyle(TickStyle.BELOW _LITERAL);
seDial.getDial().getScale().setMin(NumberDataElementImpl.cre ate(0));
seDial.getDial().getScale().setMax(NumberDataElementImpl.cre ate(180));
seDial.getDial().getScale().setStep(30);
seDial.getLabel().setOutline(
LineAttributesImpl.create(ColorDefinitionImpl.GREY().darker( ),
LineStyle.SOLID_LITERAL, 1));
seDial.getLabel().setBackground(ColorDefinitionImpl.GREY().b righter());
DialRegion dregion21 = DialRegionImpl.create();
dregion21.setFill(ColorDefinitionImpl.GREEN());
dregion21.setStartValue(NumberDataElementImpl.create(0));
dregion21.setEndValue(NumberDataElementImpl.create(80));
seDial.getDial().getDialRegions().add(dregion21);
sd.getSeriesDefinitions().add(sdCity);
sdCity.getSeries().add(seDial);
return dChart;
}
can any one help me?
|
|
|
Re: Meter Chart can't Show [message #154724 is a reply to message #154669] |
Thu, 20 April 2006 07:05   |
Eclipse User |
|
|
|
Did you try the DialChartViewer code in the org.eclipse.birt.chart.example
plugin? It works for me for all dial charts (one of them is very similar to
the code you posted).
Thanks,
David
"sumanta" <sumanta@aunwesha.com> wrote in message
news:c549817fe53afa7fc9d1516b71a31a9d$1@www.eclipse.org...
> Hi,
>
> I can not see the meter chart. It only show the backgroung plot color.It
> did not show the chart.
>
> I have given the code.
>
> public static final Chart createSDialSRegionChart() {
> DialChart dChart = (DialChart) DialChartImpl.create();
> dChart.setDialSuperimposition(true);
> dChart.setGridColumnCount(2);
> dChart.setSeriesThickness(25);
>
> // Title/Plot
> dChart.getBlock().setBackground(ColorDefinitionImpl.WHITE()) ;
> Plot p = dChart.getPlot();
> p.getClientArea().setBackground(ColorDefinitionImpl.CREAM()) ;
> p.getClientArea().getOutline().setVisible(true);
> p.getOutline().setVisible(true);
>
> dChart.getTitle().getLabel().getCaption().setValue("Meter Chart");
> dChart.getTitle().getOutline().setVisible(true);
>
> // Legend
> Legend lg = dChart.getLegend();
> LineAttributes lia = lg.getOutline();
> lg.getText().getFont().setSize(6);
> lia.setStyle(LineStyle.SOLID_LITERAL);
> lg.getInsets().setLeft(5);
> lg.getInsets().setRight(5);
> lg.setBackground(null);
> lg.getOutline().setVisible(true);
> lg.setShowValue(true);
> lg.getClientArea().setBackground(ColorDefinitionImpl.PINK()) ;
>
> lg.getClientArea().getOutline().setVisible(true);
> lg.getTitle().getCaption().getFont().setSize(8);
> lg.getTitle().setInsets(InsetsImpl.create(10, 10, 10, 10));
> lg.setTitlePosition(Position.ABOVE_LITERAL);
>
> // Data Set
> TextDataSet categoryValues = TextDataSetImpl
> .create(new String[] { "Speed" });
>
> SeriesDefinition sd = SeriesDefinitionImpl.create();
> dChart.getSeriesDefinitions().add(sd);
> Series seCategory = (Series) SeriesImpl.create();
>
> final Fill[] fiaBase = {
> ColorDefinitionImpl.ORANGE(),
> GradientImpl.create(ColorDefinitionImpl.create(225, 225, 255),
> ColorDefinitionImpl.create(255, 255, 225), -35, false),
> ColorDefinitionImpl.RED(), ColorDefinitionImpl.RED(),
> ColorDefinitionImpl.GREEN(),
> ColorDefinitionImpl.BLUE().brighter(),
> ColorDefinitionImpl.CYAN().darker(), };
> sd.getSeriesPalette().getEntries().clear();
> for (int i = 0; i < fiaBase.length; i++) {
> System.out.println("========fiaBase[i]=========="+fiaBase[i]);
> sd.getSeriesPalette().getEntries().add(fiaBase[i]);
> }
>
> seCategory.setDataSet(categoryValues);
> sd.getSeries().add(seCategory);
>
> SeriesDefinition sdCity = SeriesDefinitionImpl.create();
>
> // Dial
> DialSeries seDial = (DialSeries) DialSeriesImpl.create();
> seDial.setDataSet(NumberDataSetImpl.create(new double[] { 60 }));
> seDial.getDial().setFill(
> GradientImpl.create(ColorDefinitionImpl.create(225, 225, 255),
> ColorDefinitionImpl.create(255, 255, 225), -35, false));
> seDial.getNeedle().setDecorator(LineDecorator.ARROW_LITERAL) ;
> seDial.getDial().getMinorGrid().getTickAttributes().setVisib le(true);
> seDial.getDial().getMinorGrid().getTickAttributes().setColor (
> ColorDefinitionImpl.RED());
> seDial.getDial().getMinorGrid().setTickStyle(TickStyle.BELOW _LITERAL);
> seDial.getDial().getScale().setMin(NumberDataElementImpl.cre ate(0));
> seDial.getDial().getScale().setMax(NumberDataElementImpl.cre ate(180));
> seDial.getDial().getScale().setStep(30);
> seDial.getLabel().setOutline(
> LineAttributesImpl.create(ColorDefinitionImpl.GREY().darker( ),
> LineStyle.SOLID_LITERAL, 1));
> seDial.getLabel().setBackground(ColorDefinitionImpl.GREY().b righter());
>
> DialRegion dregion21 = DialRegionImpl.create();
> dregion21.setFill(ColorDefinitionImpl.GREEN());
> dregion21.setStartValue(NumberDataElementImpl.create(0));
> dregion21.setEndValue(NumberDataElementImpl.create(80));
> seDial.getDial().getDialRegions().add(dregion21);
>
> sd.getSeriesDefinitions().add(sdCity);
> sdCity.getSeries().add(seDial);
>
> return dChart;
> }
>
>
>
> can any one help me?
>
|
|
| | |
Re: Meter Chart can't Show [message #154841 is a reply to message #154794] |
Thu, 20 April 2006 09:38  |
Eclipse User |
|
|
|
Originally posted by: sumanta.aunwesha.com
Hi,
Now i can see the meter chart but i am getting error in tomcat console.
The Eroor Code is:---
SEVERE: Exception
org.eclipse.birt.chart.exception.ChartException: $NO-RB$ output == null!
at
org.eclipse.birt.chart.device.image.JavaxImageIOWriter.after (JavaxIma
geIOWriter.java:260)
at
org.eclipse.birt.chart.factory.Generator.render(Generator.ja va:554)
at
PortalMgmt.servletfile.PortalDashBoardChart.doGet(PortalDash BoardChar
t.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFi lter(Appl
icationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(App licationF
ilterChain.java:173)
at filters.ReqEncodingFilter.doFilter(ReqEncodingFilter.java:65 )
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFi lter(Appl
icationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(App licationF
ilterChain.java:173)
at
clime.messadmin.core.MessAdminFilter.doFilter(MessAdminFilte r.java:16
6)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFi lter(Appl
icationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(App licationF
ilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(Standar dWrapperV
alve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(Standar dContextV
alve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHo stValve.j
ava:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo rtValve.j
ava:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(Standard EngineVal
ve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd apter.jav
a:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Proce ssor.java
:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11Connection Handler.p
rocessConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(Poo lTcpEndpo
int.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt( LeaderFol
lowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.ru n(ThreadP
ool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException: output == null!
at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:3 73)
at
org.eclipse.birt.chart.device.image.JavaxImageIOWriter.after (JavaxIma
geIOWriter.java:247)
... 24 more
---------------------------
Also i have given the program code bellow:--
Bounds bo = BoundsImpl.create(0,0,300,300);
BufferedImage bi = new BufferedImage( (int) bo.getWidth( ), (int)
bo.getHeight( ), BufferedImage.TYPE_INT_ARGB );
try{
IDeviceRenderer idr = PluginSettings.instance( ) .getDevice(
"dv.PNG" );
bo.scale(72d / idr.getDisplayServer().getDpiResolution());
Chart cm1 = createSDialSRegionChart();
cm1.setDimension(ChartDimension.TWO_DIMENSIONAL_LITERAL);
RunTimeContext rtc = new RunTimeContext( );
rtc.setLocale( Locale.getDefault( ) );
Generator gr1 = Generator.instance( );
GeneratedChartState gcs1 = null;
gcs1 = gr1.build( idr.getDisplayServer( ), cm1, null, bo, rtc
);
idr.setProperty( IDeviceRenderer.GRAPHICS_CONTEXT,
bi.getGraphics() );
idr.setProperty( IDeviceRenderer.CACHED_IMAGE, bi );
gr1.render(idr,gcs1);
}
catch (ChartException x)
{
x.printStackTrace();
}
response.setContentType("image/PNG");
ServletOutputStream sos = response.getOutputStream();
ImageIO.write(bi,"png",sos);
|
|
|
Goto Forum:
Current Time: Mon May 12 05:47:51 EDT 2025
Powered by FUDForum. Page generated in 0.06433 seconds
|