From 14dd8e91abdd178547c1413c70c269cac9fca767 Mon Sep 17 00:00:00 2001
From: Tiziano Munaro <munaro@fortiss.org>
Date: Wed, 5 Feb 2020 14:12:13 +0100
Subject: [PATCH] Disable direct creation of curved links between hierarchic
 element bases

Issue-Ref: 3935
Issue-Url: https://af3-developer.fortiss.org/issues/3935

Signed-off-by: Tiziano Munaro <munaro@fortiss.org>
---
 .../fortiss/tooling/base/ui/editor/fx/controller/.ratings | 2 +-
 .../CurvedLinkLayoutedContentAnchorangeController.java    | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings
index 33125106f..451218a56 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/.ratings
@@ -1,5 +1,5 @@
 ContextMenuUtil.java 405387151d45b09dffb3b6ba44f980313c8edcaf GREEN
-CurvedLinkLayoutedContentAnchorangeController.java 67c20e31ddb82fe2fd499117193353b0545839a0 GREEN
+CurvedLinkLayoutedContentAnchorangeController.java 6d2b64c3d6c813ac001b1500ed0529ad6e561aaf YELLOW
 EObjectDiagramController.java 9af59e8e586c8251d174108a2ce2fcdee5e75782 GREEN
 EObjectEllipticResizableContentControllerBase.java 3494d4f0dcdff5eb35f22f0e21d04df81b32e494 GREEN
 EObjectModelChangeProvider.java f4b60cebb088a5c81ca92a41614e1a5d40030502 GREEN
diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/CurvedLinkLayoutedContentAnchorangeController.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/CurvedLinkLayoutedContentAnchorangeController.java
index 67c20e31d..6d2b64c3d 100644
--- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/CurvedLinkLayoutedContentAnchorangeController.java
+++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/editor/fx/controller/CurvedLinkLayoutedContentAnchorangeController.java
@@ -19,6 +19,7 @@ import static org.fortiss.tooling.base.ui.utils.LayoutDataUIUtils.addConnectionP
 
 import org.fortiss.tooling.base.model.base.EntryConnectorBase;
 import org.fortiss.tooling.base.model.base.ExitConnectorBase;
+import org.fortiss.tooling.base.model.base.HierarchicElementBase;
 import org.fortiss.tooling.base.model.element.IConnection;
 import org.fortiss.tooling.base.model.element.IConnector;
 import org.fortiss.tooling.base.model.layout.ILayoutedModelElement;
@@ -46,6 +47,13 @@ public class CurvedLinkLayoutedContentAnchorangeController<T extends IConnector
 	@Override
 	protected void link(IMVCBundle startBundle, DiagramCoordinate startLocation,
 			IMVCBundle endBundle, DiagramCoordinate endLocation) {
+		// Disable direct links between hierarchic element bases
+		if(startBundle.getModel() instanceof HierarchicElementBase ||
+				endBundle.getModel() instanceof HierarchicElementBase) {
+			return;
+		}
+
+		// Create the connection
 		super.link(startBundle, startLocation, endBundle, endLocation);
 
 		// Fetch newly created connection by comparing incoming and outgoing connections of the
-- 
GitLab