/**
* @generated
*/
protected Command getDestroyElementCommand(DestroyElementRequest req) {
View view = (View) getHost().getModel();
CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
getEditingDomain(), null);
cmd.setTransactionNestingEnabled(false);
for (Iterator it = view.getTargetEdges().iterator(); it.hasNext();) {
Edge incomingLink = (Edge) it.next();
if (eu.admire.visual.pmml.treemodel._40.diagram.part.PMMLVisualIDRegistry
.getVisualID(incomingLink) == eu.admire.visual.pmml.treemodel._40.diagram.edit.parts.NodeTypeNodeEditPart.VISUAL_ID) {
DestroyReferenceRequest r = new DestroyReferenceRequest(
incomingLink.getSource().getElement(), null,
incomingLink.getTarget().getElement(), false);
cmd.add(new DestroyReferenceCommand(r) {
protected CommandResult doExecuteWithResult(
IProgressMonitor progressMonitor, IAdaptable info)
throws ExecutionException {
EObject referencedObject = getReferencedObject();
Resource resource = referencedObject.eResource();
CommandResult result = super.doExecuteWithResult(
progressMonitor, info);
if (resource != null) {
resource.getContents().add(referencedObject);
}
return result;
}
});
cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
continue;
}
}
for (Iterator it = view.getSourceEdges().iterator(); it.hasNext();) {
Edge outgoingLink = (Edge) it.next();
if (eu.admire.visual.pmml.treemodel._40.diagram.part.PMMLVisualIDRegistry
.getVisualID(outgoingLink) == eu.admire.visual.pmml.treemodel._40.diagram.edit.parts.NodeTypeNodeEditPart.VISUAL_ID) {
DestroyReferenceRequest r = new DestroyReferenceRequest(
outgoingLink.getSource().getElement(), null,
outgoingLink.getTarget().getElement(), false);
cmd.add(new DestroyReferenceCommand(r) {
protected CommandResult doExecuteWithResult(
IProgressMonitor progressMonitor, IAdaptable info)
throws ExecutionException {
EObject referencedObject = getReferencedObject();
Resource resource = referencedObject.eResource();
CommandResult result = super.doExecuteWithResult(
progressMonitor, info);
if (resource != null) {
resource.getContents().add(referencedObject);
}
return result;
}
});
cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
continue;
}
}
EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
if (annotation == null) {
// there are indirectly referenced children, need extra commands: false
addDestroyChildNodesCommand(cmd);
addDestroyShortcutsCommand(cmd, view);
// delete host element
cmd.add(new DestroyElementCommand(req));
} else {
cmd.add(new DeleteCommand(getEditingDomain(), view));
}
return getGEFWrapper(cmd.reduce());
}