Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » Redo not working with custom delete command
Redo not working with custom delete command [message #228155] Wed, 29 April 2009 09:31 Go to next message
Lavanya K C is currently offline Lavanya K CFriend
Messages: 23
Registered: July 2009
Junior Member
Hi

I created a custom delete node command by overriding the
getDeleteCommand() method of ComponentEditPolicy of XXXEditPart. Undo is
working fine but when I redo the 'delete', the below exception is thrown.
I tried to debug the command and found that the
TransactionUtil#getEditingDomain is returning null for the eObject as its
eResource is null. I am using the same command for a context menu action
to delete the node, it is working fine.


java.lang.NullPointerException
at
org.eclipse.gmf.runtime.diagram.ui.services.editpart.EditPar tService.createEditPart(EditPartService.java:226)
at
org.eclipse.gef.editparts.AbstractEditPart.createChild(Abstr actEditPart.java:249)
at
org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPa rt.createConnection(GraphicalEditPart.java:253)
at
org.eclipse.gef.editparts.AbstractGraphicalEditPart.createOr FindConnection(AbstractGraphicalEditPart.java:322)
at
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refreshS ourceConnections(AbstractGraphicalEditPart.java:618)
at
org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPa rt.handleNotificationEvent(ShapeNodeEditPart.java:227)
at
org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPa rt.notifyChanged(GraphicalEditPart.java:1414)
at
org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBr oker.fireNotification(DiagramEventBroker.java:500)
at
org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBr oker.resourceSetChanged(DiagramEventBroker.java:395)
at
org.eclipse.gmf.runtime.diagram.ui.internal.DiagramEventBrok erThreadSafe.resourceSetChanged(DiagramEventBrokerThreadSafe .java:72)
at
org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFac tory$DiagramEditingDomain.postcommit(DiagramEditingDomainFac tory.java:213)
at
org.eclipse.emf.transaction.impl.TransactionalEditingDomainI mpl.deactivate(TransactionalEditingDomainImpl.java:504)
at
org.eclipse.emf.transaction.impl.TransactionImpl.close(Trans actionImpl.java:623)
at
org.eclipse.emf.transaction.impl.TransactionImpl.commit(Tran sactionImpl.java:415)
at
org.eclipse.emf.workspace.AbstractEMFOperation.redo(Abstract EMFOperation.java:451)
at
org.eclipse.core.commands.operations.DefaultOperationHistory .doRedo(DefaultOperationHistory.java:355)
at
org.eclipse.core.commands.operations.DefaultOperationHistory .redo(DefaultOperationHistory.java:1098)
at
org.eclipse.ui.operations.RedoActionHandler.runCommand(RedoA ctionHandler.java:77)
at
org.eclipse.ui.operations.OperationHistoryActionHandler$4.ru n(OperationHistoryActionHandler.java:301)
at
org.eclipse.jface.operation.ModalContext.runInCurrentThread( ModalContext.java:458)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.ja va:366)
at
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(Progress MonitorDialog.java:507)
at
org.eclipse.ui.internal.operations.TimeTriggeredProgressMoni torDialog.access$6(TimeTriggeredProgressMonitorDialog.java:1 )
at
org.eclipse.ui.internal.operations.TimeTriggeredProgressMoni torDialog$2.run(TimeTriggeredProgressMonitorDialog.java:203)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
at
org.eclipse.ui.internal.operations.TimeTriggeredProgressMoni torDialog.run(TimeTriggeredProgressMonitorDialog.java:216)
at
org.eclipse.ui.operations.OperationHistoryActionHandler.run( OperationHistoryActionHandler.java:316)
at
org.eclipse.gmf.runtime.common.ui.action.actions.global.Glob alRedoAction.doRun(GlobalRedoAction.java:244)
at
org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandl er.run(AbstractActionHandler.java:359)
at
org.eclipse.gmf.runtime.common.ui.action.ActionManager.run(A ctionManager.java:229)
at
org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandl er.runWithEvent(AbstractActionHandler.java:377)
at
org.eclipse.ui.actions.RetargetAction.runWithEvent(RetargetA ction.java:230)
at org.eclipse.jface.commands.ActionHandler.execute(ActionHandl er.java:119)
at org.eclipse.core.commands.Command.executeWithChecks(Command. java:476)
at
org.eclipse.core.commands.ParameterizedCommand.executeWithCh ecks(ParameterizedCommand.java:508)
at
org.eclipse.ui.internal.handlers.HandlerService.executeComma nd(HandlerService.java:169)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeComman d(WorkbenchKeyboard.java:472)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(Workben chKeyboard.java:824)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEve nt(WorkbenchKeyboard.java:882)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequ enceBindings(WorkbenchKeyboard.java:571)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(Work benchKeyboard.java:512)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter .handleEvent(WorkbenchKeyboard.java:127)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:118 4)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1002)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1040 )
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1036 )
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1352)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3894)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:341)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3787 )
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528 )
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:23 71)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3420)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)

Thanks for any help,
Lavanya.
Re: Redo not working with custom delete command [message #228737 is a reply to message #228155] Mon, 04 May 2009 06:10 Go to previous messageGo to next message
Lavanya K C is currently offline Lavanya K CFriend
Messages: 23
Registered: July 2009
Junior Member
I still could not solve this issue. Can someone help me?

Thanks,
Lavanya.

Lavanya K C wrote:

> Hi

> I created a custom delete node command by overriding the
> getDeleteCommand() method of ComponentEditPolicy of XXXEditPart. Undo is
> working fine but when I redo the 'delete', the below exception is thrown.
> I tried to debug the command and found that the
> TransactionUtil#getEditingDomain is returning null for the eObject as its
> eResource is null. I am using the same command for a context menu action
> to delete the node, it is working fine.


> java.lang.NullPointerException
> at
>
org.eclipse.gmf.runtime.diagram.ui.services.editpart.EditPar tService.createEditPart(EditPartService.java:226)
> at
>
org.eclipse.gef.editparts.AbstractEditPart.createChild(Abstr actEditPart.java:249)
> at
>
org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPa rt.createConnection(GraphicalEditPart.java:253)
> at
>
org.eclipse.gef.editparts.AbstractGraphicalEditPart.createOr FindConnection(AbstractGraphicalEditPart.java:322)
> at
>
org.eclipse.gef.editparts.AbstractGraphicalEditPart.refreshS ourceConnections(AbstractGraphicalEditPart.java:618)
> at
>
org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPa rt.handleNotificationEvent(ShapeNodeEditPart.java:227)
> at
>
org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPa rt.notifyChanged(GraphicalEditPart.java:1414)
> at
>
org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBr oker.fireNotification(DiagramEventBroker.java:500)
> at
>
org.eclipse.gmf.runtime.diagram.core.listener.DiagramEventBr oker.resourceSetChanged(DiagramEventBroker.java:395)
> at
>
org.eclipse.gmf.runtime.diagram.ui.internal.DiagramEventBrok erThreadSafe.resourceSetChanged(DiagramEventBrokerThreadSafe .java:72)
> at
>
org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFac tory$DiagramEditingDomain.postcommit(DiagramEditingDomainFac tory.java:213)
> at
>
org.eclipse.emf.transaction.impl.TransactionalEditingDomainI mpl.deactivate(TransactionalEditingDomainImpl.java:504)
> at
>
org.eclipse.emf.transaction.impl.TransactionImpl.close(Trans actionImpl.java:623)
> at
>
org.eclipse.emf.transaction.impl.TransactionImpl.commit(Tran sactionImpl.java:415)
> at
>
org.eclipse.emf.workspace.AbstractEMFOperation.redo(Abstract EMFOperation.java:451)
> at
>
org.eclipse.core.commands.operations.DefaultOperationHistory .doRedo(DefaultOperationHistory.java:355)
> at
>
org.eclipse.core.commands.operations.DefaultOperationHistory .redo(DefaultOperationHistory.java:1098)
> at
>
org.eclipse.ui.operations.RedoActionHandler.runCommand(RedoA ctionHandler.java:77)
> at
>
org.eclipse.ui.operations.OperationHistoryActionHandler$4.ru n(OperationHistoryActionHandler.java:301)
> at
>
org.eclipse.jface.operation.ModalContext.runInCurrentThread( ModalContext.java:458)
> at org.eclipse.jface.operation.ModalContext.run(ModalContext.ja va:366)
> at
>
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(Progress MonitorDialog.java:507)
> at
>
org.eclipse.ui.internal.operations.TimeTriggeredProgressMoni torDialog.access$6(TimeTriggeredProgressMonitorDialog.java:1 )
> at
>
org.eclipse.ui.internal.operations.TimeTriggeredProgressMoni torDialog$2.run(TimeTriggeredProgressMonitorDialog.java:203)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator .java:70)
> at
>
org.eclipse.ui.internal.operations.TimeTriggeredProgressMoni torDialog.run(TimeTriggeredProgressMonitorDialog.java:216)
> at
>
org.eclipse.ui.operations.OperationHistoryActionHandler.run( OperationHistoryActionHandler.java:316)
> at
>
org.eclipse.gmf.runtime.common.ui.action.actions.global.Glob alRedoAction.doRun(GlobalRedoAction.java:244)
> at
>
org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandl er.run(AbstractActionHandler.java:359)
> at
>
org.eclipse.gmf.runtime.common.ui.action.ActionManager.run(A ctionManager.java:229)
> at
>
org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandl er.runWithEvent(AbstractActionHandler.java:377)
> at
> org.eclipse.ui.actions.RetargetAction.runWithEvent(RetargetA ction.java:230)
> at org.eclipse.jface.commands.ActionHandler.execute(ActionHandl er.java:119)
> at org.eclipse.core.commands.Command.executeWithChecks(Command. java:476)
> at
>
org.eclipse.core.commands.ParameterizedCommand.executeWithCh ecks(ParameterizedCommand.java:508)
> at
>
org.eclipse.ui.internal.handlers.HandlerService.executeComma nd(HandlerService.java:169)
> at
>
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeComman d(WorkbenchKeyboard.java:472)
> at
>
org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(Workben chKeyboard.java:824)
> at
>
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEve nt(WorkbenchKeyboard.java:882)
> at
>
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequ enceBindings(WorkbenchKeyboard.java:571)
> at
>
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(Work benchKeyboard.java:512)
> at
>
org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter .handleEvent(WorkbenchKeyboard.java:127)
> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
> at org.eclipse.swt.widgets.Display.filterEvent(Display.java:118 4)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1002)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
> at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1040 )
> at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1036 )
> at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1352)
> at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3894)
> at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:341)
> at org.eclipse.swt.widgets.Control.windowProc(Control.java:3787 )
> at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337)
> at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528 )
> at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
> at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:23 71)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3420)
> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2382)
> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:21 98)
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:288)
> at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:488)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
> at
>
org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
> at
>
org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:193)
> at
>
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
> at
>
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:386)
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 549)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)

> Thanks for any help,
> Lavanya.
Re: Redo not working with custom delete command [message #228744 is a reply to message #228737] Mon, 04 May 2009 06:50 Go to previous message
Lavanya K C is currently offline Lavanya K CFriend
Messages: 23
Registered: July 2009
Junior Member
Hi All

I could fix this issue by overriding the PromptingDeleteAction and
registering my custom delete action.

Thanks
Lavanya.
Previous Topic:Problem with undo of creation of an EditPart
Next Topic:getSelection() returns null ?!?!
Goto Forum:
  


Current Time: Thu Apr 25 19:57:38 GMT 2024

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

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

Back to the top