Removing a Shape from a Diagram

36 views
Skip to first unread message

AgitoM

unread,
Nov 10, 2010, 8:00:15 AM11/10/10
to gwt-connectors
Recently started working with GWT-Connectors, and have created a
diagram panel on which I am adding widgets/shapes through a drag and
drop mechanism.

Off course I need to be able to delete shapes as well.
I'm using the following two lines of code to delete a shape:

diagram.shapes.remove(this.selectedShape);
diagram.boundaryPanel.remove(this.selectedShape.asWidget());

However 2 problems occur:
1. If a connector has been attached to the shape that is deleted, the
connection point of the connector is also gone, making the connector
useless and undragable from then onwards.

2. If I add a new connector to the diagram, attempting to drag the
connector causes this error:


com.google.gwt.event.shared.UmbrellaException: One or more exceptions
caught, see full set in UmbrellaException#getCauses
at
com.google.gwt.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:
214)
at
com.google.gwt.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:
103)
at
com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:
96)
at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:107)
at
com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:
116)
at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:
155)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1308)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1264)
at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:
326)
at
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:
207)
at
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:
126)
at
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
561)
at
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:
269)
at
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:
91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:214)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:
281)
at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:
531)
at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:
352)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalStateException: Unattached drop target.
You must call DragController#unregisterDropController for all drop
targets not attached to the DOM.
at com.allen_sauer.gwt.dnd.client.DropControllerCollection
$Candidate.<init>(DropControllerCollection.java:48)
at
com.allen_sauer.gwt.dnd.client.DropControllerCollection.resetCache(DropControllerCollection.java:
137)
at
com.allen_sauer.gwt.dnd.client.PickupDragController.resetCache(PickupDragController.java:
349)
at
com.allen_sauer.gwt.dnd.client.AbstractDragController.dragStart(AbstractDragController.java:
155)
at
com.allen_sauer.gwt.dnd.client.PickupDragController.dragStart(PickupDragController.java:
206)
at pl.tecna.gwt.connectors.client.Diagram$4.dragStart(Diagram.java:
171)
at
com.allen_sauer.gwt.dnd.client.MouseDragHandler.startDragging(MouseDragHandler.java:
368)
at
com.allen_sauer.gwt.dnd.client.MouseDragHandler.onMouseOut(MouseDragHandler.java:
307)
at
com.google.gwt.event.dom.client.MouseOutEvent.dispatch(MouseOutEvent.java:
65)
at
com.google.gwt.event.dom.client.MouseOutEvent.dispatch(MouseOutEvent.java:
1)
at
com.google.gwt.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:
204)
at
com.google.gwt.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:
103)
at
com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:
96)
at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:107)
at
com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:
116)
at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:
155)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1308)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1264)
at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:
326)
at
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:
207)
at
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:
126)
at
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
561)
at
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:
269)
at
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:
91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:214)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
at
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:
281)
at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:
531)
at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:
352)
at java.lang.Thread.run(Thread.java:662)

Am I supposed to delete the shap from the diagram in a different way?
Kindly anyone advise.

AgitoM

unread,
Nov 13, 2010, 4:27:30 AM11/13/10
to gwt-connectors
Some additional info.
The "detached" widget is actually the connection point of the shape I
have removed.
How can I remove the connection points as well?
Reply all
Reply to author
Forward
0 new messages