Skip to content
Snippets Groups Projects
Commit 60d952fb authored by Vincent Aravantinos's avatar Vincent Aravantinos
Browse files

fixed parent calculation in connection

parent 90c2844b
No related branches found
No related tags found
No related merge requests found
......@@ -33,7 +33,7 @@ import org.fortiss.tooling.kernel.service.IConnectionCompositorService;
* @author hoelzl
* @author $Author$
* @version $Rev$
* @ConQAT.Rating GREEN Hash: 19A76A681820E49F4E8397BA1AB5358E
* @ConQAT.Rating YELLOW Hash: 56AD20144F81EC2E610E4B0DAFE7FCDE
*/
public class ConnectCommand extends Command {
......@@ -59,9 +59,13 @@ public class ConnectCommand extends Command {
if(context.getSource().getModel() instanceof EObject &&
context.getTarget().getModel() instanceof EObject &&
context.getSource().getParent().getModel() instanceof EObject) {
EObject commonParent = getCommonParent();
if(commonParent == null) {
return false;
}
return IConnectionCompositorService.INSTANCE.canConnect((EObject)context.getSource()
.getModel(), (EObject)context.getTarget().getModel(), (EObject)context
.getSource().getParent().getModel(), context);
.getModel(), (EObject)context.getTarget().getModel(), getCommonParent(),
context);
}
return false;
}
......@@ -69,12 +73,20 @@ public class ConnectCommand extends Command {
/** {@inheritDoc} */
@Override
public void execute() {
EObject sourceParent = (EObject)context.getSource().getParent().getModel();
EObject targetParent = (EObject)context.getTarget().getParent().getModel();
EObject commonParent = findCommonParent(sourceParent, targetParent);
IConnectionCompositorService.INSTANCE.connect((EObject)context.getSource().getModel(),
(EObject)context.getTarget().getModel(), commonParent, context);
(EObject)context.getTarget().getModel(), getCommonParent(), context);
}
/** Returns the common parent. */
private EObject getCommonParent() {
Object srcEObject = context.getSource().getParent().getModel();
Object targetEObject = context.getTarget().getParent().getModel();
if(!(srcEObject instanceof EObject && targetEObject instanceof EObject)) {
return null;
}
EObject sourceParent = (EObject)srcEObject;
EObject targetParent = (EObject)targetEObject;
return findCommonParent(sourceParent, targetParent);
}
/** Finds the common parent of two elements. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment