Community
Participate
Working Groups
See http://dev.eclipse.org/newslists/news.eclipse.tools.gef/msg08383.html Summary: If a PaletteRoot instance for a palette is repopulated by removing all children and adding the updated list of palette entries and the editor is open, when a tool in the palette is selected, there is a null pointer in the graphical viewer. There is a work around by adding a listener to the palette root and when the children change, obtain the palette viewer and setActiveTool(null); however it would be much cleaner if the PaletteViewer clears the active tool reference if the referenced active tool has been removed. External listeners should not need to know when to update the palette viewer. Exception stack trace: java.lang.NullPointerException at org.eclipse.gef.ui.palette.PaletteViewer.setActiveTool(PaletteViewer.java:36 1) at org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditPart$2.actionPerf ormed(ToolEntryEditPart.java:256) at org.eclipse.draw2d.Clickable.fireActionPerformed(Clickable.java:200) at org.eclipse.draw2d.Clickable$1.actionPerformed(Clickable.java:172) at org.eclipse.draw2d.ButtonModel.fireActionPerformed(ButtonModel.java:131) at org.eclipse.draw2d.ToggleModel.fireActionPerformed(ToggleModel.java:28) at org.eclipse.draw2d.ButtonModel$DefaultFiringBehavior.released(ButtonModel.ja va:484) at org.eclipse.draw2d.ButtonModel.fireReleased(ButtonModel.java:169) at org.eclipse.draw2d.ButtonModel.setPressed(ButtonModel.java:444) at org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditPart$OtherToggleB uttonTracker.handleButtonUp(ToolEntryEditPart.java:159) at org.eclipse.gef.tools.AbstractTool.mouseUp(AbstractTool.java:1042) at org.eclipse.gef.tools.SelectionTool.mouseUp(SelectionTool.java:535) at org.eclipse.gef.EditDomain.mouseUp(EditDomain.java:241) at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseReleased(DomainE ventDispatcher.java:344) at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseUp(LightweightSystem. java:516) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:136) 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(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:183) at org.eclipse.core.launcher.Main.run(Main.java:644) at org.eclipse.core.launcher.Main.main(Main.java:628)