diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java index 22346d4734cfc52b1ac6b0b0566a9ac0f5aed716..7b64cb585c8c2279a4a1008c4bd11ff734d905a0 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/editpart/command/ConnectCommand.java @@ -18,6 +18,7 @@ $Id$ package org.fortiss.tooling.base.ui.editpart.command; import static org.fortiss.tooling.base.ui.utils.DragAndDropBaseUtils.setConnectionDragContextTarget; +import static org.fortiss.tooling.kernel.utils.EcoreUtils.isAncestor; import org.eclipse.draw2d.geometry.Point; import org.eclipse.emf.ecore.EObject; @@ -36,7 +37,7 @@ import org.fortiss.tooling.kernel.service.IConnectionCompositorService; * @author hoelzl * @author $Author$ * @version $Rev$ - * @ConQAT.Rating GREEN Hash: F7D3596F1BC65D2B558627125DCB05AA + * @ConQAT.Rating YELLOW Hash: 22616D8ACADDDEB341A7C1A4B47C75D3 */ public class ConnectCommand extends Command { @@ -89,12 +90,13 @@ public class ConnectCommand extends Command { if(sourceParent == targetParent) { return sourceParent; } - if(sourceParent.eContainer() == targetParent) { + if(isAncestor(sourceParent, targetParent)) { return targetParent; } - if(sourceParent == targetParent.eContainer()) + if(isAncestor(targetParent, sourceParent)) { return sourceParent; + } return sourceParent.eContainer(); }