eclipsesource / papyrus-seqd

1 stars 5 forks source link

Cannot delete some messages #439

Closed cdamus closed 5 years ago

cdamus commented 5 years ago

Some messages can be deleted and others not, depending on circumstances.

For example, in the Nudging.di model in the run-time test suite, the very first message in the trace, async, cannot be deleted. Selecting it pressing the Del key, nothing happens. No error dialogs, no messages in the workspace log, and crucially no change to the diagram and model.

However, in the same model, deleting the async2 message works just fine.

cdamus commented 5 years ago

The difference between a scenario that works and one that doesn't is that the delete scenario that doesn't work falls down on a NudgeCommand that is not executable. The nudge command is a component of the pulling up of elements in the trace following the message that was deleted.

The nudge command fails to be executable in the case that some message that needs to be pulled up is attached to two execution specifications, or lifelines, or other shapes that both are also being nudged up. In this case, neither message end contributes a command to the implementation of the message nudge, so overall the NudgeCommand ends up not executable because it failed to compute a nudge for the element.

The fix in the pull request is just to drop in a trivially executable IdentityCommand to recognize that the nudge is implicitly accomplished.