Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[birt-charting-dev] How to access report context from ChartEventHandlerAdapter

 
 
I have a BIRT report that contains a line chart. I am trying to access the report context from within a ChartEventHandlerAdapter as follows:-
 
import org.eclipse.birt.report.engine.script.internal.ReportContextImpl;
public class ResponseTimesChartEventHandlerAdapter extends ChartEventHandlerAdapter {
   public void beforeGeneration(Chart cm, IChartScriptContext icsc) {
       IExternalContext ctx = icsc.getExternalContext();
       ReportContextImpl reportContext = (ReportContextImpl)ctx.getObject();
    .........
 
  

When I preview the report I get the following exception:-
 
Chart ResponseTimeChart:
- $NO-RB$ org.eclipse.birt.report.engine.script.internal.ReportContextImpl
org.eclipse.birt.report.engine.script.internal.ReportContextImpl ( 1 time(s) )
detail : org.eclipse.birt.chart.exception.ChartException: $NO-RB$ org.eclipse.birt.report.engine.script.internal.ReportContextImpl
 at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl.onRowSets(ChartReportItemPresentationImpl.java :529)
 at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.processExtendedContent(LocalizedContentVisitor.java:591)
 at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.visitForeign (LocalizedContentVisitor.java:347)
 at org.eclipse.birt.report.engine.content.impl.ForeignContent.accept(ForeignContent.java:52)
 at org.eclipse.birt.report.engine.presentation.LocalizedContentVisitor.localize(LocalizedContentVisitor.java :107)
 at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:38)
 at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layoutChildren(HTMLPageLM.java :123)
 at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:81)
 at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:80)
 at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run (RunAndRenderTask.java:187)
 at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source)
 at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(Unknown Source)
 at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(Unknown Source)
 at org.eclipse.birt.report.service.actionhandler.BirtRunAndRenderActionHandler.__execute(Unknown Source)
 at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute (Unknown Source)
 at org.eclipse.birt.report.presentation.aggregation.layout.EngineFragment.doService(Unknown Source)
 at org.eclipse.birt.report.presentation.aggregation.AbstractBaseFragment.service(Unknown Source)
 at org.eclipse.birt.report.servlet.BirtEngineServlet.__doGet(Unknown Source)
 at org.eclipse.birt.report.servlet.BaseReportEngineServlet.doGet(Unknown Source)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java :740)
 at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java :643)
 at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
 at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:180)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java :171)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.eclipse.tomcat.internal.EclipseErrorReportValve.invoke(EclipseErrorReportValve.java:153)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke (ContainerBase.java:995)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java :643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.coyote.tomcat4.CoyoteAdapter.service( CoyoteAdapter.java:199)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
 at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: org.eclipse.birt.report.engine.script.internal.ReportContextImpl
 at com.vordel.reporting.birt.ResponseTimesChartEventHandlerAdapter.beforeGeneration(ResponseTimesChartEventHandlerAdapter.java :133)
 at org.eclipse.birt.chart.script.ScriptHandler.callJavaFunction(ScriptHandler.java:792)
 at org.eclipse.birt.chart.script.ScriptHandler.callFunction(ScriptHandler.java:1013)
 at org.eclipse.birt.chart.factory.Generator.build (Generator.java:882)
 at org.eclipse.birt.chart.reportitem.ChartReportItemPresentationImpl.onRowSets(ChartReportItemPresentationImpl.java:453)
 ... 52 more
I am casting into the correct object as far as I can make out, but I'm getting a ClassCastException. Presumably there is something wrong in my environment. Has anyone any ideas ?
Thanks,
Melissa
						


Back to the top