protected ModelContents createAddCommandsForRelatedObjects() { if (this.additionalObjs.size() != 0) { final ContainerEditingDomain containerEdDomain = (ContainerEditingDomain) this.domain; // final ModelContents modelContents = containerEdDomain.getClipboardModelContents(true); final ModelContents modelContents = containerEdDomain.createClipboardModelContents(); // Make sure other commands don't set the actual clipboard contents, otherwise the // container editing domain will clear out the clipboard model contents. doCreateAdditionalCommands(modelContents); containerEdDomain.setClipboardMapping(new SelfKnowledgableCopyHelper()); return modelContents; } return null; }
@Override public void execute() { // clear out all existing objects (including the ModelContents if one) ... this.domain.setClipboard(null); // execute the remove commands for the deleted/referenced objects super.execute(); // set the clipboard model contents if (this.clipboardModelContents != null && this.domain instanceof ContainerEditingDomain) { final ContainerEditingDomain containerEdDomain = (ContainerEditingDomain) this.domain; final ModelContents existingContents = containerEdDomain.getClipboardModelContents(false); if (existingContents == null) { containerEdDomain.setClipboardModelContents(this.clipboardModelContents); } else if (existingContents != this.clipboardModelContents) { final String msg = ModelerCore.Util.getString( "CutWithRelatedToClipboardCommand.Unexpected_existing_model_contents_on_clipboard"); //$NON-NLS-1$ ModelerCore.Util.log(IStatus.WARNING, msg); containerEdDomain.setClipboardModelContents(this.clipboardModelContents); } } }