Home » Eclipse Projects » GEF » Cannot get editor to display my model
Cannot get editor to display my model [message #161702] |
Wed, 15 December 2004 17:56  |
Eclipse User |
|
|
|
Hi,
I'm trying to get the editor to display my model. Below is the
initializeGraphicalViewer() method. The program would work if I would
call viewer.setContents(null), but not display any data.
/**
* @see
org.eclipse.gef.ui.parts.GraphicalEditor#initializeGraphical Viewer()
*/
protected void initializeGraphicalViewer() {
EditPartViewer viewer = getGraphicalViewer();
viewer.setContents(new NetworkViewAdapter());
}
When I run my program I have the editor open with a red error message in
it saying: "An error has occured when creating this editor".
The exception I get in the log file is the following:
!SESSION Dec 15, 2004 23:41:49.686
---------------------------------------------
eclipse.buildId=unknown
java.version=1.4.2_06
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments: -application
ch.digame.gui.client.DigameClientApplication -pdelaunch
!ENTRY org.eclipse.core.runtime Dec 15, 2004 23:41:49.686
!MESSAGE Product org.eclipse.platform.ide could not be found.
!ENTRY org.eclipse.core.runtime 4 2 Dec 15, 2004 23:41:51.199
!MESSAGE Problems occurred when invoking code from plug-in:
"org.eclipse.core.runtime".
!STACK 0
org.eclipse.jface.util.Assert$AssertionFailedException: Assertion
failed: An EditPartFactory is required to call setContents(Object)
at org.eclipse.jface.util.Assert.isTrue(Assert.java:168)
at
org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents( AbstractEditPartViewer.java:588)
at
ch.digame.gui.client.editors.SimpleGefEditor.initializeGraph icalViewer(SimpleGefEditor.java:49)
at
org.eclipse.gef.ui.parts.GraphicalEditor.createGraphicalView er(GraphicalEditor.java:138)
at
org.eclipse.gef.ui.parts.GraphicalEditorWithPalette.createPa rtControl(GraphicalEditorWithPalette.java:65)
at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:137)
at
org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.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.refreshPresentationSelecti on(PartStack.java:939)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:921)
at org.eclipse.ui.internal.EditorStack.setSelection(EditorStack .java:196)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:10 20)
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(Editor SashContainer.java:59)
at
org.eclipse.ui.internal.EditorAreaHelper.openEditor(EditorAr eaHelper.java:266)
at org.eclipse.ui.internal.EditorManager$4.run(EditorManager.ja va:694)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
at
org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:683)
at
org.eclipse.ui.internal.EditorManager.openInternalEditor(Edi torManager.java:779)
at
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:582)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:570)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2244)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2177)
at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage .java:2169)
at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2156)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2151)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2134)
at
ch.digame.gui.client.DigameClientWorkbenchAdvisor.postWindow Open(DigameClientWorkbenchAdvisor.java:69)
at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:515)
at
org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbe nch.java:999)
at
org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWin dow(WorkbenchConfigurer.java:174)
at
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:658)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:819)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1325)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:254)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:141)
at
ch.digame.gui.client.DigameClientApplication.run(DigameClien tApplication.java:23)
at
org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:335)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:273)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:129)
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:185)
at org.eclipse.core.launcher.Main.run(Main.java:704)
at org.eclipse.core.launcher.Main.main(Main.java:688)
I base the code on Jeffrey Bonevic's SimpleGef example, however, I added
my own implementation of IEditorInput as I don't have files (my editor
should not be persisted).
I'd be glad if someone could enlighten me and tell me what I'm doing wrong.
Thanks in advance,
Christian
Here's some more code that might be interesting to some of you while
trying to help me.
public class NetworkViewAdapter extends AbstractNotifier {
private final Network network;
private List peers = new ArrayList();
public NetworkViewAdapter() {
network = new Network();
network.setNotifier(this);
}
public Network getDiagram() {
return network;
}
public void addPeer(final PeerViewAdapter adapter) {
peers.add(adapter);
network.addPeer(adapter.getPeer());
}
public void removePeer(final PeerViewAdapter adapter) {
peers.remove(adapter);
network.removePeer(adapter.getPeer());
}
public List getPeers() {
return Collections.unmodifiableList(peers);
}
}
public class Network {
private String name;
private List peers = new ArrayList();
private INotifier notifier;
public Network() {
}
public void addPeer(Peer peer) {
peers.add(peer);
notifier.notifyChanged("peers", null, peer);
}
public void removePeer(Peer peer) {
peers.remove(peer);
notifier.notifyChanged("peers", peer, null);
}
public List getPeers() {
return Collections.unmodifiableList(peers);
}
public String getName() {
return name;
}
public void setName(String name) {
String tmp = name;
this.name = name;
notifier.notifyChanged("name", tmp, name);
}
public void setNotifier(INotifier notifier) {
this.notifier = notifier;
}
}
public abstract class AbstractNotifier implements INotifier {
private PropertyChangeSupport listeners = new
PropertyChangeSupport(this);
public void addListener(PropertyChangeListener listener) {
listeners.addPropertyChangeListener(listener);
}
public void removeListener(PropertyChangeListener listener) {
listeners.removePropertyChangeListener(listener);
}
/**
* @see
ch.digame.gui.client.gef.model.INotifier#notifyChanged(java. lang.String,
java.lang.Object, java.lang.Object)
*/
public void notifyChanged(String propertyName, Object oldValue,
Object newValue) {
listeners.firePropertyChange(propertyName, oldValue, newValue);
}
}
|
|
|
Re: Cannot get editor to display my model [message #161716 is a reply to message #161702] |
Thu, 16 December 2004 02:29   |
Eclipse User |
|
|
|
Originally posted by: eostroukhov.hotmail.com
Try changing to:
protected void initializeGraphicalViewer() {
EditPartViewer viewer = getGraphicalViewer();
viewer.setEditPartFactory( <Your edit part factory goes here> );
viewer.setContents(new NetworkViewAdapter());
}
"Christian Hauser" <c.hauser@active.ch> wrote in message
news:cpqffg$56b$1@www.eclipse.org...
> Hi,
>
> I'm trying to get the editor to display my model. Below is the
> initializeGraphicalViewer() method. The program would work if I would call
> viewer.setContents(null), but not display any data.
>
> /**
> * @see
> org.eclipse.gef.ui.parts.GraphicalEditor#initializeGraphical Viewer()
> */
> protected void initializeGraphicalViewer() {
> EditPartViewer viewer = getGraphicalViewer();
> viewer.setContents(new NetworkViewAdapter());
> }
>
> When I run my program I have the editor open with a red error message in
> it saying: "An error has occured when creating this editor".
>
> The exception I get in the log file is the following:
>
> !SESSION Dec 15, 2004
> 23:41:49.686 ---------------------------------------------
> eclipse.buildId=unknown
> java.version=1.4.2_06
> java.vendor=Sun Microsystems Inc.
> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
> Command-line arguments: -application
> ch.digame.gui.client.DigameClientApplication -pdelaunch
>
> !ENTRY org.eclipse.core.runtime Dec 15, 2004 23:41:49.686
> !MESSAGE Product org.eclipse.platform.ide could not be found.
>
> !ENTRY org.eclipse.core.runtime 4 2 Dec 15, 2004 23:41:51.199
> !MESSAGE Problems occurred when invoking code from plug-in:
> "org.eclipse.core.runtime".
> !STACK 0
> org.eclipse.jface.util.Assert$AssertionFailedException: Assertion failed:
> An EditPartFactory is required to call setContents(Object)
> at org.eclipse.jface.util.Assert.isTrue(Assert.java:168)
> at
> org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents( AbstractEditPartViewer.java:588)
> at
> ch.digame.gui.client.editors.SimpleGefEditor.initializeGraph icalViewer(SimpleGefEditor.java:49)
> at
> org.eclipse.gef.ui.parts.GraphicalEditor.createGraphicalView er(GraphicalEditor.java:138)
> at
> org.eclipse.gef.ui.parts.GraphicalEditorWithPalette.createPa rtControl(GraphicalEditorWithPalette.java:65)
> at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:137)
> at
> org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.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.refreshPresentationSelecti on(PartStack.java:939)
> at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:921)
> at org.eclipse.ui.internal.EditorStack.setSelection(EditorStack .java:196)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:10 20)
> 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(Editor SashContainer.java:59)
> at
> org.eclipse.ui.internal.EditorAreaHelper.openEditor(EditorAr eaHelper.java:266)
> at org.eclipse.ui.internal.EditorManager$4.run(EditorManager.ja va:694)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
> at
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:683)
> at
> org.eclipse.ui.internal.EditorManager.openInternalEditor(Edi torManager.java:779)
> at
> org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:582)
> at
> org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:570)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2244)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2177)
> at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage .java:2169)
> at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2156)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2151)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2134)
> at
> ch.digame.gui.client.DigameClientWorkbenchAdvisor.postWindow Open(DigameClientWorkbenchAdvisor.java:69)
> at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:515)
> at
> org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbe nch.java:999)
> at
> org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWin dow(WorkbenchConfigurer.java:174)
> at
> org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:658)
> at org.eclipse.ui.internal.Workbench.init(Workbench.java:819)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1325)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:254)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:141)
> at
> ch.digame.gui.client.DigameClientApplication.run(DigameClien tApplication.java:23)
> at
> org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:335)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:273)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:129)
> 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:185)
> at org.eclipse.core.launcher.Main.run(Main.java:704)
> at org.eclipse.core.launcher.Main.main(Main.java:688)
>
>
> I base the code on Jeffrey Bonevic's SimpleGef example, however, I added
> my own implementation of IEditorInput as I don't have files (my editor
> should not be persisted).
>
> I'd be glad if someone could enlighten me and tell me what I'm doing
> wrong.
>
> Thanks in advance,
> Christian
>
> Here's some more code that might be interesting to some of you while
> trying to help me.
>
> public class NetworkViewAdapter extends AbstractNotifier {
> private final Network network;
> private List peers = new ArrayList();
>
> public NetworkViewAdapter() {
> network = new Network();
> network.setNotifier(this);
> }
>
> public Network getDiagram() {
> return network;
> }
>
> public void addPeer(final PeerViewAdapter adapter) {
> peers.add(adapter);
> network.addPeer(adapter.getPeer());
> }
>
> public void removePeer(final PeerViewAdapter adapter) {
> peers.remove(adapter);
> network.removePeer(adapter.getPeer());
> }
>
> public List getPeers() {
> return Collections.unmodifiableList(peers);
> }
> }
>
>
> public class Network {
> private String name;
> private List peers = new ArrayList();
>
> private INotifier notifier;
>
> public Network() {
> }
>
> public void addPeer(Peer peer) {
> peers.add(peer);
> notifier.notifyChanged("peers", null, peer);
> }
>
> public void removePeer(Peer peer) {
> peers.remove(peer);
> notifier.notifyChanged("peers", peer, null);
> }
>
> public List getPeers() {
> return Collections.unmodifiableList(peers);
> }
>
> public String getName() {
> return name;
> }
>
> public void setName(String name) {
> String tmp = name;
> this.name = name;
> notifier.notifyChanged("name", tmp, name);
> }
>
> public void setNotifier(INotifier notifier) {
> this.notifier = notifier;
> }
> }
>
>
>
> public abstract class AbstractNotifier implements INotifier {
> private PropertyChangeSupport listeners = new
> PropertyChangeSupport(this);
>
> public void addListener(PropertyChangeListener listener) {
> listeners.addPropertyChangeListener(listener);
> }
>
> public void removeListener(PropertyChangeListener listener) {
> listeners.removePropertyChangeListener(listener);
> }
>
> /**
> * @see
> ch.digame.gui.client.gef.model.INotifier#notifyChanged(java. lang.String,
> java.lang.Object, java.lang.Object)
> */
> public void notifyChanged(String propertyName, Object oldValue, Object
> newValue) {
> listeners.firePropertyChange(propertyName, oldValue, newValue);
> }
> }
|
|
|
Re: Cannot get editor to display my model [message #161723 is a reply to message #161702] |
Thu, 16 December 2004 05:28   |
Eclipse User |
|
|
|
Hi Christian,
You need to set the EditPartFactory() onto the EditPartViewer
when you call setContents();
Christian Hauser wrote:
> Hi,
> I'm trying to get the editor to display my model. Below is the
> initializeGraphicalViewer() method. The program would work if I would
> call viewer.setContents(null), but not display any data.
> /**
> * @see
> org.eclipse.gef.ui.parts.GraphicalEditor#initializeGraphical Viewer()
> */
> protected void initializeGraphicalViewer() {
> EditPartViewer viewer = getGraphicalViewer();
> viewer.setContents(new NetworkViewAdapter());
> }
> When I run my program I have the editor open with a red error message in
> it saying: "An error has occured when creating this editor".
> The exception I get in the log file is the following:
> !SESSION Dec 15, 2004 23:41:49.686
> ---------------------------------------------
> eclipse.buildId=unknown
> java.version=1.4.2_06
> java.vendor=Sun Microsystems Inc.
> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
> Command-line arguments: -application
> ch.digame.gui.client.DigameClientApplication -pdelaunch
> !ENTRY org.eclipse.core.runtime Dec 15, 2004 23:41:49.686
> !MESSAGE Product org.eclipse.platform.ide could not be found.
> !ENTRY org.eclipse.core.runtime 4 2 Dec 15, 2004 23:41:51.199
> !MESSAGE Problems occurred when invoking code from plug-in:
> "org.eclipse.core.runtime".
> !STACK 0
> org.eclipse.jface.util.Assert$AssertionFailedException: Assertion
> failed: An EditPartFactory is required to call setContents(Object)
> at org.eclipse.jface.util.Assert.isTrue(Assert.java:168)
> at
>
org.eclipse.gef.ui.parts.AbstractEditPartViewer.setContents( AbstractEditPartViewer.java:588)
> at
>
ch.digame.gui.client.editors.SimpleGefEditor.initializeGraph icalViewer(SimpleGefEditor.java:49)
> at
>
org.eclipse.gef.ui.parts.GraphicalEditor.createGraphicalView er(GraphicalEditor.java:138)
> at
>
org.eclipse.gef.ui.parts.GraphicalEditorWithPalette.createPa rtControl(GraphicalEditorWithPalette.java:65)
> at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:137)
> at
>
org.eclipse.core.internal.runtime.InternalPlatform.run(Inter nalPlatform.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.refreshPresentationSelecti on(PartStack.java:939)
> at org.eclipse.ui.internal.PartStack.setSelection(PartStack.jav a:921)
> at org.eclipse.ui.internal.EditorStack.setSelection(EditorStack .java:196)
> at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:10 20)
> 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(Editor SashContainer.java:59)
> at
>
org.eclipse.ui.internal.EditorAreaHelper.openEditor(EditorAr eaHelper.java:266)
> at org.eclipse.ui.internal.EditorManager$4.run(EditorManager.ja va:694)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
> at
> org.eclipse.ui.internal.EditorManager.createEditorTab(Editor Manager.java:683)
> at
>
org.eclipse.ui.internal.EditorManager.openInternalEditor(Edi torManager.java:779)
> at
>
org.eclipse.ui.internal.EditorManager.openEditorFromDescript or(EditorManager.java:582)
> at org.eclipse.ui.internal.EditorManager.openEditor(EditorManag er.java:570)
> at
>
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched( WorkbenchPage.java:2244)
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(Workben chPage.java:2177)
> at org.eclipse.ui.internal.WorkbenchPage.access$6(WorkbenchPage .java:2169)
> at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.ja va:2156)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:69)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2151)
> at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPa ge.java:2134)
> at
>
ch.digame.gui.client.DigameClientWorkbenchAdvisor.postWindow Open(DigameClientWorkbenchAdvisor.java:69)
> at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow .java:515)
> at
> org.eclipse.ui.internal.Workbench.openFirstTimeWindow(Workbe nch.java:999)
> at
>
org.eclipse.ui.internal.WorkbenchConfigurer.openFirstTimeWin dow(WorkbenchConfigurer.java:174)
> at
>
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(Work benchAdvisor.java:658)
> at org.eclipse.ui.internal.Workbench.init(Workbench.java:819)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1325)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:254)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:141)
> at
>
ch.digame.gui.client.DigameClientApplication.run(DigameClien tApplication.java:23)
> at
>
org.eclipse.core.internal.runtime.PlatformActivator$1.run(Pl atformActivator.java:335)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:273)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:129)
> 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:185)
> at org.eclipse.core.launcher.Main.run(Main.java:704)
> at org.eclipse.core.launcher.Main.main(Main.java:688)
> I base the code on Jeffrey Bonevic's SimpleGef example, however, I added
> my own implementation of IEditorInput as I don't have files (my editor
> should not be persisted).
> I'd be glad if someone could enlighten me and tell me what I'm doing wrong.
> Thanks in advance,
> Christian
> Here's some more code that might be interesting to some of you while
> trying to help me.
> public class NetworkViewAdapter extends AbstractNotifier {
> private final Network network;
> private List peers = new ArrayList();
> public NetworkViewAdapter() {
> network = new Network();
> network.setNotifier(this);
> }
> public Network getDiagram() {
> return network;
> }
> public void addPeer(final PeerViewAdapter adapter) {
> peers.add(adapter);
> network.addPeer(adapter.getPeer());
> }
> public void removePeer(final PeerViewAdapter adapter) {
> peers.remove(adapter);
> network.removePeer(adapter.getPeer());
> }
> public List getPeers() {
> return Collections.unmodifiableList(peers);
> }
> }
> public class Network {
> private String name;
> private List peers = new ArrayList();
> private INotifier notifier;
> public Network() {
> }
> public void addPeer(Peer peer) {
> peers.add(peer);
> notifier.notifyChanged("peers", null, peer);
> }
> public void removePeer(Peer peer) {
> peers.remove(peer);
> notifier.notifyChanged("peers", peer, null);
> }
> public List getPeers() {
> return Collections.unmodifiableList(peers);
> }
> public String getName() {
> return name;
> }
> public void setName(String name) {
> String tmp = name;
> this.name = name;
> notifier.notifyChanged("name", tmp, name);
> }
> public void setNotifier(INotifier notifier) {
> this.notifier = notifier;
> }
> }
> public abstract class AbstractNotifier implements INotifier {
> private PropertyChangeSupport listeners = new
> PropertyChangeSupport(this);
> public void addListener(PropertyChangeListener listener) {
> listeners.addPropertyChangeListener(listener);
> }
> public void removeListener(PropertyChangeListener listener) {
> listeners.removePropertyChangeListener(listener);
> }
> /**
> * @see
> ch.digame.gui.client.gef.model.INotifier#notifyChanged(java. lang.String,
> java.lang.Object, java.lang.Object)
> */
> public void notifyChanged(String propertyName, Object oldValue,
> Object newValue) {
> listeners.firePropertyChange(propertyName, oldValue, newValue);
> }
> }
|
|
|
Re: Cannot get editor to display my model [message #161733 is a reply to message #161716] |
Thu, 16 December 2004 07:40  |
Eclipse User |
|
|
|
Eugene Ostroukhov wrote:
> Try changing to:
>
> protected void initializeGraphicalViewer() {
> EditPartViewer viewer = getGraphicalViewer();
> viewer.setEditPartFactory( <Your edit part factory goes here> );
> viewer.setContents(new NetworkViewAdapter());
> }
Thanks a lot. It works now.
Christian
|
|
|
Goto Forum:
Current Time: Thu May 01 07:14:26 EDT 2025
Powered by FUDForum. Page generated in 0.06890 seconds
|