Skip to main content



      Home
Home » Eclipse Projects » GEF » repopulate palette
repopulate palette [message #139186] Tue, 22 June 2004 02:35 Go to next message
Eclipse UserFriend
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 #139328 is a reply to message #139186] Tue, 22 June 2004 10:47 Go to previous messageGo to next message
Eclipse UserFriend
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)
>
Re: repopulate palette [message #139591 is a reply to message #139328] Wed, 23 June 2004 04:00 Go to previous message
Eclipse UserFriend
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)
> >
Previous Topic:Unifying Undo & Redo stacks in a Multipage editor
Next Topic:probleme avec les scrolls
Goto Forum:
  


Current Time: Wed May 28 23:29:11 EDT 2025

Powered by FUDForum. Page generated in 0.03163 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top