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)
>
>