|
|||
|
Hi,
I am trying to use the charts API from an RCP application. I've just grabbed Galileo so I'm using BIRT 2.5 through a plugin project. I have basically taken this old example (and changed the dependencies to match the new package structure): http://www.eclipse.org/articles/arti...ine/index.html (It also crashed on the same line when I tried one of the built-in examples in the plugin jar) The stack trace is below, any advice on why this is not working would be very much appreciated. Thankyou. java.lang.NullPointerException at org.eclipse.birt.chart.device.swt.SwtTextMetrics.getHeight(SwtTextMetrics.java:178) at org.eclipse.birt.chart.computation.Methods.computeFontHeight(Methods.java:1247) at org.eclipse.birt.chart.computation.BIRTChartComputation.computeFontHeight(BIRTChartComputation.java:30) at org.eclipse.birt.chart.computation.EllipsisHelper$SimpleTester.<init>(EllipsisHelper.java:213) at org.eclipse.birt.chart.computation.EllipsisHelper.createSimpleTester(EllipsisHelper.java:176) at org.eclipse.birt.chart.computation.EllipsisHelper.simpleInstance(EllipsisHelper.java:183) at org.eclipse.birt.chart.computation.LabelLimiter.limitLabelSize(LabelLimiter.java:256) at org.eclipse.birt.chart.computation.LabelLimiter.limitLabelSize(LabelLimiter.java:231) at org.eclipse.birt.chart.model.layout.impl.TitleBlockImpl.computeBox(TitleBlockImpl.java:114) at org.eclipse.birt.chart.model.layout.impl.LabelBlockImpl.getPreferredSize(LabelBlockImpl.java:268) at org.eclipse.birt.chart.internal.layout.LayoutManager$ChartLayout.<init>(LayoutManager.java:111) at org.eclipse.birt.chart.internal.layout.LayoutManager.doLayout_tmp(LayoutManager.java:1145) at org.eclipse.birt.chart.internal.layout.LayoutManager.doLayout(LayoutManager.java:1310) at org.eclipse.birt.chart.factory.Generator.build(Generator.java:1058) at com.ibm.examples.chart.widget.ChartCanvas.buildChart(ChartCanvas.java:127) at com.ibm.examples.chart.widget.ChartCanvas.access$1(ChartCanvas.java:120) at com.ibm.examples.chart.widget.ChartCanvas$2.controlResized(ChartCanvas.java:111) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:222) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1008) at org.eclipse.swt.widgets.Control.WM_SIZE(Control.java:4594) at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:285) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1523) at org.eclipse.swt.widgets.Canvas.WM_SIZE(Canvas.java:455) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4019) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:342) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4589) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2404) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) at org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:4751) at org.eclipse.swt.widgets.Canvas.WM_WINDOWPOSCHANGED(Canvas.java:461) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4029) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:342) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4589) at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1316) at org.eclipse.swt.widgets.Control.setBounds(Control.java:2781) at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:893) at org.eclipse.swt.widgets.Control.setBounds(Control.java:2742) at org.eclipse.swt.widgets.Control.setSize(Control.java:3256) at com.ibm.examples.chart.editors.SampleEditor.createPartControl(SampleEditor.java:137) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:662) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:462) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313) at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180) at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270) at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473) at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256) at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1209) at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1608) at org.eclipse.ui.internal.PartStack.add(PartStack.java:499) at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103) at org.eclipse.ui.internal.PartStack.add(PartStack.java:485) at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112) at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63) at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225) at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:213) at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:778) at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:677) at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:638) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2854) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2762) at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2754) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2705) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2701) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2685) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2668) at com.ibm.examples.chart.actions.SampleAction.run(SampleAction.java:55) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at com.ibm.examples.chart.Application.run(Application.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:574) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311) at org.eclipse.equinox.launcher.Main.main(Main.java:1287) |
|
|||
|
Craig,
Take a look at these examples. There is one in the download that shows how to call the chart engine in an RCP app. http://www.birt-exchange.org/devshar...t/#description Jason Craig H wrote: > Hi, > > I am trying to use the charts API from an RCP application. I've just > grabbed Galileo so I'm using BIRT 2.5 through a plugin project. > > I have basically taken this old example (and changed the dependencies to > match the new package structure): > http://www.eclipse.org/articles/arti...ine/index.html > > > (It also crashed on the same line when I tried one of the built-in > examples in the plugin jar) > > The stack trace is below, any advice on why this is not working would be > very much appreciated. > > Thankyou. > > > java.lang.NullPointerException > at > org.eclipse.birt.chart.device.swt.SwtTextMetrics.getHeight(SwtTextMetrics.java:178) > > at > org.eclipse.birt.chart.computation.Methods.computeFontHeight(Methods.java:1247) > > at > org.eclipse.birt.chart.computation.BIRTChartComputation.computeFontHeight(BIRTChartComputation.java:30) > > at > org.eclipse.birt.chart.computation.EllipsisHelper$SimpleTester.<init>(EllipsisHelper.java:213) > > at > org.eclipse.birt.chart.computation.EllipsisHelper.createSimpleTester(EllipsisHelper.java:176) > > at > org.eclipse.birt.chart.computation.EllipsisHelper.simpleInstance(EllipsisHelper.java:183) > > at > org.eclipse.birt.chart.computation.LabelLimiter.limitLabelSize(LabelLimiter.java:256) > > at > org.eclipse.birt.chart.computation.LabelLimiter.limitLabelSize(LabelLimiter.java:231) > > at > org.eclipse.birt.chart.model.layout.impl.TitleBlockImpl.computeBox(TitleBlockImpl.java:114) > > at > org.eclipse.birt.chart.model.layout.impl.LabelBlockImpl.getPreferredSize(LabelBlockImpl.java:268) > > at > org.eclipse.birt.chart.internal.layout.LayoutManager$ChartLayout.<init>(LayoutManager.java:111) > > at > org.eclipse.birt.chart.internal.layout.LayoutManager.doLayout_tmp(LayoutManager.java:1145) > > at > org.eclipse.birt.chart.internal.layout.LayoutManager.doLayout(LayoutManager.java:1310) > > at org.eclipse.birt.chart.factory.Generator.build(Generator.java:1058) > at > com.ibm.examples.chart.widget.ChartCanvas.buildChart(ChartCanvas.java:127) > at > com.ibm.examples.chart.widget.ChartCanvas.access$1(ChartCanvas.java:120) > at > com.ibm.examples.chart.widget.ChartCanvas$2.controlResized(ChartCanvas.java:111) > > at > org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:222) > at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) > at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) > at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027) > at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1008) > at org.eclipse.swt.widgets.Control.WM_SIZE(Control.java:4594) > at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:285) > at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1523) > at org.eclipse.swt.widgets.Canvas.WM_SIZE(Canvas.java:455) > at org.eclipse.swt.widgets.Control.windowProc(Control.java:4019) > at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:342) > at org.eclipse.swt.widgets.Display.windowProc(Display.java:4589) > at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) > at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2404) > at > org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:80) > at > org.eclipse.swt.widgets.Control.WM_WINDOWPOSCHANGED(Control.java:4751) > at org.eclipse.swt.widgets.Canvas.WM_WINDOWPOSCHANGED(Canvas.java:461) > at org.eclipse.swt.widgets.Control.windowProc(Control.java:4029) > at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:342) > at org.eclipse.swt.widgets.Display.windowProc(Display.java:4589) > at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) > at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1316) > at org.eclipse.swt.widgets.Control.setBounds(Control.java:2781) > at org.eclipse.swt.widgets.Composite.setBounds(Composite.java:893) > at org.eclipse.swt.widgets.Control.setBounds(Control.java:2742) > at org.eclipse.swt.widgets.Control.setSize(Control.java:3256) > at > com.ibm.examples.chart.editors.SampleEditor.createPartControl(SampleEditor.java:137) > > at > org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:662) > > at > org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:462) > > at > org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) > > at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313) > at > org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180) > > at > org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270) > > at > org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) > > at > org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473) > > at > org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256) > > at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1209) > at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1608) > at org.eclipse.ui.internal.PartStack.add(PartStack.java:499) > at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103) > at org.eclipse.ui.internal.PartStack.add(PartStack.java:485) > at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112) > at > org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63) > > at > org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225) > > at > org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:213) > > at > org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:778) > > at > org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:677) > > at > org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:638) > at > org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2854) > > at > org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2762) > > at > org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2754) > at > org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2705) > at > org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) > at > org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2701) > at > org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2685) > at > org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2668) > at > com.ibm.examples.chart.actions.SampleAction.run(SampleAction.java:55) > at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) > at > org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) > > at > org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) > > at > org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) > > at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) > at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) > at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880) > at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473) > at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405) > at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369) > at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221) > at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500) > at > org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) > > at > org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) > at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) > at com.ibm.examples.chart.Application.run(Application.java:30) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:574) > > at > org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) > > at > org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) > > at > org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) > > at > org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) > > at > org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) > at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) > at org.eclipse.equinox.launcher.Main.run(Main.java:1311) > at org.eclipse.equinox.launcher.Main.main(Main.java:1287) > > |
|
|||
|
Thanks for the tip, Jason.
I imported the project 'org.eclipse.birt.examples.rcpchartengine'... there are two missing plugin dependencies: - org.eclipse.birt.chart - org.eclipse.birt.chart.runtime I checked, and I have all 6 BIRT packages installed through eclipse update. I tried just removing those plugin dependencies, but then I get this exception when I try to run the project: 02/07/2009 3:29:20 PM org.eclipse.birt.chart.util.PluginSettings getRenderer SEVERE: (ECLIPSE-ENV) Could not find series renderer impl for org.eclipse.birt.chart.model.type.impl.BarSeriesImpl java.lang.NullPointerException at org.eclipse.birt.chart.render.BaseRenderer.instances(BaseRenderer.java:1953) at org.eclipse.birt.chart.factory.Generator.build(Generator.java:1026) ...etc... |
|
|||
|
Craig,
Did you take a look at the example target directory that contains a target set of plugins required? Jason Craig H wrote: > Thanks for the tip, Jason. > > I imported the project 'org.eclipse.birt.examples.rcpchartengine'... > there are two missing plugin dependencies: > - org.eclipse.birt.chart > - org.eclipse.birt.chart.runtime > > I checked, and I have all 6 BIRT packages installed through eclipse update. > > I tried just removing those plugin dependencies, but then I get this > exception when I try to run the project: > > 02/07/2009 3:29:20 PM org.eclipse.birt.chart.util.PluginSettings > getRenderer > SEVERE: (ECLIPSE-ENV) Could not find series renderer impl for > org.eclipse.birt.chart.model.type.impl.BarSeriesImpl > java.lang.NullPointerException > at > org.eclipse.birt.chart.render.BaseRenderer.instances(BaseRenderer.java:1953) > > at org.eclipse.birt.chart.factory.Generator.build(Generator.java:1026) > ..etc... > |
|
|||
|
Hi Jason,
I opened the .target file, and it shows those two plugins can't be located. I downloaded the BIRT all-in-one release also, to check that I didn't have some packaging problem, and tried there with the same result. org.eclipse.birt.chart and org.eclipse.birt.chart.runtime don't seem to exist in either my original eclipse 3.5 setup, or in the BIRT all-in-one I just downloaded... |
|
|||
|
Craig,
I apologize. It appears that 2.5 did a little repackaging. Remove both of the plugins from the dependency list. The reason you get the could not find series renderer message most likely has to do with the chart framework locating the org.eclipse.birt.chart.engine.extension plugin. Either launch will all plugins enabled or add the chart plugins to the target. Jason Craig H wrote: > Hi Jason, > > I opened the .target file, and it shows those two plugins can't be located. > > I downloaded the BIRT all-in-one release also, to check that I didn't > have some packaging problem, and tried there with the same result. > > org.eclipse.birt.chart and org.eclipse.birt.chart.runtime don't seem to > exist in either my original eclipse 3.5 setup, or in the BIRT all-in-one > I just downloaded... > |
| Thread Tools | |
| Display Modes | |
|
|