From fe29690d2f4ad95f77f0b179df180691079da92a Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Thu, 7 Jan 2021 11:44:23 +0100
Subject: [PATCH] Update on UCD: forbidding extend and generalization from a
 use case to itself - ticket 275

---
 modeling/AVATAR/CoffeeMachine_Avatar.xml            |  2 +-
 src/main/java/ui/avatarmad/AvatarMADAssumption.java |  8 +-------
 src/main/java/ui/ucd/TGConnectingPointUCD.java      | 10 +++++++++-
 3 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/modeling/AVATAR/CoffeeMachine_Avatar.xml b/modeling/AVATAR/CoffeeMachine_Avatar.xml
index 68d045ffaf..ff5c4f080a 100644
--- a/modeling/AVATAR/CoffeeMachine_Avatar.xml
+++ b/modeling/AVATAR/CoffeeMachine_Avatar.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="false" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="3">
+<TURTLEGMODELING version="1.0beta" ANIMATE_INTERACTIVE_SIMULATION="false" ACTIVATE_PENALTIES="true" UPDATE_INFORMATION_DIPLO_SIM="false" ANIMATE_WITH_INFO_DIPLO_SIM="true" OPEN_DIAG_DIPLO_SIM="false" LAST_SELECTED_MAIN_TAB="1" LAST_SELECTED_SUB_TAB="0">
 
 <Modeling type="Avatar Requirement" nameTab="AVATAR Requirements" >
 <AvatarRDPanel name="AVATAR RD" minX="10" maxX="1900" minY="10" maxY="1400" zoom="1.0" >
diff --git a/src/main/java/ui/avatarmad/AvatarMADAssumption.java b/src/main/java/ui/avatarmad/AvatarMADAssumption.java
index 6d1dc1d9cc..87312f4a6b 100644
--- a/src/main/java/ui/avatarmad/AvatarMADAssumption.java
+++ b/src/main/java/ui/avatarmad/AvatarMADAssumption.java
@@ -319,7 +319,6 @@ public class AvatarMADAssumption extends TGCScalableWithInternalComponent implem
                 return false;
             }
 
-
             int size = graphics.getFontMetrics().stringWidth(s) + iconSize + 5;
             minDesiredWidth = Math.max(size, minWidth);
             if (minDesiredWidth != width) {
@@ -327,15 +326,10 @@ public class AvatarMADAssumption extends TGCScalableWithInternalComponent implem
             }
             setValue(s);
 
-
         }
 
-
         return true;
-
-        // On the name ?
-
-
+        
     }
 
 
diff --git a/src/main/java/ui/ucd/TGConnectingPointUCD.java b/src/main/java/ui/ucd/TGConnectingPointUCD.java
index 02c40f34a4..0c1ee77abe 100755
--- a/src/main/java/ui/ucd/TGConnectingPointUCD.java
+++ b/src/main/java/ui/ucd/TGConnectingPointUCD.java
@@ -61,7 +61,8 @@ public class TGConnectingPointUCD extends  TGConnectingPointWidthHeight{
     @Override
     public boolean isCompatibleWith(int type) {
         //
-        if ((type == TGComponentManager.CONNECTOR_ACTOR_UCD) ||(type == TGComponentManager.CONNECTOR_INCLUDE_UCD) || (type == TGComponentManager.CONNECTOR_SPECIA_UCD) || (type == TGComponentManager.CONNECTOR_EXTEND_UCD)) {
+        if ((type == TGComponentManager.CONNECTOR_ACTOR_UCD) ||(type == TGComponentManager.CONNECTOR_INCLUDE_UCD) ||
+                (type == TGComponentManager.CONNECTOR_SPECIA_UCD) || (type == TGComponentManager.CONNECTOR_EXTEND_UCD)) {
             //
             return true;
         }
@@ -93,6 +94,13 @@ public class TGConnectingPointUCD extends  TGConnectingPointWidthHeight{
                 return false;
             }
 
+            if ((outPoint.getFather() == getFather()) && (type == TGComponentManager.CONNECTOR_EXTEND_UCD)) {
+                return false;
+            }
+
+            if ((outPoint.getFather() == getFather()) && (type == TGComponentManager.CONNECTOR_SPECIA_UCD)) {
+                return false;
+            }
 
         }
 
-- 
GitLab