[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[news.eclipse.tools.gef] Re: Initializing the Grpahical Viewer leads to an exception
|
What does the getModelChildren() method of your EditPart (the one that's
experiencing the NPE) look like? You should be able to figure out the
problem if you step through the AbstractEditPart#refreshChildren() method.
"Ralf Gitzel" <rgitzel@xxxxxxxxxxxxxxxxxxxxx> wrote in message
news:coi739$eh$1@xxxxxxxxxxxxxxxxxx
> Hi,
>
> My GEF editor class has the following method which is similar to the one
> found in the example programs:
>
> protected void initializeGraphicalViewer()
> {
> initToolBar();
> model = project.getModels()[0];
> try
> {
> getGraphicalViewer().setContents(model);
> } catch (Exception e)
> {
> System.out.println("Caught exception");
> e.printStackTrace();
> }
> }
>
> Surprisingly enough, I get the following output:
>
> Caught exception
> java.lang.IndexOutOfBoundsException: Figure.add(...) invalid index
> at org.eclipse.draw2d.Figure.add(Figure.java:110)
> at org.eclipse.draw2d.Figure.add(Figure.java:157)
> at
>
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addChildVisual(AbstractG
raphicalEditPart.java:198)
> at
>
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:19
5)
> at
>
org.eclipse.gef.editparts.AbstractEditPart.refreshChildren(AbstractEditPart.
java:750)
> at
>
org.eclipse.gef.editparts.AbstractEditPart.refresh(AbstractEditPart.java:700
)
> at
>
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refresh(AbstractGraphica
lEditPart.java:554)
> at
>
org.eclipse.gef.editparts.AbstractEditPart.addNotify(AbstractEditPart.java:2
33)
> at
>
org.eclipse.gef.editparts.AbstractGraphicalEditPart.addNotify(AbstractGraphi
calEditPart.java:212)
> at
>
org.eclipse.gef.editparts.AbstractEditPart.addChild(AbstractEditPart.java:19
6)
> at
>
org.eclipse.gef.editparts.ScalableRootEditPart.setContents(ScalableRootEditP
art.java:379)
> at
>
org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents(AbstractEditPart
Viewer.java:581)
> at
>
org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents(AbstractEditPart
Viewer.java:590)
> at
>
omega.test.plugin.editors.OMEGAGraphicalEditor.initializeGraphicalViewer(OME
GAGraphicalEditor.java:67)
> at
>
org.eclipse.gef.ui.parts.GraphicalEditor.createGraphicalViewer(GraphicalEdit
or.java:138)
> at
>
org.eclipse.gef.ui.parts.GraphicalEditor.createPartControl(GraphicalEditor.j
ava:148)
> at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:137)
> at
>
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java
:616)
> at org.eclipse.core.runtime.Platform.run(Platform.java:747)
> at org.eclipse.ui.internal.PartPane.createChildControl(PartPane.java:133)
> at org.eclipse.ui.internal.PartPane.createControl(PartPane.java:205)
> at
>
org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.jav
a:939)
> at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:921)
> at org.eclipse.ui.internal.EditorStack.setSelection(EditorStack.java:196)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1020)
> at org.eclipse.ui.internal.PartStack.add(PartStack.java:290)
> at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:121)
> at
>
org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.ja
va:59)
> at
>
org.eclipse.ui.internal.EditorAreaHelper.openEditor(EditorAreaHelper.java:26
6)
> at org.eclipse.ui.internal.EditorManager$4.run(EditorManager.java:694)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
> at
>
org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:683
)
> at
>
org.eclipse.ui.internal.EditorManager.openInternalEditor(EditorManager.java:
779)
> at
>
org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager
.java:582)
> at
org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:570)
> at
>
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.ja
va:2244)
> at
>
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2177
)
> at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage.java:2169)
> at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2156)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2151)
> at org.eclipse.ui.ide.IDE.openEditor(IDE.java:299)
> at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:96)
> at
>
org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.jav
a:94)
> at
>
org.eclipse.ui.views.navigator.OpenActionGroup.runDefaultAction(OpenActionGr
oup.java:111)
> at
>
org.eclipse.ui.views.navigator.MainActionGroup.runDefaultAction(MainActionGr
oup.java:293)
> at
>
org.eclipse.ui.views.navigator.ResourceNavigator.handleOpen(ResourceNavigato
r.java:624)
> at
>
org.eclipse.ui.views.navigator.ResourceNavigator$6.open(ResourceNavigator.ja
va:388)
> at
>
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:429)
> at
>
org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java
:616)
> at org.eclipse.core.runtime.Platform.run(Platform.java:747)
> at
>
org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:42
7)
> at
>
org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:
635)
> at
>
org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.jav
a:731)
> at
org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:211)
> at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:206)
> at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:238)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
> at
>
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
> at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
> at
>
org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.
java:335)
> at
>
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
> at
>
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
> at org.eclipse.core.launcher.Main.run(Main.java:704)
> at org.eclipse.core.launcher.Main.main(Main.java:688)
>
>
> When I do not catch the exception (which seem to occur only
> *sometimes*(?)), the editor is not created, producing an entry in the
> log. However, when I catch the exception, everything seems to work fine.
> Yet, removing the offending command leads to an empty editor (as
> expected). I have no idea what this is all about and any pointers would
> be greatly appreciated.
>
> Thanks,
> Ralf