repopulate palette [message #139186] |
Tue, 22 June 2004 02:35  |
Eclipse User |
|
|
|
I tried to build a palette view with paletteviewer in a standard eclipse
view.
The problem i faces is that when i have a palette entry selected in that
view and i close the editor. I tried to repopulate the paletteroot and set
it to the palette view. I faced a error message as following. I guess this
is becuase the activeEntry is not be resetted when the palette root was
setted to a new one. Am i right?
i call this method to set the new palette root:
PaletteViewer.setPaletteRoot(root);
java.lang.NullPointerException
at
org.eclipse.gef.ui.palette.PaletteViewer.setActiveTool(Palet teViewer.java:301)
at
org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditP art.removeNotify(ToolEntryEditPart.java:253)
at
org.eclipse.gef.editparts.AbstractEditPart.removeNotify(Abst ractEditPart.java:885)
at
org.eclipse.gef.editparts.AbstractGraphicalEditPart.removeNo tify(AbstractGraphicalEditPart.java:691)
at
org.eclipse.gef.editparts.AbstractEditPart.removeNotify(Abst ractEditPart.java:885)
at
org.eclipse.gef.editparts.AbstractGraphicalEditPart.removeNo tify(AbstractGraphicalEditPart.java:691)
at
org.eclipse.gef.editparts.AbstractEditPart.removeChild(Abstr actEditPart.java:826)
at
org.eclipse.gef.editparts.GraphicalRootEditPart.setContents( GraphicalRootEditPart.java:160)
at
org.eclipse.gef.ui.palette.PaletteViewer.setPaletteRoot(Pale tteViewer.java:315)
at
com.actuate.iard.designer.ui.views.paletteview.PaletteView.r eBuildView(PaletteView.java:56)
at
com.actuate.iard.designer.ui.mediator.IARDDesignerMediator.r efreshPalette(IARDDesignerMediator.java:55)
at
com.actuate.iard.designer.ui.mediator.IARDDesignerMediator.s etEditor(IARDDesignerMediator.java:37)
at
com.actuate.iard.designer.ui.editor.ReportGraphicalEditor.re gisterToMediator(ReportGraphicalEditor.java:280)
at
com.actuate.iard.designer.ui.editor.ReportGraphicalEditor.di spose(ReportGraphicalEditor.java:294)
at
org.eclipse.ui.internal.WorkbenchPartReference.dispose(Workb enchPartReference.java:162)
at
org.eclipse.ui.internal.EditorManager$Editor.dispose(EditorM anager.java:1199)
at org.eclipse.ui.internal.WorkbenchPage$5.run(WorkbenchPage.ja va:1105)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.java:819)
at org.eclipse.core.runtime.Platform.run(Platform.java:493)
at
org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchP age.java:1103)
at
org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchP age.java:900)
at
org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchP age.java:864)
at org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:87 )
at
org.eclipse.ui.internal.TabbedEditorWorkbook$1.itemClosed(Ta bbedEditorWorkbook.java:132)
at org.eclipse.swt.custom.CTabFolder.closeNotify(CTabFolder.jav a:316)
at org.eclipse.swt.custom.CTabFolder.access$13(CTabFolder.java: 306)
at org.eclipse.swt.custom.CTabFolder$4.handleEvent(CTabFolder.j ava:447)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:833)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:2348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :2029)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:1550)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1526)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:265)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:139)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplicatio n.java:47)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:257)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:279)
at org.eclipse.core.launcher.Main.run(Main.java:742)
at org.eclipse.core.launcher.Main.main(Main.java:581)
|
|
|
|
Re: repopulate palette [message #139591 is a reply to message #139328] |
Wed, 23 June 2004 04:00  |
Eclipse User |
|
|
|
Thanks very much.
removing all children is a good idea.
As you guessed, i want to share the same palette across different editor
instance. I'd like to create different palette view when different editor
was opened. Same type editor will use on palette.
Pratik Shah wrote:
> First of all, which version of GEF are you working with?
> Why don't you use GEF's palette view (introduced in 3.0)? Is it because you
> want to share the same palette across different editor instances? Or are
> you using an older version of GEF that does not have that view? If that is
> the case, you can look at the PaletteView, PalettePage, PaletteViewerPage
> and PaletteViewerProvider classes introduced in 3.0 to get an idea of how to
> create your own PaletteView.
> It is generally recommended that you not re-set the PaletteRoot for a viewer
> and the associated EditDomain. Some things, such as the
> PaletteCustomizerDialog, could still be holding on to the older model. It's
> better to just repopulate the old root by removing all its children, and
> then adding the new ones to it.
> As far as the NPE below is concerned, I suspect that it will disappear if
> you invoke setDefaultEntry(null) on the old palette root before setting the
> new palette root on the viewer.
> "Wang QS" <qwang@actuate.com> wrote in message
> news:cb8jv4$n4j$1@eclipse.org...
> > I tried to build a palette view with paletteviewer in a standard eclipse
> > view.
> > The problem i faces is that when i have a palette entry selected in that
> > view and i close the editor. I tried to repopulate the paletteroot and set
> > it to the palette view. I faced a error message as following. I guess this
> > is becuase the activeEntry is not be resetted when the palette root was
> > setted to a new one. Am i right?
> >
> > i call this method to set the new palette root:
> > PaletteViewer.setPaletteRoot(root);
> >
> > java.lang.NullPointerException
> > at
> >
> org.eclipse.gef.ui.palette.PaletteViewer.setActiveTool(Palet teViewer.java:30
> 1)
> > at
> >
> org.eclipse.gef.internal.ui.palette.editparts.ToolEntryEditP art.removeNotify
> (ToolEntryEditPart.java:253)
> > at
> >
> org.eclipse.gef.editparts.AbstractEditPart.removeNotify(Abst ractEditPart.jav
> a:885)
> > at
> >
> org.eclipse.gef.editparts.AbstractGraphicalEditPart.removeNo tify(AbstractGra
> phicalEditPart.java:691)
> > at
> >
> org.eclipse.gef.editparts.AbstractEditPart.removeNotify(Abst ractEditPart.jav
> a:885)
> > at
> >
> org.eclipse.gef.editparts.AbstractGraphicalEditPart.removeNo tify(AbstractGra
> phicalEditPart.java:691)
> > at
> >
> org.eclipse.gef.editparts.AbstractEditPart.removeChild(Abstr actEditPart.java
> :826)
> > at
> >
> org.eclipse.gef.editparts.GraphicalRootEditPart.setContents( GraphicalRootEdi
> tPart.java:160)
> > at
> >
> org.eclipse.gef.ui.palette.PaletteViewer.setPaletteRoot(Pale tteViewer.java:3
> 15)
> > at
> >
> com.actuate.iard.designer.ui.views.paletteview.PaletteView.r eBuildView(Palet
> teView.java:56)
> > at
> >
> com.actuate.iard.designer.ui.mediator.IARDDesignerMediator.r efreshPalette(IA
> RDDesignerMediator.java:55)
> > at
> >
> com.actuate.iard.designer.ui.mediator.IARDDesignerMediator.s etEditor(IARDDes
> ignerMediator.java:37)
> > at
> >
> com.actuate.iard.designer.ui.editor.ReportGraphicalEditor.re gisterToMediator
> (ReportGraphicalEditor.java:280)
> > at
> >
> com.actuate.iard.designer.ui.editor.ReportGraphicalEditor.di spose(ReportGrap
> hicalEditor.java:294)
> > at
> >
> org.eclipse.ui.internal.WorkbenchPartReference.dispose(Workb enchPartReferenc
> e.java:162)
> > at
> >
> org.eclipse.ui.internal.EditorManager$Editor.dispose(EditorM anager.java:1199
> )
> > at org.eclipse.ui.internal.WorkbenchPage$5.run(WorkbenchPage.ja va:1105)
> > at
> >
> org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.java
> :819)
> > at org.eclipse.core.runtime.Platform.run(Platform.java:493)
> > at
> > org.eclipse.ui.internal.WorkbenchPage.disposePart(WorkbenchP age.java:1103)
> > at
> > org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchP age.java:900)
> > at
> > org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchP age.java:864)
> > at org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:87 )
> > at
> >
> org.eclipse.ui.internal.TabbedEditorWorkbook$1.itemClosed(Ta bbedEditorWorkbo
> ok.java:132)
> > at org.eclipse.swt.custom.CTabFolder.closeNotify(CTabFolder.jav a:316)
> > at org.eclipse.swt.custom.CTabFolder.access$13(CTabFolder.java: 306)
> > at org.eclipse.swt.custom.CTabFolder$4.handleEvent(CTabFolder.j ava:447)
> > at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :82)
> > at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:833)
> > at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:2348)
> > at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :2029)
> > at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:1550)
> > at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1526)
> > at
> >
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:265)
> > at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:139)
> > at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplicatio n.java:47)
> > at
> >
> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.
> java:257)
> > at
> >
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:104)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39
> )
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl
> ..java:25)
> > at java.lang.reflect.Method.invoke(Method.java:324)
> > at org.eclipse.core.launcher.Main.basicRun(Main.java:279)
> > at org.eclipse.core.launcher.Main.run(Main.java:742)
> > at org.eclipse.core.launcher.Main.main(Main.java:581)
> >
|
|
|
Powered by
FUDForum. Page generated in 0.03163 seconds