From 56980edcd7851747712320218c268aa983c54d9e Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Wed, 3 Jun 2015 10:14:15 +0000
Subject: [PATCH] Adding for loop in CP diagrams

---
 src/tmltranslator/tmlcp/TMLCPChoice.java  |    2 +-
 src/tmltranslator/tmlcp/TMLCPForLoop.java |   78 +
 src/ui/MainGUI.java                       |    2 +
 src/ui/TGComponentManager.java            | 2710 +++++++++++----------
 src/ui/TGUIAction.java                    |    4 +-
 src/ui/tmlcp/TMLCPChoice.java             |  216 +-
 src/ui/tmlcp/TMLCPForLoop.java            |  257 ++
 src/ui/tmlcp/TMLCPToolBar.java            |  171 +-
 8 files changed, 1892 insertions(+), 1548 deletions(-)
 create mode 100755 src/tmltranslator/tmlcp/TMLCPForLoop.java
 create mode 100755 src/ui/tmlcp/TMLCPForLoop.java

diff --git a/src/tmltranslator/tmlcp/TMLCPChoice.java b/src/tmltranslator/tmlcp/TMLCPChoice.java
index 2994bae5bc..699d6cb6d7 100755
--- a/src/tmltranslator/tmlcp/TMLCPChoice.java
+++ b/src/tmltranslator/tmlcp/TMLCPChoice.java
@@ -44,7 +44,7 @@ knowledge of the CeCILL license and that you accept its terms.
 * @see
 */
 
-package tmltranslator.tmlcp;;
+package tmltranslator.tmlcp;
 
 import java.util.*;
 
diff --git a/src/tmltranslator/tmlcp/TMLCPForLoop.java b/src/tmltranslator/tmlcp/TMLCPForLoop.java
new file mode 100755
index 0000000000..687f83d048
--- /dev/null
+++ b/src/tmltranslator/tmlcp/TMLCPForLoop.java
@@ -0,0 +1,78 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+
+ludovic.apvrille AT enst.fr
+
+This software is a computer program whose purpose is to allow the 
+edition of TURTLE analysis, design and deployment diagrams, to 
+allow the generation of RT-LOTOS or Java code from this diagram, 
+and at last to allow the analysis of formal validation traces 
+obtained from external tools, e.g. RTL from LAAS-CNRS and CADP 
+from INRIA Rhone-Alpes.
+
+This software is governed by the CeCILL  license under French law and
+abiding by the rules of distribution of free software.  You can  use, 
+modify and/ or redistribute the software under the terms of the CeCILL
+license as circulated by CEA, CNRS and INRIA at the following URL
+"http://www.cecill.info". 
+
+As a counterpart to the access to the source code and  rights to copy,
+modify and redistribute granted by the license, users are provided only
+with a limited warranty  and the software's author,  the holder of the
+economic rights,  and the successive licensors  have only  limited
+liability. 
+
+In this respect, the user's attention is drawn to the risks associated
+with loading,  using,  modifying and/or developing or reproducing the
+software by the user in light of its specific status of free software,
+that may mean  that it is complicated to manipulate,  and  that  also
+therefore means  that it is reserved for developers  and  experienced
+professionals having in-depth computer knowledge. Users are therefore
+encouraged to load and test the software's suitability as regards their
+requirements in conditions enabling the security of their systems and/or 
+data to be ensured and,  more generally, to use and operate it in the 
+same conditions as regards security. 
+
+The fact that you are presently reading this means that you have had
+knowledge of the CeCILL license and that you accept its terms.
+
+/**
+ * Class TMLForLoop
+ * Creation: 03/06/2015
+ * @version 1.0 03/06/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package tmltranslator.tmlcp;
+
+
+public class TMLForLoop extends TMLCPElement {
+    //next #0 -> loop
+    //next #1 -> after loop
+    
+    private String init, condition, increment;
+
+    //private boolean isInfinite;
+    
+    public TMLForLoop(String _name, Object _referenceObject) {
+         super(_name, _referenceObject);   
+    }
+    
+    public void setInit(String _init) { init = _init; }
+    public void setCondition(String _condition) { condition = _condition; }
+    public void setIncrement(String _increment) { increment = _increment; }
+    
+    public String getInit() { return init;}
+    public String getCondition() { return condition;}
+    public String getIncrement() { return increment;}
+
+    /*public void setInfinite(boolean b) {
+	isInfinite = b;
+    }
+
+    public boolean isInfinite() {
+	return isInfinite;
+	}*/
+    
+ 
+}
diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java
index 52ebf50534..829d2994b2 100755
--- a/src/ui/MainGUI.java
+++ b/src/ui/MainGUI.java
@@ -8301,6 +8301,8 @@ public void actionPerformed(ActionEvent evt)  {
         actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_STOP_STATE);
     } else if (command.equals(actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) {
         actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION);
+    } else if (command.equals(actions[TGUIAction.TMLCP_FOR_LOOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FOR_LOOP);
     } else if (command.equals(actions[TGUIAction.TMLSD_EDIT].getActionCommand())) {
         actionOnButton(TGComponentManager.EDIT, -1);
     } else if (command.equals(actions[TGUIAction.TMLSD_MESSAGE_ASYNC].getActionCommand())) {
diff --git a/src/ui/TGComponentManager.java b/src/ui/TGComponentManager.java
index fb7dd74917..005165e699 100755
--- a/src/ui/TGComponentManager.java
+++ b/src/ui/TGComponentManager.java
@@ -40,7 +40,7 @@
  * Class TGComponentManager
  * Definition and creation of all possible graphical components of TTool
  * Creation: 21/12/2003
- * @version 1.1 28/10/2005
+ * @version 1.2 03/06/2015
  * @author Ludovic APVRILLE, Andrea ENRICI
  * @see
  */
@@ -91,7 +91,7 @@ import ui.avatarcd.*; // Context Diagram
 import ui.avatarad.*; // Activity Diagram
 
 public class TGComponentManager {
-    
+
     public static final int NONE = -1;
     public static final int TAD_DETERMINISTIC_DELAY = 11;
     public static final int TAD_PARALLEL = 12;
@@ -106,11 +106,11 @@ public class TGComponentManager {
     public static final int TAD_DELAY_NON_DETERMINISTIC_DELAY = 20;
     public static final int TAD_CHOICE = 19;
     public static final int TAD_TIME_LIMITED_OFFER_WITH_LATENCY = 10;
-	public static final int TAD_TIME_CAPTURE = 27;
-	public static final int TAD_ARRAY_GET = 25;
-	public static final int TAD_ARRAY_SET = 26;
-    
-    
+    public static final int TAD_TIME_CAPTURE = 27;
+    public static final int TAD_ARRAY_GET = 25;
+    public static final int TAD_ARRAY_SET = 26;
+
+
     public static final int CONNECTOR_AD_DIAGRAM = 101;
     public static final int CONNECTOR_ASSOCIATION = 102;
     public static final int CONNECTOR_ATTRIBUTE = 103;
@@ -124,35 +124,35 @@ public class TGComponentManager {
     public static final int CONNECTOR_SPECIA_UCD = 112;
     public static final int CONNECTOR_EXTEND_UCD = 113;
     public static final int CONNECTOR_NODE_DD = 114;
-    
+
     public static final int CONNECTOR_TMLAD = 115;
     public static final int CONNECTOR_TML_ASSOCIATION_NAV = 116;
     public static final int CONNECTOR_TML_COMPOSITION_OPERATOR = 117;
-    
+
     public static final int CONNECTOR_COMMENT = 118;
-    
+
     public static final int CONNECTOR_DERIVE_REQ = 119;
-	public static final int CONNECTOR_COPY_REQ = 128;
-	public static final int CONNECTOR_COMPOSITION_REQ = 129;
+    public static final int CONNECTOR_COPY_REQ = 128;
+    public static final int CONNECTOR_COMPOSITION_REQ = 129;
     public static final int CONNECTOR_VERIFY_REQ = 120;
-    
+
     public static final int CONNECTOR_PROSMD = 121;
     public static final int CONNECTOR_PROCSD = 122;
     public static final int CONNECTOR_DELEGATE_PROCSD = 123;
     public static final int CONNECTOR_PROCSD_PORT_INTERFACE = 124;
-	
-	public static final int CONNECTOR_NODE_TMLARCHI = 125;
-	
-	public static final int CONNECTOR_PORT_TMLC = 126;
-	
-	public static final int CONNECTOR_NODE_NC = 127;
-	
-	public static final int CONNECTOR_EBRDD = 130;
-	public static final int CONNECTOR_EBRDD_ERC = 131;
-	
-	public static final int ATD_COMPOSITION_CONNECTOR = 132;
-	public static final int ATD_ATTACK_CONNECTOR = 133;
-    
+
+    public static final int CONNECTOR_NODE_TMLARCHI = 125;
+
+    public static final int CONNECTOR_PORT_TMLC = 126;
+
+    public static final int CONNECTOR_NODE_NC = 127;
+
+    public static final int CONNECTOR_EBRDD = 130;
+    public static final int CONNECTOR_EBRDD_ERC = 131;
+
+    public static final int ATD_COMPOSITION_CONNECTOR = 132;
+    public static final int ATD_ATTACK_CONNECTOR = 133;
+
     public static final int TCD_TCLASS = 201;
     public static final int TCD_PARALLEL_OPERATOR = 202;
     public static final int TCD_SEQUENCE_OPERATOR = 203;
@@ -162,9 +162,9 @@ public class TGComponentManager {
     public static final int TCD_TOBJECT = 207;
     public static final int TCD_WATCHDOG_OPERATOR = 208;
     public static final int TCD_TDATA = 209;
-    
+
     public static final int UML_NOTE = 301;
-    
+
     public static final int IOD_CHOICE = 501;
     public static final int IOD_START_STATE = 502;
     public static final int IOD_STOP_STATE = 503;
@@ -174,34 +174,34 @@ public class TGComponentManager {
     public static final int IOD_PREEMPTION = 507;
     public static final int IOD_SEQUENCE = 509;
     public static final int IOD_REF_IOD = 508;
-    
+
     public static final int SD_INSTANCE = 606;
     public static final int SD_ABSOLUTE_TIME_CONSTRAINT = 607;
     public static final int SD_RELATIVE_TIME_CONSTRAINT = 601;
     public static final int SD_ACTION_STATE = 602;
-	public static final int SD_GUARD = 609;
+    public static final int SD_GUARD = 609;
     public static final int SD_TIMER_SETTING = 603;
     public static final int SD_TIMER_CANCELLATION = 604;
     public static final int SD_TIMER_EXPIRATION = 605;
     public static final int SD_TIME_INTERVAL = 608;
     public static final int SD_COREGION = 600;
-    
+
     public static final int UCD_ACTOR = 700;
-	public static final int UCD_ACTORBOX = 703;
+    public static final int UCD_ACTORBOX = 703;
     public static final int UCD_USECASE = 701;
     public static final int UCD_BORDER = 702;
-    
+
     public static final int TDD_NODE = 800;
     public static final int TDD_ARTIFACT = 801;
-    
+
     public static final int DIPLODODUSMETHODOLOGY_REF_APPLICATION = 6000;
     public static final int DIPLODODUSMETHODOLOGY_REF_ARCHITECTURE = 6001;
     public static final int DIPLODODUSMETHODOLOGY_REF_MAPPING = 6002;
     public static final int DIPLODODUSMETHODOLOGY_REF_REQUIREMENT = 6003;
     public static final int DIPLODOCUSMETHODOLOGY_CONNECTOR = 6004;
     public static final int DIPLODODUSMETHODOLOGY_DIAGRAM_NAME = 6005;
-    
-    
+
+
     public static final int TMLAD_START_STATE = 1000;
     public static final int TMLAD_STOP_STATE = 1001;
     public static final int TMLTD_TASK = 1002;
@@ -220,75 +220,76 @@ public class TGComponentManager {
     public static final int TMLAD_FOR_LOOP = 1014;
     public static final int TMLAD_EXECI_INTERVAL = 1015;
     public static final int TMLAD_SEQUENCE = 1016;
-	public static final int TMLAD_UNORDERED_SEQUENCE = 1032;
+    public static final int TMLAD_UNORDERED_SEQUENCE = 1032;
     public static final int TMLAD_SELECT_EVT = 1018;
-	public static final int TMLAD_FOR_STATIC_LOOP = 1020;
-	public static final int TMLAD_EXECC = 1021;
-	public static final int TMLAD_EXECC_INTERVAL = 1022;
-	public static final int TMLAD_RANDOM = 1024;
-	public static final int TMLAD_DELAY = 1026;
-	public static final int TMLAD_INTERVAL_DELAY = 1028;
-	public static final int TMLAD_FOR_EVER_LOOP = 1030;
-	public static final int TMLAD_READ_REQUEST_ARG = 1034;
-	
-	public static final int TMLARCHI_CPUNODE = 1100;
-	public static final int TMLARCHI_ARTIFACT = 1101;
-	public static final int TMLARCHI_BUSNODE = 1102;
-	public static final int TMLARCHI_COMMUNICATION_ARTIFACT = 1103;
-	public static final int TMLARCHI_HWANODE = 1104;
-	public static final int TMLARCHI_MEMORYNODE = 1105;
-	public static final int TMLARCHI_BRIDGENODE = 1106;
-	public static final int TMLARCHI_DMANODE = 1107;
-	public static final int TMLARCHI_CPNODE = 1108;
-	public static final int TMLARCHI_EVENT_ARTIFACT = 1109;
-	public static final int TMLARCHI_PORT_ARTIFACT = 1110;
-
-	public static final int TMLCTD_CCOMPONENT = 1200;
-	public static final int TMLCTD_CPORT = 1201;
-	public static final int TMLCTD_PCOMPONENT = 1202;
-	public static final int TMLCTD_COPORT = 1203;
-	public static final int TMLCTD_CREMOTECOMPONENT = 1204;
-	public static final int TMLCTD_RCOMPONENT = 1205;
-	public static final int TMLCTD_CREMOTEPORTCOMPONENT = 1206;
-	public static final int TMLCTD_FORK = 1207;
-	public static final int TMLCTD_JOIN = 1208;
-	
-	public static final int EBRDD_START_STATE = 1300;
+    public static final int TMLAD_FOR_STATIC_LOOP = 1020;
+    public static final int TMLAD_EXECC = 1021;
+    public static final int TMLAD_EXECC_INTERVAL = 1022;
+    public static final int TMLAD_RANDOM = 1024;
+    public static final int TMLAD_DELAY = 1026;
+    public static final int TMLAD_INTERVAL_DELAY = 1028;
+    public static final int TMLAD_FOR_EVER_LOOP = 1030;
+    public static final int TMLAD_READ_REQUEST_ARG = 1034;
+
+    public static final int TMLARCHI_CPUNODE = 1100;
+    public static final int TMLARCHI_ARTIFACT = 1101;
+    public static final int TMLARCHI_BUSNODE = 1102;
+    public static final int TMLARCHI_COMMUNICATION_ARTIFACT = 1103;
+    public static final int TMLARCHI_HWANODE = 1104;
+    public static final int TMLARCHI_MEMORYNODE = 1105;
+    public static final int TMLARCHI_BRIDGENODE = 1106;
+    public static final int TMLARCHI_DMANODE = 1107;
+    public static final int TMLARCHI_CPNODE = 1108;
+    public static final int TMLARCHI_EVENT_ARTIFACT = 1109;
+    public static final int TMLARCHI_PORT_ARTIFACT = 1110;
+
+    public static final int TMLCTD_CCOMPONENT = 1200;
+    public static final int TMLCTD_CPORT = 1201;
+    public static final int TMLCTD_PCOMPONENT = 1202;
+    public static final int TMLCTD_COPORT = 1203;
+    public static final int TMLCTD_CREMOTECOMPONENT = 1204;
+    public static final int TMLCTD_RCOMPONENT = 1205;
+    public static final int TMLCTD_CREMOTEPORTCOMPONENT = 1206;
+    public static final int TMLCTD_FORK = 1207;
+    public static final int TMLCTD_JOIN = 1208;
+
+    public static final int EBRDD_START_STATE = 1300;
     public static final int EBRDD_STOP_STATE = 1301;
-	public static final int EBRDD_CHOICE = 1302;
+    public static final int EBRDD_CHOICE = 1302;
     public static final int EBRDD_ERC = 1303;
-	public static final int EBRDD_ACTION = 1304;
-	public static final int EBRDD_FOR_LOOP = 1305;
-	public static final int EBRDD_SEQUENCE = 1306;
-	public static final int EBRDD_ESO = 1307;
-	public static final int EBRDD_ERB = 1308;
-	public static final int EBRDD_VARIABLE_DECLARATION = 1309;
-    
+    public static final int EBRDD_ACTION = 1304;
+    public static final int EBRDD_FOR_LOOP = 1305;
+    public static final int EBRDD_SEQUENCE = 1306;
+    public static final int EBRDD_ESO = 1307;
+    public static final int EBRDD_ERB = 1308;
+    public static final int EBRDD_VARIABLE_DECLARATION = 1309;
+
     public static final int TREQ_REQUIREMENT = 900;
     public static final int TREQ_OBSERVER = 901;
-	public static final int TREQ_EBRDD = 902;
-	
-	public static final int ATD_BLOCK = 1400;
-	public static final int ATD_ATTACK = 1401;
-	public static final int ATD_CONSTRAINT = 1402;
-	
-	// TML Communication patterns and TMLSD
-	public static final int TMLCP_CHOICE = 1500;
-	public static final int CONNECTOR_TMLCP = 1501;
-	public static final int TMLCP_FORK = 1502;
-	public static final int TMLCP_JOIN = 1503;
-	public static final int TMLCP_REF_CP = 1504;
-	public static final int TMLCP_REF_SD = 1505;
-	public static final int TMLCP_START_STATE = 1506;
-	public static final int TMLCP_STOP_STATE = 1507;
-	public static final int TMLCP_JUNCTION = 1508;
-
-	public static final int TMLSD_STORAGE_INSTANCE = 1520;
-	public static final int TMLSD_TRANSFER_INSTANCE = 1521;
-	public static final int TMLSD_CONTROLLER_INSTANCE = 1522;
-	public static final int CONNECTOR_MESSAGE_ASYNC_TMLSD = 1523;
-	public static final int TMLSD_ACTION_STATE = 1524;
-    
+    public static final int TREQ_EBRDD = 902;
+
+    public static final int ATD_BLOCK = 1400;
+    public static final int ATD_ATTACK = 1401;
+    public static final int ATD_CONSTRAINT = 1402;
+
+    // TML Communication patterns and TMLSD
+    public static final int TMLCP_CHOICE = 1500;
+    public static final int CONNECTOR_TMLCP = 1501;
+    public static final int TMLCP_FORK = 1502;
+    public static final int TMLCP_JOIN = 1503;
+    public static final int TMLCP_REF_CP = 1504;
+    public static final int TMLCP_REF_SD = 1505;
+    public static final int TMLCP_START_STATE = 1506;
+    public static final int TMLCP_STOP_STATE = 1507;
+    public static final int TMLCP_JUNCTION = 1508;
+    public static final int TMLCP_FOR_LOOP = 1510;
+
+    public static final int TMLSD_STORAGE_INSTANCE = 1520;
+    public static final int TMLSD_TRANSFER_INSTANCE = 1521;
+    public static final int TMLSD_CONTROLLER_INSTANCE = 1522;
+    public static final int CONNECTOR_MESSAGE_ASYNC_TMLSD = 1523;
+    public static final int TMLSD_ACTION_STATE = 1524;
+
     // SMD diagram
     public static final int PROSMD_START_STATE = 2000;
     public static final int PROSMD_STOP_STATE = 2001;
@@ -302,12 +303,12 @@ public class TGComponentManager {
     public static final int PROSMD_STATE=2016;
     // CSD diagram
     public static final int PROCSD_COMPONENT = 2100;
-      //No more delegate ports, by Solange
+    //No more delegate ports, by Solange
     //public static final int PROCSD_DELEGATE_PORT = 2102;
     public static final int PROCSD_INTERFACE = 2104;
     public static final int PROCSD_IN_PORT = 2106;
     public static final int PROCSD_OUT_PORT = 2108;
-    
+
     // TURTLE-OS
     public static final int TOSCD_TCLASS = 3000;
     public static final int TOS_CONNECTOR_ATTRIBUTE = 3001;
@@ -315,7 +316,7 @@ public class TGComponentManager {
     public static final int TOS_CONNECTOR_ASSOCIATION = 3003;
     public static final int TOSCD_CALL_OPERATOR = 3004;
     public static final int TOSCD_EVT_OPERATOR = 3013;
-    
+
     public static final int TOSAD_ACTION_STATE = 3005;
     public static final int TOSAD_CONNECTOR = 3006;
     public static final int TOSAD_CHOICE = 3007;
@@ -324,868 +325,871 @@ public class TGComponentManager {
     public static final int TOSAD_JUNCTION = 3010;
     public static final int TOSAD_TIME_INTERVAL = 3011;
     public static final int TOSAD_INT_TIME_INTERVAL = 3012;
-	
-	// NC
-	public static final int NCDD_EQNODE = 4000;
-	public static final int NCDD_SWITCHNODE = 4001;
+
+    // NC
+    public static final int NCDD_EQNODE = 4000;
+    public static final int NCDD_SWITCHNODE = 4001;
     public static final int NCDD_TRAFFIC_ARTIFACT = 4002;
-	public static final int NCDD_ROUTE_ARTIFACT = 4003;
-	
-	// AVATAR BD -> starts at 5000
-	public static final int AVATARBD_BLOCK = 5000;
-	public static final int AVATARBD_CRYPTOBLOCK = 5004;
-	public static final int AVATARBD_COMPOSITION_CONNECTOR = 5001;
-	public static final int AVATARBD_PORT_CONNECTOR = 5002;
-	public static final int AVATARBD_DATATYPE = 5003;
-	
-	// AVATAR SMD -> starts at 5100
-	public static final int AVATARSMD_START_STATE = 5100;
+    public static final int NCDD_ROUTE_ARTIFACT = 4003;
+
+    // AVATAR BD -> starts at 5000
+    public static final int AVATARBD_BLOCK = 5000;
+    public static final int AVATARBD_CRYPTOBLOCK = 5004;
+    public static final int AVATARBD_COMPOSITION_CONNECTOR = 5001;
+    public static final int AVATARBD_PORT_CONNECTOR = 5002;
+    public static final int AVATARBD_DATATYPE = 5003;
+
+    // AVATAR SMD -> starts at 5100
+    public static final int AVATARSMD_START_STATE = 5100;
     public static final int AVATARSMD_STOP_STATE = 5101;
-	public static final int AVATARSMD_CONNECTOR = 5102;
-	public static final int AVATARSMD_SEND_SIGNAL = 5103;
-	public static final int AVATARSMD_RECEIVE_SIGNAL = 5104;
-	public static final int AVATARSMD_PARALLEL = 5105;
-	public static final int AVATARSMD_STATE = 5106;
-	public static final int AVATARSMD_CHOICE = 5107;
-	public static final int AVATARSMD_RANDOM = 5108;
-	public static final int AVATARSMD_SET_TIMER = 5109;
-	public static final int AVATARSMD_RESET_TIMER = 5110;
-	public static final int AVATARSMD_EXPIRE_TIMER = 5111;
-	
-	// AVATAR RD -> starts at 5200
-	public static final int AVATARRD_REQUIREMENT = 5200;
+    public static final int AVATARSMD_CONNECTOR = 5102;
+    public static final int AVATARSMD_SEND_SIGNAL = 5103;
+    public static final int AVATARSMD_RECEIVE_SIGNAL = 5104;
+    public static final int AVATARSMD_PARALLEL = 5105;
+    public static final int AVATARSMD_STATE = 5106;
+    public static final int AVATARSMD_CHOICE = 5107;
+    public static final int AVATARSMD_RANDOM = 5108;
+    public static final int AVATARSMD_SET_TIMER = 5109;
+    public static final int AVATARSMD_RESET_TIMER = 5110;
+    public static final int AVATARSMD_EXPIRE_TIMER = 5111;
+
+    // AVATAR RD -> starts at 5200
+    public static final int AVATARRD_REQUIREMENT = 5200;
     public static final int AVATARRD_PROPERTY = 5201;
-	public static final int AVATARRD_DERIVE_CONNECTOR = 5202; 
-	public static final int AVATARRD_REFINE_CONNECTOR = 5206;  
-	public static final int AVATARRD_VERIFY_CONNECTOR = 5203;
-	public static final int AVATARRD_COPY_CONNECTOR = 5204;
-	public static final int AVATARRD_COMPOSITION_CONNECTOR = 5205;
-	
-	// AVATAR AMD -> starts at 5250
-	public static final int AVATARMAD_ASSUMPTION = 5250;
+    public static final int AVATARRD_DERIVE_CONNECTOR = 5202;
+    public static final int AVATARRD_REFINE_CONNECTOR = 5206;
+    public static final int AVATARRD_VERIFY_CONNECTOR = 5203;
+    public static final int AVATARRD_COPY_CONNECTOR = 5204;
+    public static final int AVATARRD_COMPOSITION_CONNECTOR = 5205;
+
+    // AVATAR AMD -> starts at 5250
+    public static final int AVATARMAD_ASSUMPTION = 5250;
     public static final int AVATARMAD_DIAGRAM_REFERENCE = 5251;
-	public static final int AVATARMAD_ELEMENT_REFERENCE = 5252; 
-	public static final int AVATARMAD_COMPOSITION_CONNECTOR = 5253;  
-	public static final int AVATARMAD_VERSIONING_CONNECTOR = 5254;
-	public static final int AVATARMAD_IMPACT_CONNECTOR = 5255;
-	public static final int AVATARMAD_MEET_CONNECTOR = 5256;
-	
-	// AVATAR PD -> starts at 5300
-	public static final int APD_BLOCK = 5300;
+    public static final int AVATARMAD_ELEMENT_REFERENCE = 5252;
+    public static final int AVATARMAD_COMPOSITION_CONNECTOR = 5253;
+    public static final int AVATARMAD_VERSIONING_CONNECTOR = 5254;
+    public static final int AVATARMAD_IMPACT_CONNECTOR = 5255;
+    public static final int AVATARMAD_MEET_CONNECTOR = 5256;
+
+    // AVATAR PD -> starts at 5300
+    public static final int APD_BLOCK = 5300;
     public static final int APD_LOGICAL_CONSTRAINT = 5301;
-	public static final int APD_TEMPORAL_CONSTRAINT = 5302;  
-	public static final int APD_ATTRIBUTE = 5303;
-	public static final int APD_SIGNAL = 5304;
-	public static final int APD_ALIAS = 5305;
-	public static final int APD_BOOLEQ = 5306;
+    public static final int APD_TEMPORAL_CONSTRAINT = 5302;
+    public static final int APD_ATTRIBUTE = 5303;
+    public static final int APD_SIGNAL = 5304;
+    public static final int APD_ALIAS = 5305;
+    public static final int APD_BOOLEQ = 5306;
     public static final int APD_ATTRIBUTE_SETTING = 5307;
-	public static final int APD_PROPERTY = 5308;  
-	public static final int APD_PROPERTY_RELATION = 5309;
-	public static final int APD_ATTRIBUTE_CONNECTOR = 5310;
-	public static final int APD_SIGNAL_CONNECTOR = 5311;
-	public static final int APD_PROPERTY_CONNECTOR = 5312;
-	public static final int APD_COMPOSITION_CONNECTOR = 5313;
-	
-	// Avatar Deployment Diagrams at 5350
-	public static final int ADD_CONNECTOR = 5350;
-	public static final int ADD_CPUNODE = 5351;
-	public static final int ADD_ARTIFACT = 5352;
-	public static final int ADD_BUSNODE = 5353;
-	public static final int ADD_TTYNODE = 5354;
-	public static final int ADD_RAMNODE = 5355;        
-	public static final int ADD_ROMNODE = 5356;
-	public static final int ADD_BRIDGENODE = 5357;
-	public static final int ADD_DMANODE = 5358;
-	public static final int ADD_ICUNODE = 5359;
-	public static final int ADD_COPROMWMRNODE = 5360;
-	public static final int ADD_TIMERNODE = 5361;
-	public static final int ADD_CHANNELARTIFACT = 5362;
-	
-	// AVATAR CD -> starts at 5400
-	public static final int ACD_BLOCK = 5400;
+    public static final int APD_PROPERTY = 5308;
+    public static final int APD_PROPERTY_RELATION = 5309;
+    public static final int APD_ATTRIBUTE_CONNECTOR = 5310;
+    public static final int APD_SIGNAL_CONNECTOR = 5311;
+    public static final int APD_PROPERTY_CONNECTOR = 5312;
+    public static final int APD_COMPOSITION_CONNECTOR = 5313;
+
+    // Avatar Deployment Diagrams at 5350
+    public static final int ADD_CONNECTOR = 5350;
+    public static final int ADD_CPUNODE = 5351;
+    public static final int ADD_ARTIFACT = 5352;
+    public static final int ADD_BUSNODE = 5353;
+    public static final int ADD_TTYNODE = 5354;
+    public static final int ADD_RAMNODE = 5355;
+    public static final int ADD_ROMNODE = 5356;
+    public static final int ADD_BRIDGENODE = 5357;
+    public static final int ADD_DMANODE = 5358;
+    public static final int ADD_ICUNODE = 5359;
+    public static final int ADD_COPROMWMRNODE = 5360;
+    public static final int ADD_TIMERNODE = 5361;
+    public static final int ADD_CHANNELARTIFACT = 5362;
+
+    // AVATAR CD -> starts at 5400
+    public static final int ACD_BLOCK = 5400;
     public static final int ACD_ACTOR_STICKMAN = 5401;
-	public static final int ACD_ACTOR_BOX = 5402;  
-	public static final int ACD_COMPOSITION_CONNECTOR = 5403;
-	public static final int ACD_ASSOCIATION_CONNECTOR = 5404;
-	
-	// AVATAR AD -> starts at 5500
-	public static final int AAD_ASSOCIATION_CONNECTOR = 5500;
-	public static final int AAD_START_STATE = 5501;
-	public static final int AAD_STOP_STATE = 5502;
-	public static final int AAD_CHOICE = 5503;
-	public static final int AAD_JUNCTION = 5504;
-	public static final int AAD_PARALLEL = 5505;
-	public static final int AAD_ACTION = 5506;
-	public static final int AAD_ACTIVITY = 5507;
-	public static final int AAD_STOP_FLOW = 5508;
-	public static final int AAD_SEND_SIGNAL_ACTION = 5509;
-	public static final int AAD_ACCEPT_EVENT_ACTION = 5510;
-	public static final int AAD_PARTITION = 5511;
-	
-	
-	// Avatar Methodology Diagrams at 5600
-	public static final int AVATARMETHODOLOGY_REF_ASSUMPTIONS = 5601;
-	public static final int AVATARMETHODOLOGY_REF_REQUIREMENT = 5602;
-	public static final int AVATARMETHODOLOGY_REF_ANALYSIS = 5603;
-	public static final int AVATARMETHODOLOGY_REF_DESIGN = 5604;
-	public static final int AVATARMETHODOLOGY_REF_PROPERTIES = 5605;
-	public static final int AVATARMETHODOLOGY_REF_PROTOTYPE = 5606;      
-	public static final int AVATARMETHODOLOGY_DIAGRAM_NAME = 5607;      
-	public static final int AVATARMETHODOLOGY_CONNECTOR = 5608;      
-	
-    
+    public static final int ACD_ACTOR_BOX = 5402;
+    public static final int ACD_COMPOSITION_CONNECTOR = 5403;
+    public static final int ACD_ASSOCIATION_CONNECTOR = 5404;
+
+    // AVATAR AD -> starts at 5500
+    public static final int AAD_ASSOCIATION_CONNECTOR = 5500;
+    public static final int AAD_START_STATE = 5501;
+    public static final int AAD_STOP_STATE = 5502;
+    public static final int AAD_CHOICE = 5503;
+    public static final int AAD_JUNCTION = 5504;
+    public static final int AAD_PARALLEL = 5505;
+    public static final int AAD_ACTION = 5506;
+    public static final int AAD_ACTIVITY = 5507;
+    public static final int AAD_STOP_FLOW = 5508;
+    public static final int AAD_SEND_SIGNAL_ACTION = 5509;
+    public static final int AAD_ACCEPT_EVENT_ACTION = 5510;
+    public static final int AAD_PARTITION = 5511;
+
+
+    // Avatar Methodology Diagrams at 5600
+    public static final int AVATARMETHODOLOGY_REF_ASSUMPTIONS = 5601;
+    public static final int AVATARMETHODOLOGY_REF_REQUIREMENT = 5602;
+    public static final int AVATARMETHODOLOGY_REF_ANALYSIS = 5603;
+    public static final int AVATARMETHODOLOGY_REF_DESIGN = 5604;
+    public static final int AVATARMETHODOLOGY_REF_PROPERTIES = 5605;
+    public static final int AVATARMETHODOLOGY_REF_PROTOTYPE = 5606;
+    public static final int AVATARMETHODOLOGY_DIAGRAM_NAME = 5607;
+    public static final int AVATARMETHODOLOGY_CONNECTOR = 5608;
+
+
     public static final int EDIT = -1;
     public static final int COMPONENT = 0;
     public static final int CONNECTOR = 1;
-    
-    
+
+
     public final static TGComponent addComponent(int x, int y, int id, TDiagramPanel tdp) {
         TGComponent tgc = null;
         switch (id) {
-			// AVATAR
-			case AVATARBD_BLOCK:
-                tgc = new AvatarBDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARBD_CRYPTOBLOCK:
-                tgc = new AvatarBDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-				((AvatarBDBlock)tgc).addCryptoElements();
-                break;
-			case AVATARBD_DATATYPE:
-                tgc = new AvatarBDDataType(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_START_STATE:
-                tgc = new AvatarSMDStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_STOP_STATE:
-                tgc = new AvatarSMDStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_SEND_SIGNAL:
-                tgc = new AvatarSMDSendSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_RECEIVE_SIGNAL:
-                tgc = new AvatarSMDReceiveSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_PARALLEL:
-                tgc = new AvatarSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_STATE:
-                tgc = new AvatarSMDState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_CHOICE:
-                tgc = new AvatarSMDChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_RANDOM:
-                tgc = new AvatarSMDRandom(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_SET_TIMER:
-                tgc = new AvatarSMDSetTimer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_RESET_TIMER:
-                tgc = new AvatarSMDResetTimer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARSMD_EXPIRE_TIMER:
-                tgc = new AvatarSMDExpireTimer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-				
-			case AVATARRD_REQUIREMENT:
-                tgc = new AvatarRDRequirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AVATARRD_PROPERTY:
-                tgc = new AvatarRDProperty(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-                
-            case AVATARMAD_ASSUMPTION:
-                tgc = new AvatarMADAssumption(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case AVATARMAD_DIAGRAM_REFERENCE:
-                tgc = new AvatarMADDiagramReference(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case AVATARMAD_ELEMENT_REFERENCE:
-                tgc = new AvatarMADElementReference(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-				
-			// AVATAR PD
-			case APD_BLOCK:
-                tgc = new AvatarPDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_LOGICAL_CONSTRAINT:
-                tgc = new AvatarPDLogicalConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_TEMPORAL_CONSTRAINT:
-                tgc = new AvatarPDTemporalConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_ATTRIBUTE:
-                tgc = new AvatarPDAttribute(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_SIGNAL:
-                tgc = new AvatarPDSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_ALIAS:
-                tgc = new AvatarPDAlias(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_BOOLEQ:
-                tgc = new AvatarPDBoolEq(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_ATTRIBUTE_SETTING:
-                tgc = new AvatarPDAttributeSetting(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_PROPERTY:
-                tgc = new AvatarPDProperty(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case APD_PROPERTY_RELATION:
-                tgc = new AvatarPDPropertyRelation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-				
-			// AVATAR CD
-			case ACD_BLOCK:
-                tgc = new AvatarCDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case ACD_ACTOR_STICKMAN:
-                tgc = new AvatarCDActorStickman(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case ACD_ACTOR_BOX:
-                tgc = new AvatarCDActorBox(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-                
-             // AVATAR AD
-			case AAD_START_STATE:
-                tgc = new AvatarADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case AAD_STOP_STATE:
-                tgc = new AvatarADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-             case AAD_CHOICE:
-                tgc = new AvatarADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-             case AAD_JUNCTION:
-                tgc = new AvatarADJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-              case AAD_PARALLEL:
-                tgc = new AvatarADParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-              case AAD_ACTION:
-                tgc = new AvatarADAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case AAD_ACTIVITY:
-                tgc = new AvatarADActivity(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case AAD_STOP_FLOW:
-                tgc = new AvatarADStopFlow(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case AAD_SEND_SIGNAL_ACTION:
-                tgc = new AvatarADSendSignalAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case AAD_ACCEPT_EVENT_ACTION:
-                tgc = new AvatarADAcceptEventAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case AAD_PARTITION:
-                tgc = new AvatarADPartition(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-                
+            // AVATAR
+        case AVATARBD_BLOCK:
+            tgc = new AvatarBDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARBD_CRYPTOBLOCK:
+            tgc = new AvatarBDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            ((AvatarBDBlock)tgc).addCryptoElements();
+            break;
+        case AVATARBD_DATATYPE:
+            tgc = new AvatarBDDataType(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_START_STATE:
+            tgc = new AvatarSMDStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_STOP_STATE:
+            tgc = new AvatarSMDStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_SEND_SIGNAL:
+            tgc = new AvatarSMDSendSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_RECEIVE_SIGNAL:
+            tgc = new AvatarSMDReceiveSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_PARALLEL:
+            tgc = new AvatarSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_STATE:
+            tgc = new AvatarSMDState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_CHOICE:
+            tgc = new AvatarSMDChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_RANDOM:
+            tgc = new AvatarSMDRandom(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_SET_TIMER:
+            tgc = new AvatarSMDSetTimer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_RESET_TIMER:
+            tgc = new AvatarSMDResetTimer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARSMD_EXPIRE_TIMER:
+            tgc = new AvatarSMDExpireTimer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+        case AVATARRD_REQUIREMENT:
+            tgc = new AvatarRDRequirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARRD_PROPERTY:
+            tgc = new AvatarRDProperty(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+        case AVATARMAD_ASSUMPTION:
+            tgc = new AvatarMADAssumption(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMAD_DIAGRAM_REFERENCE:
+            tgc = new AvatarMADDiagramReference(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMAD_ELEMENT_REFERENCE:
+            tgc = new AvatarMADElementReference(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+            // AVATAR PD
+        case APD_BLOCK:
+            tgc = new AvatarPDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_LOGICAL_CONSTRAINT:
+            tgc = new AvatarPDLogicalConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_TEMPORAL_CONSTRAINT:
+            tgc = new AvatarPDTemporalConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_ATTRIBUTE:
+            tgc = new AvatarPDAttribute(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_SIGNAL:
+            tgc = new AvatarPDSignal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_ALIAS:
+            tgc = new AvatarPDAlias(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_BOOLEQ:
+            tgc = new AvatarPDBoolEq(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_ATTRIBUTE_SETTING:
+            tgc = new AvatarPDAttributeSetting(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_PROPERTY:
+            tgc = new AvatarPDProperty(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case APD_PROPERTY_RELATION:
+            tgc = new AvatarPDPropertyRelation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+            // AVATAR CD
+        case ACD_BLOCK:
+            tgc = new AvatarCDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ACD_ACTOR_STICKMAN:
+            tgc = new AvatarCDActorStickman(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ACD_ACTOR_BOX:
+            tgc = new AvatarCDActorBox(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+            // AVATAR AD
+        case AAD_START_STATE:
+            tgc = new AvatarADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_STOP_STATE:
+            tgc = new AvatarADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_CHOICE:
+            tgc = new AvatarADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_JUNCTION:
+            tgc = new AvatarADJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_PARALLEL:
+            tgc = new AvatarADParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_ACTION:
+            tgc = new AvatarADAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_ACTIVITY:
+            tgc = new AvatarADActivity(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_STOP_FLOW:
+            tgc = new AvatarADStopFlow(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_SEND_SIGNAL_ACTION:
+            tgc = new AvatarADSendSignalAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_ACCEPT_EVENT_ACTION:
+            tgc = new AvatarADAcceptEventAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AAD_PARTITION:
+            tgc = new AvatarADPartition(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
             //AVATAR DD
-            case ADD_CPUNODE:
-                tgc = new ADDCPUNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case ADD_BUSNODE:
-                tgc = new ADDBusNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case ADD_TTYNODE:
-                tgc = new ADDTTYNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case ADD_BRIDGENODE:
-                tgc = new ADDBridgeNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case ADD_RAMNODE:
-                tgc = new ADDRAMNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case ADD_ROMNODE:
-                tgc = new ADDROMNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-             case ADD_DMANODE:
-                tgc = new ADDDMANode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case ADD_ICUNODE:
-                tgc = new ADDICUNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case ADD_COPROMWMRNODE:
-                tgc = new ADDCoproMWMRNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case ADD_TIMERNODE:
-                tgc = new ADDTimerNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case ADD_ARTIFACT:
-                tgc = new ADDBlockArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case ADD_CHANNELARTIFACT:
-                tgc = new ADDChannelArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-                
+        case ADD_CPUNODE:
+            tgc = new ADDCPUNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_BUSNODE:
+            tgc = new ADDBusNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_TTYNODE:
+            tgc = new ADDTTYNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_BRIDGENODE:
+            tgc = new ADDBridgeNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_RAMNODE:
+            tgc = new ADDRAMNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_ROMNODE:
+            tgc = new ADDROMNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_DMANODE:
+            tgc = new ADDDMANode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_ICUNODE:
+            tgc = new ADDICUNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_COPROMWMRNODE:
+            tgc = new ADDCoproMWMRNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_TIMERNODE:
+            tgc = new ADDTimerNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_ARTIFACT:
+            tgc = new ADDBlockArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ADD_CHANNELARTIFACT:
+            tgc = new ADDChannelArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
             //AVATAR Methodology
-            case AVATARMETHODOLOGY_REF_ASSUMPTIONS:
-                tgc = new AvatarMethodologyReferenceToAssumptions(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;   
-            case AVATARMETHODOLOGY_REF_REQUIREMENT:
-                tgc = new AvatarMethodologyReferenceToRequirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case AVATARMETHODOLOGY_REF_ANALYSIS:
-                tgc = new AvatarMethodologyReferenceToAnalysis(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case AVATARMETHODOLOGY_REF_DESIGN:
-                tgc = new AvatarMethodologyReferenceToDesign(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case AVATARMETHODOLOGY_REF_PROPERTIES:
-                tgc = new AvatarMethodologyReferenceToProperties(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case AVATARMETHODOLOGY_REF_PROTOTYPE:
-                tgc = new AvatarMethodologyReferenceToPrototype(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;  
-            case AVATARMETHODOLOGY_DIAGRAM_NAME:
-                tgc = new AvatarMethodologyDiagramName(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-                
-			
-				
-			// Others
-            case TAD_DETERMINISTIC_DELAY:
-                tgc = new TADDeterministicDelay(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_PARALLEL:
-                tgc = new TADParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_SEQUENCE:
-                tgc = new TADSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_PREEMPTION:
-                tgc = new TADPreemption(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_STOP_STATE:
-                tgc = new TADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_START_STATE:
-                tgc = new TADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_ACTION_STATE:
-                tgc = new TADActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TAD_ARRAY_GET:
-                tgc = new TADArrayGetState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TAD_ARRAY_SET:
-                tgc = new TADArraySetState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_TIME_LIMITED_OFFER:
-                tgc = new TADTimeLimitedOffer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_JUNCTION:
-                tgc = new TADJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_NON_DETERMINISTIC_DELAY:
-                tgc = new TADNonDeterministicDelay(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_DELAY_NON_DETERMINISTIC_DELAY:
-                tgc = new TADTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_TIME_LIMITED_OFFER_WITH_LATENCY:
-                tgc = new TADTimeLimitedOfferWithLatency(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TAD_TIME_CAPTURE:
-                tgc = new TADTimeCapture(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TAD_CHOICE:
-                tgc = new TADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_TCLASS:
-                tgc = new TCDTClass(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_TOBJECT:
-                tgc = new TCDTObject(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_TDATA:
-                tgc = new TCDTData(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_PARALLEL_OPERATOR:
-                tgc = new TCDParallelOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_SEQUENCE_OPERATOR:
-                tgc = new TCDSequenceOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_PREEMPTION_OPERATOR:
-                tgc = new TCDPreemptionOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_SYNCHRO_OPERATOR:
-                tgc = new TCDSynchroOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_INVOCATION_OPERATOR:
-                tgc = new TCDInvocationOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TCD_WATCHDOG_OPERATOR:
-                tgc = new TCDWatchdogOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case UML_NOTE:
-                tgc = new TGCNote(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_CHOICE:
-                tgc = new IODChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_START_STATE:
-                tgc = new IODStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_STOP_STATE:
-                tgc = new IODStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_JUNCTION:
-                tgc = new IODJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_PARALLEL:
-                tgc = new IODParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_REF_SD:
-                tgc = new IODRefSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_REF_IOD:
-                tgc = new IODRefIOD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_PREEMPTION:
-                tgc = new IODPreemption(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case IOD_SEQUENCE:
-                tgc = new IODSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_INSTANCE:
-                tgc = new SDInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_ABSOLUTE_TIME_CONSTRAINT:
-                tgc = new SDAbsoluteTimeConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_RELATIVE_TIME_CONSTRAINT:
-                tgc = new SDRelativeTimeConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_ACTION_STATE:
-                tgc = new SDActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case SD_GUARD:
-                tgc = new SDGuard(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_TIME_INTERVAL:
-                tgc = new SDTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_TIMER_SETTING:
-                tgc = new SDTimerSetting(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_TIMER_EXPIRATION:
-                tgc = new SDTimerExpiration(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_TIMER_CANCELLATION:
-                tgc = new SDTimerCancellation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case SD_COREGION:
-                tgc = new SDCoregion(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case UCD_ACTOR:
-                tgc = new UCDActor(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case UCD_ACTORBOX:
-                tgc = new UCDActorBox(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case UCD_USECASE:
-                tgc = new UCDUseCase(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case UCD_BORDER:
-                tgc = new UCDBorder(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TDD_NODE:
-                tgc = new TDDNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TDD_ARTIFACT:
-                tgc = new TDDArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_START_STATE:
-                tgc = new EBRDDStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case EBRDD_STOP_STATE:
-                tgc = new EBRDDStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_CHOICE:
-                tgc = new EBRDDChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_ERC:
-                tgc = new EBRDDERC(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_ACTION:
-                tgc = new EBRDDActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_FOR_LOOP:
-                tgc = new EBRDDForLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_VARIABLE_DECLARATION:
-                tgc = new EBRDDAttributeBox(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_SEQUENCE:
-                tgc = new EBRDDSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_ESO:
-                tgc = new EBRDDESO(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case EBRDD_ERB:
-                tgc = new EBRDDERB(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case ATD_BLOCK:
-                tgc = new ATDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case ATD_ATTACK:
-                tgc = new ATDAttack(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;   
-			case ATD_CONSTRAINT:
-                tgc = new ATDConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case DIPLODODUSMETHODOLOGY_REF_APPLICATION:
-                tgc = new DiplodocusMethodologyDiagramReferenceToApplication(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case DIPLODODUSMETHODOLOGY_REF_ARCHITECTURE:
-                tgc = new DiplodocusMethodologyDiagramReferenceToArchitecture(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case DIPLODODUSMETHODOLOGY_REF_MAPPING:
-                tgc = new DiplodocusMethodologyDiagramReferenceToMapping(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case DIPLODODUSMETHODOLOGY_REF_REQUIREMENT:
-                tgc = new DiplodocusMethodologyDiagramReferenceToRequirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case DIPLODODUSMETHODOLOGY_DIAGRAM_NAME:
-                tgc = new DiplodocusMethodologyDiagramName(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-                
-            case TMLAD_START_STATE:
-                tgc = new TMLADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_STOP_STATE:
-                tgc = new TMLADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_WRITE_CHANNEL:
-                tgc = new TMLADWriteChannel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_READ_CHANNEL:
-                tgc = new TMLADReadChannel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_SEND_REQUEST:
-                tgc = new TMLADSendRequest(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_SEND_EVENT:
-                tgc = new TMLADSendEvent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_WAIT_EVENT:
-                tgc = new TMLADWaitEvent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_NOTIFIED_EVENT:
-                tgc = new TMLADNotifiedEvent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLTD_TASK:
-                tgc = new TMLTaskOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLTD_CHANNEL_OPERATOR:
-                tgc = new TMLChannelOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLTD_EVENT_OPERATOR:
-                tgc = new TMLEventOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLTD_REQUEST_OPERATOR:
-                tgc = new TMLRequestOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_ACTION_STATE:
-                tgc = new TMLADActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_CHOICE:
-                tgc = new TMLADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_EXECI:
-                tgc = new TMLADExecI(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_EXECI_INTERVAL:
-                tgc = new TMLADExecIInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLAD_EXECC:
-                tgc = new TMLADExecC(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_EXECC_INTERVAL:
-                tgc = new TMLADExecCInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLAD_DELAY:
-                tgc = new TMLADDelay(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_INTERVAL_DELAY:
-                tgc = new TMLADDelayInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_FOR_LOOP:
-                tgc = new TMLADForLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLAD_FOR_STATIC_LOOP:
-                tgc = new TMLADForStaticLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLAD_FOR_EVER_LOOP:
-                tgc = new TMLADForEverLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLAD_READ_REQUEST_ARG:
-                tgc = new TMLADReadRequestArg(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_SEQUENCE:
-                tgc = new TMLADSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLAD_UNORDERED_SEQUENCE:
-                tgc = new TMLADUnorderedSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLAD_SELECT_EVT:
-                tgc = new TMLADSelectEvt(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLAD_RANDOM:
-                tgc = new TMLADRandom(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLCTD_CCOMPONENT:
-                tgc = new TMLCCompositeComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLCTD_CREMOTECOMPONENT:
-                tgc = new TMLCRemoteCompositeComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLCTD_CREMOTEPORTCOMPONENT:
-                tgc = new TMLCRemotePortCompositeComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLCTD_CPORT:
-                tgc = new TMLCCompositePort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCTD_JOIN:
-                tgc = new TMLCJoin(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCTD_FORK:
-                tgc = new TMLCFork(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLCTD_PCOMPONENT:
-                tgc = new TMLCPrimitiveComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLCTD_RCOMPONENT:
-                tgc = new TMLCRecordComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLCTD_COPORT:
-                tgc = new TMLCChannelOutPort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TMLARCHI_CPUNODE:
-                tgc = new TMLArchiCPUNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case TMLARCHI_BUSNODE:
-                tgc = new TMLArchiBUSNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-            case TMLARCHI_CPNODE:
-                tgc = new TMLArchiCPNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case TMLARCHI_BRIDGENODE:
-                tgc = new TMLArchiBridgeNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case TMLARCHI_HWANODE:
-                tgc = new TMLArchiHWANode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case TMLARCHI_MEMORYNODE:
-                tgc = new TMLArchiMemoryNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-             case TMLARCHI_DMANODE:
-                tgc = new TMLArchiDMANode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; 
-			case TMLARCHI_ARTIFACT:
-                tgc = new TMLArchiArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLARCHI_COMMUNICATION_ARTIFACT:
-                tgc = new TMLArchiCommunicationArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLARCHI_PORT_ARTIFACT:
-                tgc = new TMLArchiPortArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLARCHI_EVENT_ARTIFACT:
-                tgc = new TMLArchiEventArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-                
-                
-                // Communication patterns + SD
-            case TMLCP_CHOICE:
-                tgc = new TMLCPChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCP_FORK:
-                tgc = new TMLCPFork(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCP_JOIN:
-                tgc = new TMLCPJoin(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCP_REF_CP:
-                tgc = new TMLCPRefAD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCP_REF_SD:
-                tgc = new TMLCPRefSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCP_START_STATE:
-                tgc = new TMLCPStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCP_STOP_STATE:
-                tgc = new TMLCPStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLCP_JUNCTION:
-                tgc = new TMLCPJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLSD_ACTION_STATE:
-                tgc = new TMLSDActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TMLSD_STORAGE_INSTANCE:
-                tgc = new TMLSDStorageInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-								break;
-            case TMLSD_CONTROLLER_INSTANCE:
-                tgc = new TMLSDControllerInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-								break;
-            case TMLSD_TRANSFER_INSTANCE:
-                tgc = new TMLSDTransferInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-                
+        case AVATARMETHODOLOGY_REF_ASSUMPTIONS:
+            tgc = new AvatarMethodologyReferenceToAssumptions(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMETHODOLOGY_REF_REQUIREMENT:
+            tgc = new AvatarMethodologyReferenceToRequirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMETHODOLOGY_REF_ANALYSIS:
+            tgc = new AvatarMethodologyReferenceToAnalysis(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMETHODOLOGY_REF_DESIGN:
+            tgc = new AvatarMethodologyReferenceToDesign(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMETHODOLOGY_REF_PROPERTIES:
+            tgc = new AvatarMethodologyReferenceToProperties(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMETHODOLOGY_REF_PROTOTYPE:
+            tgc = new AvatarMethodologyReferenceToPrototype(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case AVATARMETHODOLOGY_DIAGRAM_NAME:
+            tgc = new AvatarMethodologyDiagramName(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+
+
+            // Others
+        case TAD_DETERMINISTIC_DELAY:
+            tgc = new TADDeterministicDelay(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_PARALLEL:
+            tgc = new TADParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_SEQUENCE:
+            tgc = new TADSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_PREEMPTION:
+            tgc = new TADPreemption(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_STOP_STATE:
+            tgc = new TADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_START_STATE:
+            tgc = new TADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_ACTION_STATE:
+            tgc = new TADActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_ARRAY_GET:
+            tgc = new TADArrayGetState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_ARRAY_SET:
+            tgc = new TADArraySetState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_TIME_LIMITED_OFFER:
+            tgc = new TADTimeLimitedOffer(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_JUNCTION:
+            tgc = new TADJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_NON_DETERMINISTIC_DELAY:
+            tgc = new TADNonDeterministicDelay(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_DELAY_NON_DETERMINISTIC_DELAY:
+            tgc = new TADTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_TIME_LIMITED_OFFER_WITH_LATENCY:
+            tgc = new TADTimeLimitedOfferWithLatency(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_TIME_CAPTURE:
+            tgc = new TADTimeCapture(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TAD_CHOICE:
+            tgc = new TADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_TCLASS:
+            tgc = new TCDTClass(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_TOBJECT:
+            tgc = new TCDTObject(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_TDATA:
+            tgc = new TCDTData(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_PARALLEL_OPERATOR:
+            tgc = new TCDParallelOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_SEQUENCE_OPERATOR:
+            tgc = new TCDSequenceOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_PREEMPTION_OPERATOR:
+            tgc = new TCDPreemptionOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_SYNCHRO_OPERATOR:
+            tgc = new TCDSynchroOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_INVOCATION_OPERATOR:
+            tgc = new TCDInvocationOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TCD_WATCHDOG_OPERATOR:
+            tgc = new TCDWatchdogOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case UML_NOTE:
+            tgc = new TGCNote(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_CHOICE:
+            tgc = new IODChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_START_STATE:
+            tgc = new IODStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_STOP_STATE:
+            tgc = new IODStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_JUNCTION:
+            tgc = new IODJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_PARALLEL:
+            tgc = new IODParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_REF_SD:
+            tgc = new IODRefSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_REF_IOD:
+            tgc = new IODRefIOD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_PREEMPTION:
+            tgc = new IODPreemption(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case IOD_SEQUENCE:
+            tgc = new IODSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_INSTANCE:
+            tgc = new SDInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_ABSOLUTE_TIME_CONSTRAINT:
+            tgc = new SDAbsoluteTimeConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_RELATIVE_TIME_CONSTRAINT:
+            tgc = new SDRelativeTimeConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_ACTION_STATE:
+            tgc = new SDActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_GUARD:
+            tgc = new SDGuard(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_TIME_INTERVAL:
+            tgc = new SDTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_TIMER_SETTING:
+            tgc = new SDTimerSetting(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_TIMER_EXPIRATION:
+            tgc = new SDTimerExpiration(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_TIMER_CANCELLATION:
+            tgc = new SDTimerCancellation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case SD_COREGION:
+            tgc = new SDCoregion(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case UCD_ACTOR:
+            tgc = new UCDActor(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case UCD_ACTORBOX:
+            tgc = new UCDActorBox(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case UCD_USECASE:
+            tgc = new UCDUseCase(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case UCD_BORDER:
+            tgc = new UCDBorder(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TDD_NODE:
+            tgc = new TDDNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TDD_ARTIFACT:
+            tgc = new TDDArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_START_STATE:
+            tgc = new EBRDDStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_STOP_STATE:
+            tgc = new EBRDDStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_CHOICE:
+            tgc = new EBRDDChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_ERC:
+            tgc = new EBRDDERC(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_ACTION:
+            tgc = new EBRDDActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_FOR_LOOP:
+            tgc = new EBRDDForLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_VARIABLE_DECLARATION:
+            tgc = new EBRDDAttributeBox(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_SEQUENCE:
+            tgc = new EBRDDSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_ESO:
+            tgc = new EBRDDESO(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case EBRDD_ERB:
+            tgc = new EBRDDERB(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ATD_BLOCK:
+            tgc = new ATDBlock(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ATD_ATTACK:
+            tgc = new ATDAttack(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case ATD_CONSTRAINT:
+            tgc = new ATDConstraint(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case DIPLODODUSMETHODOLOGY_REF_APPLICATION:
+            tgc = new DiplodocusMethodologyDiagramReferenceToApplication(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case DIPLODODUSMETHODOLOGY_REF_ARCHITECTURE:
+            tgc = new DiplodocusMethodologyDiagramReferenceToArchitecture(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case DIPLODODUSMETHODOLOGY_REF_MAPPING:
+            tgc = new DiplodocusMethodologyDiagramReferenceToMapping(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case DIPLODODUSMETHODOLOGY_REF_REQUIREMENT:
+            tgc = new DiplodocusMethodologyDiagramReferenceToRequirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case DIPLODODUSMETHODOLOGY_DIAGRAM_NAME:
+            tgc = new DiplodocusMethodologyDiagramName(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+        case TMLAD_START_STATE:
+            tgc = new TMLADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_STOP_STATE:
+            tgc = new TMLADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_WRITE_CHANNEL:
+            tgc = new TMLADWriteChannel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_READ_CHANNEL:
+            tgc = new TMLADReadChannel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_SEND_REQUEST:
+            tgc = new TMLADSendRequest(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_SEND_EVENT:
+            tgc = new TMLADSendEvent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_WAIT_EVENT:
+            tgc = new TMLADWaitEvent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_NOTIFIED_EVENT:
+            tgc = new TMLADNotifiedEvent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLTD_TASK:
+            tgc = new TMLTaskOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLTD_CHANNEL_OPERATOR:
+            tgc = new TMLChannelOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLTD_EVENT_OPERATOR:
+            tgc = new TMLEventOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLTD_REQUEST_OPERATOR:
+            tgc = new TMLRequestOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_ACTION_STATE:
+            tgc = new TMLADActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_CHOICE:
+            tgc = new TMLADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_EXECI:
+            tgc = new TMLADExecI(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_EXECI_INTERVAL:
+            tgc = new TMLADExecIInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_EXECC:
+            tgc = new TMLADExecC(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_EXECC_INTERVAL:
+            tgc = new TMLADExecCInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_DELAY:
+            tgc = new TMLADDelay(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_INTERVAL_DELAY:
+            tgc = new TMLADDelayInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_FOR_LOOP:
+            tgc = new TMLADForLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_FOR_STATIC_LOOP:
+            tgc = new TMLADForStaticLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_FOR_EVER_LOOP:
+            tgc = new TMLADForEverLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_READ_REQUEST_ARG:
+            tgc = new TMLADReadRequestArg(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_SEQUENCE:
+            tgc = new TMLADSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_UNORDERED_SEQUENCE:
+            tgc = new TMLADUnorderedSequence(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_SELECT_EVT:
+            tgc = new TMLADSelectEvt(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLAD_RANDOM:
+            tgc = new TMLADRandom(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_CCOMPONENT:
+            tgc = new TMLCCompositeComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_CREMOTECOMPONENT:
+            tgc = new TMLCRemoteCompositeComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_CREMOTEPORTCOMPONENT:
+            tgc = new TMLCRemotePortCompositeComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_CPORT:
+            tgc = new TMLCCompositePort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_JOIN:
+            tgc = new TMLCJoin(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_FORK:
+            tgc = new TMLCFork(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_PCOMPONENT:
+            tgc = new TMLCPrimitiveComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_RCOMPONENT:
+            tgc = new TMLCRecordComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCTD_COPORT:
+            tgc = new TMLCChannelOutPort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_CPUNODE:
+            tgc = new TMLArchiCPUNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_BUSNODE:
+            tgc = new TMLArchiBUSNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_CPNODE:
+            tgc = new TMLArchiCPNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_BRIDGENODE:
+            tgc = new TMLArchiBridgeNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_HWANODE:
+            tgc = new TMLArchiHWANode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_MEMORYNODE:
+            tgc = new TMLArchiMemoryNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_DMANODE:
+            tgc = new TMLArchiDMANode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_ARTIFACT:
+            tgc = new TMLArchiArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_COMMUNICATION_ARTIFACT:
+            tgc = new TMLArchiCommunicationArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_PORT_ARTIFACT:
+            tgc = new TMLArchiPortArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLARCHI_EVENT_ARTIFACT:
+            tgc = new TMLArchiEventArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
+
+            // Communication patterns + SD
+        case TMLCP_CHOICE:
+            tgc = new TMLCPChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCP_FORK:
+            tgc = new TMLCPFork(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCP_JOIN:
+            tgc = new TMLCPJoin(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCP_REF_CP:
+            tgc = new TMLCPRefAD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCP_REF_SD:
+            tgc = new TMLCPRefSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCP_START_STATE:
+            tgc = new TMLCPStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCP_STOP_STATE:
+            tgc = new TMLCPStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLCP_JUNCTION:
+            tgc = new TMLCPJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+	case TMLCP_FOR_LOOP:
+            tgc = new TMLCPForLoop(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLSD_ACTION_STATE:
+            tgc = new TMLSDActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLSD_STORAGE_INSTANCE:
+            tgc = new TMLSDStorageInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLSD_CONTROLLER_INSTANCE:
+            tgc = new TMLSDControllerInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TMLSD_TRANSFER_INSTANCE:
+            tgc = new TMLSDTransferInstance(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+
             // Requirements
-            case TREQ_REQUIREMENT:
-                tgc = new Requirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TREQ_OBSERVER:
-                tgc = new RequirementObserver(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case TREQ_EBRDD:
-                tgc = new EBRDDObserver(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case NCDD_EQNODE:
-                tgc = new NCEqNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case NCDD_SWITCHNODE:
-                tgc = new NCSwitchNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case NCDD_TRAFFIC_ARTIFACT:
-                tgc = new NCTrafficArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-			case NCDD_ROUTE_ARTIFACT:
-                tgc = new NCRouteArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_START_STATE:
-                tgc = new ProSMDStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_STOP_STATE:
-                tgc = new ProSMDStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_SENDMSG:
-                tgc = new ProSMDSendMsg(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_GETMSG:
-                tgc = new ProSMDGetMsg(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_CHOICE:
-                tgc = new ProSMDChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_JUNCTION:
-                tgc = new ProSMDJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_SUBMACHINE:
-                tgc = new ProSMDSubmachine(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_ACTION:
-                tgc = new ProSMDAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_PARALLEL:
-                tgc = new ProSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROSMD_STATE:
-                tgc = new ProSMDState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROCSD_COMPONENT:
-                tgc = new ProCSDComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-           /* No more delegate ports, by Solange
-            case PROCSD_DELEGATE_PORT:
-                tgc = new ProCSDDelegatePort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break; */
-            case PROCSD_IN_PORT:
-                tgc = new ProCSDInPort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROCSD_OUT_PORT:
-                tgc = new ProCSDOutPort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case PROCSD_INTERFACE:
-                tgc = new ProCSDInterface(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                break;
-            case TOSCD_TCLASS:
-                 tgc = new TOSClass(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSCD_CALL_OPERATOR:
-                 tgc = new TOSCallOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSCD_EVT_OPERATOR:
-                 tgc = new TOSEvtOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSAD_ACTION_STATE:
-                 tgc = new TOSADActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSAD_CHOICE:
-                 tgc = new TOSADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSAD_START_STATE:
-                 tgc = new TOSADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSAD_STOP_STATE:
-                 tgc = new TOSADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSAD_JUNCTION:
-                 tgc = new TOSADJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSAD_TIME_INTERVAL:
-                 tgc = new TOSADTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;
-            case TOSAD_INT_TIME_INTERVAL:
-                 tgc = new TOSADIntTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
-                 break;		 
-            default:
-                break;
+        case TREQ_REQUIREMENT:
+            tgc = new Requirement(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TREQ_OBSERVER:
+            tgc = new RequirementObserver(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TREQ_EBRDD:
+            tgc = new EBRDDObserver(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case NCDD_EQNODE:
+            tgc = new NCEqNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case NCDD_SWITCHNODE:
+            tgc = new NCSwitchNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case NCDD_TRAFFIC_ARTIFACT:
+            tgc = new NCTrafficArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case NCDD_ROUTE_ARTIFACT:
+            tgc = new NCRouteArtifact(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_START_STATE:
+            tgc = new ProSMDStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_STOP_STATE:
+            tgc = new ProSMDStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_SENDMSG:
+            tgc = new ProSMDSendMsg(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_GETMSG:
+            tgc = new ProSMDGetMsg(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_CHOICE:
+            tgc = new ProSMDChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_JUNCTION:
+            tgc = new ProSMDJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_SUBMACHINE:
+            tgc = new ProSMDSubmachine(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_ACTION:
+            tgc = new ProSMDAction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_PARALLEL:
+            tgc = new ProSMDParallel(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROSMD_STATE:
+            tgc = new ProSMDState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROCSD_COMPONENT:
+            tgc = new ProCSDComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+            /* No more delegate ports, by Solange
+               case PROCSD_DELEGATE_PORT:
+               tgc = new ProCSDDelegatePort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+               break; */
+        case PROCSD_IN_PORT:
+            tgc = new ProCSDInPort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROCSD_OUT_PORT:
+            tgc = new ProCSDOutPort(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case PROCSD_INTERFACE:
+            tgc = new ProCSDInterface(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSCD_TCLASS:
+            tgc = new TOSClass(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSCD_CALL_OPERATOR:
+            tgc = new TOSCallOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSCD_EVT_OPERATOR:
+            tgc = new TOSEvtOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSAD_ACTION_STATE:
+            tgc = new TOSADActionState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSAD_CHOICE:
+            tgc = new TOSADChoice(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSAD_START_STATE:
+            tgc = new TOSADStartState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSAD_STOP_STATE:
+            tgc = new TOSADStopState(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSAD_JUNCTION:
+            tgc = new TOSADJunction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSAD_TIME_INTERVAL:
+            tgc = new TOSADTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        case TOSAD_INT_TIME_INTERVAL:
+            tgc = new TOSADIntTimeInterval(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            break;
+        default:
+            break;
         }
         return tgc;
     }
 
 
     public final static int getType(TGComponent tgc) {
-		// AVATAR
-		// AVATAR BD
-		if (tgc instanceof AvatarBDBlock) {
-			return AVATARBD_BLOCK;
-		} else if (tgc instanceof AvatarBDDataType) {
-			return AVATARBD_DATATYPE;	
-		} else if (tgc instanceof AvatarBDCompositionConnector) {
-			return AVATARBD_COMPOSITION_CONNECTOR;	
-		} else if (tgc instanceof AvatarBDPortConnector) {
-			return AVATARBD_PORT_CONNECTOR;
-			
-		
-			
-		// AVATAR SMD
-		} else if (tgc instanceof AvatarSMDStartState) {
-			return AVATARSMD_START_STATE;
-		} else if (tgc instanceof AvatarSMDStopState) {
-			return AVATARSMD_STOP_STATE;
-		} else if (tgc instanceof AvatarSMDConnector) {
-			return AVATARSMD_CONNECTOR;
-		} else if (tgc instanceof AvatarSMDSendSignal) {
-			return AVATARSMD_SEND_SIGNAL;
-		} else if (tgc instanceof AvatarSMDReceiveSignal) {
-			return AVATARSMD_RECEIVE_SIGNAL;
-		} else if (tgc instanceof AvatarSMDParallel) {
-			return AVATARSMD_PARALLEL;		
-		} else if (tgc instanceof AvatarSMDState) {
-			return AVATARSMD_STATE;	
-		} else if (tgc instanceof AvatarSMDChoice) {
-			return AVATARSMD_CHOICE;
-		} else if (tgc instanceof AvatarSMDRandom) {
-			return AVATARSMD_RANDOM;
-		} else if (tgc instanceof AvatarSMDSetTimer) {
-			return AVATARSMD_SET_TIMER;
-		} else if (tgc instanceof AvatarSMDResetTimer) {
-			return AVATARSMD_RESET_TIMER;
-		} else if (tgc instanceof AvatarSMDExpireTimer) {
-			return AVATARSMD_EXPIRE_TIMER;
-			
-			
-		//AVATAR DD
-		} else if (tgc instanceof ADDConnector) {
+        // AVATAR
+        // AVATAR BD
+        if (tgc instanceof AvatarBDBlock) {
+            return AVATARBD_BLOCK;
+        } else if (tgc instanceof AvatarBDDataType) {
+            return AVATARBD_DATATYPE;
+        } else if (tgc instanceof AvatarBDCompositionConnector) {
+            return AVATARBD_COMPOSITION_CONNECTOR;
+        } else if (tgc instanceof AvatarBDPortConnector) {
+            return AVATARBD_PORT_CONNECTOR;
+
+
+
+            // AVATAR SMD
+        } else if (tgc instanceof AvatarSMDStartState) {
+            return AVATARSMD_START_STATE;
+        } else if (tgc instanceof AvatarSMDStopState) {
+            return AVATARSMD_STOP_STATE;
+        } else if (tgc instanceof AvatarSMDConnector) {
+            return AVATARSMD_CONNECTOR;
+        } else if (tgc instanceof AvatarSMDSendSignal) {
+            return AVATARSMD_SEND_SIGNAL;
+        } else if (tgc instanceof AvatarSMDReceiveSignal) {
+            return AVATARSMD_RECEIVE_SIGNAL;
+        } else if (tgc instanceof AvatarSMDParallel) {
+            return AVATARSMD_PARALLEL;
+        } else if (tgc instanceof AvatarSMDState) {
+            return AVATARSMD_STATE;
+        } else if (tgc instanceof AvatarSMDChoice) {
+            return AVATARSMD_CHOICE;
+        } else if (tgc instanceof AvatarSMDRandom) {
+            return AVATARSMD_RANDOM;
+        } else if (tgc instanceof AvatarSMDSetTimer) {
+            return AVATARSMD_SET_TIMER;
+        } else if (tgc instanceof AvatarSMDResetTimer) {
+            return AVATARSMD_RESET_TIMER;
+        } else if (tgc instanceof AvatarSMDExpireTimer) {
+            return AVATARSMD_EXPIRE_TIMER;
+
+
+            //AVATAR DD
+        } else if (tgc instanceof ADDConnector) {
             return ADD_CONNECTOR;
         } else if (tgc instanceof ADDCPUNode) {
             return ADD_CPUNODE;
@@ -1204,193 +1208,193 @@ public class TGComponentManager {
         } else if (tgc instanceof ADDBridgeNode) {
             return ADD_BRIDGENODE;
         } else if (tgc instanceof ADDDMANode) {
-            return ADD_DMANODE;  
-            } else if (tgc instanceof ADDICUNode) {
+            return ADD_DMANODE;
+        } else if (tgc instanceof ADDICUNode) {
             return ADD_ICUNODE;
-            } else if (tgc instanceof ADDTimerNode) {
+        } else if (tgc instanceof ADDTimerNode) {
             return ADD_TIMERNODE;
-            } else if (tgc instanceof ADDCoproMWMRNode) {
+        } else if (tgc instanceof ADDCoproMWMRNode) {
             return ADD_COPROMWMRNODE;
-            
-            
+
+
             // AVATAR Methodology
-		} else if (tgc instanceof AvatarMethodologyReferenceToAssumptions) {
-			return AVATARMETHODOLOGY_REF_ASSUMPTIONS;   
-			} else if (tgc instanceof AvatarMethodologyReferenceToRequirement) {
-			return AVATARMETHODOLOGY_REF_REQUIREMENT;  
-			} else if (tgc instanceof AvatarMethodologyReferenceToAnalysis) {
-			return AVATARMETHODOLOGY_REF_ANALYSIS;   
-			} else if (tgc instanceof AvatarMethodologyReferenceToDesign) {
-			return AVATARMETHODOLOGY_REF_DESIGN;
-			} else if (tgc instanceof AvatarMethodologyReferenceToProperties) {
-			return AVATARMETHODOLOGY_REF_PROPERTIES;
-			} else if (tgc instanceof AvatarMethodologyReferenceToPrototype) {
-			return AVATARMETHODOLOGY_REF_PROTOTYPE;
-			} else if (tgc instanceof AvatarMethodologyDiagramName) {
-			return AVATARMETHODOLOGY_DIAGRAM_NAME;
-			} else if (tgc instanceof AvatarMethodologyConnector) {
-			return AVATARMETHODOLOGY_CONNECTOR;
-			
-			
-		// AVATAR MAD
-		} else if (tgc instanceof AvatarMADAssumption) {
-			return AVATARMAD_ASSUMPTION;
-		} else if (tgc instanceof AvatarMADDiagramReference) {
-			return AVATARMAD_DIAGRAM_REFERENCE;
-		} else if (tgc instanceof AvatarMADElementReference) {
-			return AVATARMAD_ELEMENT_REFERENCE;
-		} else if (tgc instanceof AvatarMADCompositionConnector) {
-			return AVATARMAD_COMPOSITION_CONNECTOR;
-		} else if (tgc instanceof AvatarMADVersioningConnector) {
-			return AVATARMAD_VERSIONING_CONNECTOR;
-		} else if (tgc instanceof AvatarMADImpactConnector) {
-			return AVATARMAD_IMPACT_CONNECTOR;
-		} else if (tgc instanceof AvatarMADMeetConnector) {
-			return AVATARMAD_MEET_CONNECTOR;
-			
-		// AVATAR RD
-		} else if (tgc instanceof AvatarRDRequirement) {
-			return AVATARRD_REQUIREMENT;
-		} else if (tgc instanceof AvatarRDProperty) {
-			return AVATARRD_PROPERTY;
-		} else if (tgc instanceof AvatarRDDeriveConnector) {
-			return AVATARRD_DERIVE_CONNECTOR;
-		} else if (tgc instanceof AvatarRDRefineConnector) {
-			return AVATARRD_REFINE_CONNECTOR;
-		} else if (tgc instanceof AvatarRDVerifyConnector) {
-			return AVATARRD_VERIFY_CONNECTOR;
-		} else if (tgc instanceof AvatarRDCopyConnector) {
-			return AVATARRD_COPY_CONNECTOR;
-		} else if (tgc instanceof AvatarRDCompositionConnector) {
-			return AVATARRD_COMPOSITION_CONNECTOR;
-			
-		// AVATAR PD
-		} else if (tgc instanceof AvatarPDBlock) {
-			return APD_BLOCK;
-		} else if (tgc instanceof AvatarPDLogicalConstraint) {
-			return APD_LOGICAL_CONSTRAINT;
-		} else if (tgc instanceof AvatarPDTemporalConstraint) {
-			return APD_TEMPORAL_CONSTRAINT;
-		} else if (tgc instanceof AvatarPDAttribute) {
-			return APD_ATTRIBUTE;
-		} else if (tgc instanceof AvatarPDSignal) {
-			return APD_SIGNAL;
-		} else if (tgc instanceof AvatarPDAlias) {
-			return APD_ALIAS;
-		} else if (tgc instanceof AvatarPDBoolEq) {
-			return APD_BOOLEQ;
-		} else if (tgc instanceof AvatarPDAttributeSetting) {
-			return APD_ATTRIBUTE_SETTING;
-		} else if (tgc instanceof AvatarPDProperty) {
-			return APD_PROPERTY;
-		} else if (tgc instanceof AvatarPDPropertyRelation) {
-			return APD_PROPERTY_RELATION;
-		} else if (tgc instanceof AvatarPDAttributeConnector) {
-			return APD_ATTRIBUTE_CONNECTOR;
-		} else if (tgc instanceof AvatarPDSignalConnector) {
-			return APD_SIGNAL_CONNECTOR;
-		} else if (tgc instanceof AvatarPDPropertyConnector) {
-			return APD_PROPERTY_CONNECTOR;
-		} else if (tgc instanceof AvatarPDCompositionConnector) {
-			return APD_COMPOSITION_CONNECTOR;
-			
-			// AVATAR CD
-		} else if (tgc instanceof AvatarCDBlock) {
-			return ACD_BLOCK;
-		} else if (tgc instanceof AvatarCDActorStickman) {
-			return ACD_ACTOR_STICKMAN;
-		} else if (tgc instanceof AvatarCDActorBox) {
-			return ACD_ACTOR_BOX;
-		} else if (tgc instanceof AvatarCDCompositionConnector) {
-			return ACD_COMPOSITION_CONNECTOR;
-		}  else if (tgc instanceof AvatarCDAssociationConnector) {
-			return ACD_ASSOCIATION_CONNECTOR;
-			
-			// AVATAR CD
-		}  else if (tgc instanceof AvatarADStartState) {
-			return AAD_START_STATE;
-		}  else if (tgc instanceof AvatarADStopState) {
-			return AAD_STOP_STATE;
-		}  else if (tgc instanceof AvatarADChoice) {
-			return AAD_CHOICE;
-		}  else if (tgc instanceof AvatarADJunction) {
-			return AAD_JUNCTION;
-		}  else if (tgc instanceof AvatarADParallel) {
-			return AAD_PARALLEL;
-		}  else if (tgc instanceof AvatarADAction) {
-			return AAD_ACTION;
-		}  else if (tgc instanceof AvatarADActivity) {
-			return AAD_ACTIVITY;
-		}  else if (tgc instanceof AvatarADStopFlow) {
-			return AAD_STOP_FLOW;
-		}  else if (tgc instanceof AvatarADSendSignalAction) {
-			return AAD_SEND_SIGNAL_ACTION;
-		}  else if (tgc instanceof AvatarADAcceptEventAction) {
-			return AAD_ACCEPT_EVENT_ACTION;
-		}  else if (tgc instanceof AvatarADPartition) {
-			return AAD_PARTITION;
-		}  else if (tgc instanceof AvatarADAssociationConnector) {
-			return AAD_ASSOCIATION_CONNECTOR;
-			
-		// Others
-		} else if (tgc instanceof 	TADDeterministicDelay) {
-            return 	TAD_DETERMINISTIC_DELAY;
+        } else if (tgc instanceof AvatarMethodologyReferenceToAssumptions) {
+            return AVATARMETHODOLOGY_REF_ASSUMPTIONS;
+        } else if (tgc instanceof AvatarMethodologyReferenceToRequirement) {
+            return AVATARMETHODOLOGY_REF_REQUIREMENT;
+        } else if (tgc instanceof AvatarMethodologyReferenceToAnalysis) {
+            return AVATARMETHODOLOGY_REF_ANALYSIS;
+        } else if (tgc instanceof AvatarMethodologyReferenceToDesign) {
+            return AVATARMETHODOLOGY_REF_DESIGN;
+        } else if (tgc instanceof AvatarMethodologyReferenceToProperties) {
+            return AVATARMETHODOLOGY_REF_PROPERTIES;
+        } else if (tgc instanceof AvatarMethodologyReferenceToPrototype) {
+            return AVATARMETHODOLOGY_REF_PROTOTYPE;
+        } else if (tgc instanceof AvatarMethodologyDiagramName) {
+            return AVATARMETHODOLOGY_DIAGRAM_NAME;
+        } else if (tgc instanceof AvatarMethodologyConnector) {
+            return AVATARMETHODOLOGY_CONNECTOR;
+
+
+            // AVATAR MAD
+        } else if (tgc instanceof AvatarMADAssumption) {
+            return AVATARMAD_ASSUMPTION;
+        } else if (tgc instanceof AvatarMADDiagramReference) {
+            return AVATARMAD_DIAGRAM_REFERENCE;
+        } else if (tgc instanceof AvatarMADElementReference) {
+            return AVATARMAD_ELEMENT_REFERENCE;
+        } else if (tgc instanceof AvatarMADCompositionConnector) {
+            return AVATARMAD_COMPOSITION_CONNECTOR;
+        } else if (tgc instanceof AvatarMADVersioningConnector) {
+            return AVATARMAD_VERSIONING_CONNECTOR;
+        } else if (tgc instanceof AvatarMADImpactConnector) {
+            return AVATARMAD_IMPACT_CONNECTOR;
+        } else if (tgc instanceof AvatarMADMeetConnector) {
+            return AVATARMAD_MEET_CONNECTOR;
+
+            // AVATAR RD
+        } else if (tgc instanceof AvatarRDRequirement) {
+            return AVATARRD_REQUIREMENT;
+        } else if (tgc instanceof AvatarRDProperty) {
+            return AVATARRD_PROPERTY;
+        } else if (tgc instanceof AvatarRDDeriveConnector) {
+            return AVATARRD_DERIVE_CONNECTOR;
+        } else if (tgc instanceof AvatarRDRefineConnector) {
+            return AVATARRD_REFINE_CONNECTOR;
+        } else if (tgc instanceof AvatarRDVerifyConnector) {
+            return AVATARRD_VERIFY_CONNECTOR;
+        } else if (tgc instanceof AvatarRDCopyConnector) {
+            return AVATARRD_COPY_CONNECTOR;
+        } else if (tgc instanceof AvatarRDCompositionConnector) {
+            return AVATARRD_COMPOSITION_CONNECTOR;
+
+            // AVATAR PD
+        } else if (tgc instanceof AvatarPDBlock) {
+            return APD_BLOCK;
+        } else if (tgc instanceof AvatarPDLogicalConstraint) {
+            return APD_LOGICAL_CONSTRAINT;
+        } else if (tgc instanceof AvatarPDTemporalConstraint) {
+            return APD_TEMPORAL_CONSTRAINT;
+        } else if (tgc instanceof AvatarPDAttribute) {
+            return APD_ATTRIBUTE;
+        } else if (tgc instanceof AvatarPDSignal) {
+            return APD_SIGNAL;
+        } else if (tgc instanceof AvatarPDAlias) {
+            return APD_ALIAS;
+        } else if (tgc instanceof AvatarPDBoolEq) {
+            return APD_BOOLEQ;
+        } else if (tgc instanceof AvatarPDAttributeSetting) {
+            return APD_ATTRIBUTE_SETTING;
+        } else if (tgc instanceof AvatarPDProperty) {
+            return APD_PROPERTY;
+        } else if (tgc instanceof AvatarPDPropertyRelation) {
+            return APD_PROPERTY_RELATION;
+        } else if (tgc instanceof AvatarPDAttributeConnector) {
+            return APD_ATTRIBUTE_CONNECTOR;
+        } else if (tgc instanceof AvatarPDSignalConnector) {
+            return APD_SIGNAL_CONNECTOR;
+        } else if (tgc instanceof AvatarPDPropertyConnector) {
+            return APD_PROPERTY_CONNECTOR;
+        } else if (tgc instanceof AvatarPDCompositionConnector) {
+            return APD_COMPOSITION_CONNECTOR;
+
+            // AVATAR CD
+        } else if (tgc instanceof AvatarCDBlock) {
+            return ACD_BLOCK;
+        } else if (tgc instanceof AvatarCDActorStickman) {
+            return ACD_ACTOR_STICKMAN;
+        } else if (tgc instanceof AvatarCDActorBox) {
+            return ACD_ACTOR_BOX;
+        } else if (tgc instanceof AvatarCDCompositionConnector) {
+            return ACD_COMPOSITION_CONNECTOR;
+        }  else if (tgc instanceof AvatarCDAssociationConnector) {
+            return ACD_ASSOCIATION_CONNECTOR;
+
+            // AVATAR CD
+        }  else if (tgc instanceof AvatarADStartState) {
+            return AAD_START_STATE;
+        }  else if (tgc instanceof AvatarADStopState) {
+            return AAD_STOP_STATE;
+        }  else if (tgc instanceof AvatarADChoice) {
+            return AAD_CHOICE;
+        }  else if (tgc instanceof AvatarADJunction) {
+            return AAD_JUNCTION;
+        }  else if (tgc instanceof AvatarADParallel) {
+            return AAD_PARALLEL;
+        }  else if (tgc instanceof AvatarADAction) {
+            return AAD_ACTION;
+        }  else if (tgc instanceof AvatarADActivity) {
+            return AAD_ACTIVITY;
+        }  else if (tgc instanceof AvatarADStopFlow) {
+            return AAD_STOP_FLOW;
+        }  else if (tgc instanceof AvatarADSendSignalAction) {
+            return AAD_SEND_SIGNAL_ACTION;
+        }  else if (tgc instanceof AvatarADAcceptEventAction) {
+            return AAD_ACCEPT_EVENT_ACTION;
+        }  else if (tgc instanceof AvatarADPartition) {
+            return AAD_PARTITION;
+        }  else if (tgc instanceof AvatarADAssociationConnector) {
+            return AAD_ASSOCIATION_CONNECTOR;
+
+            // Others
+        } else if (tgc instanceof       TADDeterministicDelay) {
+            return      TAD_DETERMINISTIC_DELAY;
         } else if (tgc instanceof TADParallel) {
             return TAD_PARALLEL;
         } else if (tgc instanceof TADStopState) {
-            return 	TAD_STOP_STATE;
+            return      TAD_STOP_STATE;
         } else if (tgc instanceof TADStartState) {
-            return 	TAD_START_STATE;
+            return      TAD_START_STATE;
         } else if (tgc instanceof TADActionState) {
-            return 	TAD_ACTION_STATE;
+            return      TAD_ACTION_STATE;
         } else if (tgc instanceof TADArrayGetState) {
-            return 	TAD_ARRAY_GET;
+            return      TAD_ARRAY_GET;
         } else if (tgc instanceof TADArraySetState) {
-            return 	TAD_ARRAY_SET;
+            return      TAD_ARRAY_SET;
         } else if (tgc instanceof TADTimeLimitedOffer) {
-            return 	TAD_TIME_LIMITED_OFFER;
+            return      TAD_TIME_LIMITED_OFFER;
         } else if (tgc instanceof TADJunction) {
-            return 	TAD_JUNCTION;
+            return      TAD_JUNCTION;
         } else if (tgc instanceof TADNonDeterministicDelay) {
-            return 	TAD_NON_DETERMINISTIC_DELAY;
+            return      TAD_NON_DETERMINISTIC_DELAY;
         } else if (tgc instanceof TADTimeInterval) {
-            return 	TAD_DELAY_NON_DETERMINISTIC_DELAY;
+            return      TAD_DELAY_NON_DETERMINISTIC_DELAY;
         } else if (tgc instanceof TADTimeLimitedOfferWithLatency) {
-            return 	TAD_TIME_LIMITED_OFFER_WITH_LATENCY;
+            return      TAD_TIME_LIMITED_OFFER_WITH_LATENCY;
         } else if (tgc instanceof TADTimeCapture) {
-            return 	TAD_TIME_CAPTURE;
+            return      TAD_TIME_CAPTURE;
         } else if (tgc instanceof TADChoice) {
-            return 	TAD_CHOICE;
+            return      TAD_CHOICE;
         } else if (tgc instanceof TCDTClass) {
-            return 	TCD_TCLASS;
+            return      TCD_TCLASS;
         } else if (tgc instanceof TCDTObject) {
-            return 	TCD_TOBJECT;
+            return      TCD_TOBJECT;
         } else if (tgc instanceof TCDTData) {
-            return 	TCD_TDATA;
+            return      TCD_TDATA;
         } else if (tgc instanceof TCDParallelOperator) {
-            return 	TCD_PARALLEL_OPERATOR;
+            return      TCD_PARALLEL_OPERATOR;
         } else if (tgc instanceof TCDSequenceOperator) {
-            return 	TCD_SEQUENCE_OPERATOR;
+            return      TCD_SEQUENCE_OPERATOR;
         } else if (tgc instanceof TCDPreemptionOperator) {
-            return 	TCD_PREEMPTION_OPERATOR;
+            return      TCD_PREEMPTION_OPERATOR;
         } else if (tgc instanceof TCDSynchroOperator) {
-            return 	TCD_SYNCHRO_OPERATOR;
+            return      TCD_SYNCHRO_OPERATOR;
         }  else if (tgc instanceof TCDInvocationOperator) {
-            return 	TCD_INVOCATION_OPERATOR;
+            return      TCD_INVOCATION_OPERATOR;
         } else if (tgc instanceof TCDWatchdogOperator) {
-            return 	TCD_WATCHDOG_OPERATOR;
+            return      TCD_WATCHDOG_OPERATOR;
         } else if (tgc instanceof TGConnectorFullArrow) {
-            return 	CONNECTOR_AD_DIAGRAM;
+            return      CONNECTOR_AD_DIAGRAM;
         } else if (tgc instanceof TGConnectorAssociation) {
-            return 	CONNECTOR_ASSOCIATION;
+            return      CONNECTOR_ASSOCIATION;
         } else if (tgc instanceof TGConnectorAssociationWithNavigation) {
-            return 	CONNECTOR_ASSOCIATION_NAVIGATION;
+            return      CONNECTOR_ASSOCIATION_NAVIGATION;
         } else if (tgc instanceof TGConnectorAttribute) {
-            return 	CONNECTOR_ATTRIBUTE;
+            return      CONNECTOR_ATTRIBUTE;
         } else if (tgc instanceof TGConnectorInteraction) {
-            return 	CONNECTOR_INTERACTION;
+            return      CONNECTOR_INTERACTION;
         } else if (tgc instanceof TGCNote) {
-            return 	UML_NOTE;
+            return      UML_NOTE;
         } else if (tgc instanceof IODChoice) {
             return IOD_CHOICE;
         } else if (tgc instanceof IODStartState) {
@@ -1483,9 +1487,9 @@ public class TGComponentManager {
             return EBRDD_ESO;
         } else if (tgc instanceof EBRDDERB) {
             return EBRDD_ERB;
-		} else if (tgc instanceof ATDBlock) {
+        } else if (tgc instanceof ATDBlock) {
             return ATD_BLOCK;
-		} else if (tgc instanceof ATDAttack) {
+        } else if (tgc instanceof ATDAttack) {
             return ATD_ATTACK;
         } else if (tgc instanceof ATDConstraint) {
             return ATD_CONSTRAINT;
@@ -1555,36 +1559,36 @@ public class TGComponentManager {
             return TMLAD_SELECT_EVT;
         } else if (tgc instanceof TMLADRandom) {
             return TMLAD_RANDOM;
-			
+
         } else if (tgc instanceof TMLCCompositeComponent) {
             return TMLCTD_CCOMPONENT;
-		} else if (tgc instanceof TMLCPrimitiveComponent) {
+        } else if (tgc instanceof TMLCPrimitiveComponent) {
             return TMLCTD_PCOMPONENT;
-		} else if (tgc instanceof TMLCRecordComponent) {
+        } else if (tgc instanceof TMLCRecordComponent) {
             return TMLCTD_RCOMPONENT;
-		} else if (tgc instanceof TMLCRemoteCompositeComponent) {
+        } else if (tgc instanceof TMLCRemoteCompositeComponent) {
             return TMLCTD_CREMOTECOMPONENT;
-		} else if (tgc instanceof TMLCRemotePortCompositeComponent) {
+        } else if (tgc instanceof TMLCRemotePortCompositeComponent) {
             return TMLCTD_CREMOTEPORTCOMPONENT;
-		} else if (tgc instanceof TMLCCompositePort) {
+        } else if (tgc instanceof TMLCCompositePort) {
             return TMLCTD_CPORT;
         } else if (tgc instanceof TMLCJoin) {
             return TMLCTD_JOIN;
         } else if (tgc instanceof TMLCFork) {
             return TMLCTD_FORK;
-		} else if (tgc instanceof TMLCPrimitivePort) {
+        } else if (tgc instanceof TMLCPrimitivePort) {
             return TMLCTD_COPORT;
-			
-		} else if (tgc instanceof TMLCPortConnector) {
+
+        } else if (tgc instanceof TMLCPortConnector) {
             return CONNECTOR_PORT_TMLC;
-			
-		} else if (tgc instanceof TGConnectorTMLAD) {
+
+        } else if (tgc instanceof TGConnectorTMLAD) {
             return CONNECTOR_TMLAD;
         } else if (tgc instanceof TGConnectorTMLAssociationNav) {
             return CONNECTOR_TML_ASSOCIATION_NAV;
         } else if (tgc instanceof TGConnectorTMLCompositionOperator) {
             return CONNECTOR_TML_COMPOSITION_OPERATOR;
-		} else if (tgc instanceof TMLArchiConnectorNode) {
+        } else if (tgc instanceof TMLArchiConnectorNode) {
             return CONNECTOR_NODE_TMLARCHI;
         } else if (tgc instanceof TMLArchiCPUNode) {
             return TMLARCHI_CPUNODE;
@@ -1608,8 +1612,8 @@ public class TGComponentManager {
             return TMLARCHI_PORT_ARTIFACT;
         } else if (tgc instanceof TMLArchiEventArtifact) {
             return TMLARCHI_EVENT_ARTIFACT;
-            
-        // Communication patterns
+
+            // Communication patterns
         } else if (tgc instanceof TMLCPChoice) {
             return TMLCP_CHOICE;
         } else if (tgc instanceof TMLCPFork) {
@@ -1626,6 +1630,8 @@ public class TGComponentManager {
             return TMLCP_STOP_STATE;
         } else if (tgc instanceof TMLCPJunction) {
             return TMLCP_JUNCTION;
+        } else if (tgc instanceof TMLCPForLoop) {
+            return TMLCP_FOR_LOOP;
         } else if (tgc instanceof TGConnectorTMLCP) {
             return CONNECTOR_TMLCP;
         } else if (tgc instanceof TMLSDActionState) {
@@ -1638,10 +1644,10 @@ public class TGComponentManager {
             return TMLSD_CONTROLLER_INSTANCE;
         } else if (tgc instanceof TGConnectorMessageAsyncTMLSD) {
             return CONNECTOR_MESSAGE_ASYNC_TMLSD;
-            
-            
-           
-            
+
+
+
+
         } else if (tgc instanceof TGConnectorComment) {
             return CONNECTOR_COMMENT;
         } else if (tgc instanceof Requirement) {
@@ -1688,17 +1694,17 @@ public class TGComponentManager {
         else if (tgc instanceof TGConnectorPortInterface) {
             return CONNECTOR_PROCSD_PORT_INTERFACE;
         }
-        
+
         else if (tgc instanceof ProCSDComponent) {
             return PROCSD_COMPONENT;
-            
-        /* No more delegate ports, by Solange
-        } else if (tgc instanceof ProCSDDelegatePort) {
-            return PROCSD_DELEGATE_PORT;
-        */
-		
-		//NC
-		} else if (tgc instanceof NCEqNode) {
+
+            /* No more delegate ports, by Solange
+               } else if (tgc instanceof ProCSDDelegatePort) {
+               return PROCSD_DELEGATE_PORT;
+            */
+
+            //NC
+        } else if (tgc instanceof NCEqNode) {
             return NCDD_EQNODE;
         } else if (tgc instanceof NCSwitchNode) {
             return NCDD_SWITCHNODE;
@@ -1706,36 +1712,36 @@ public class TGComponentManager {
             return NCDD_TRAFFIC_ARTIFACT;
         } else if (tgc instanceof NCConnectorNode) {
             return CONNECTOR_NODE_NC;
-            
-        // TURTLE-OS
+
+            // TURTLE-OS
         } else if (tgc instanceof TOSClass) {
-             return TOSCD_TCLASS;
+            return TOSCD_TCLASS;
         } else if (tgc instanceof TOSConnectorAssociation) {
-             return TOS_CONNECTOR_ASSOCIATION;
+            return TOS_CONNECTOR_ASSOCIATION;
         } else if (tgc instanceof TOSConnectorAssociationWithNavigation) {
-             return TOS_CONNECTOR_ASSOCIATION_NAVIGATION;
+            return TOS_CONNECTOR_ASSOCIATION_NAVIGATION;
         } else if (tgc instanceof TOSConnectorCompositionOperator) {
-             return TOS_CONNECTOR_ATTRIBUTE;
+            return TOS_CONNECTOR_ATTRIBUTE;
         } else if (tgc instanceof TOSCallOperator) {
-             return TOSCD_CALL_OPERATOR;
+            return TOSCD_CALL_OPERATOR;
         } else if (tgc instanceof TOSEvtOperator) {
-             return TOSCD_EVT_OPERATOR;
+            return TOSCD_EVT_OPERATOR;
         } else if (tgc instanceof TOSADActionState) {
-             return TOSAD_ACTION_STATE;
+            return TOSAD_ACTION_STATE;
         } else if (tgc instanceof TOSADConnector) {
-             return TOSAD_CONNECTOR;
+            return TOSAD_CONNECTOR;
         } else if (tgc instanceof TOSADChoice) {
-             return TOSAD_CHOICE;
+            return TOSAD_CHOICE;
         } else if (tgc instanceof TOSADStartState) {
-             return TOSAD_START_STATE;
+            return TOSAD_START_STATE;
         } else if (tgc instanceof TOSADStopState) {
-             return TOSAD_STOP_STATE;
+            return TOSAD_STOP_STATE;
         } else if (tgc instanceof TOSADJunction) {
-             return TOSAD_JUNCTION;
+            return TOSAD_JUNCTION;
         } else if (tgc instanceof TOSADTimeInterval) {
-             return TOSAD_TIME_INTERVAL;
+            return TOSAD_TIME_INTERVAL;
         } else if (tgc instanceof TOSADIntTimeInterval) {
-             return TOSAD_INT_TIME_INTERVAL;
+            return TOSAD_INT_TIME_INTERVAL;
         }
         return -1;
     }
@@ -1744,220 +1750,220 @@ public class TGComponentManager {
     public final static TGConnector addConnector(int x, int y, int id, TDiagramPanel tdp, TGConnectingPoint p1, TGConnectingPoint p2, Vector listPoint) {
         TGConnector tgc = null;
         switch(id) {
-			// AVATAR
-			// AVATAR BD
-			case AVATARBD_COMPOSITION_CONNECTOR:
-                tgc = new AvatarBDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case AVATARBD_PORT_CONNECTOR:
-                tgc = new AvatarBDPortConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-				
-			// AVATAR SMD
-			case AVATARSMD_CONNECTOR:
-                tgc = new AvatarSMDConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;     
-			                 
-                
-             // AVATAR Methodology
-			case AVATARMETHODOLOGY_CONNECTOR:
-                tgc = new AvatarMethodologyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;   
-                
+            // AVATAR
+            // AVATAR BD
+        case AVATARBD_COMPOSITION_CONNECTOR:
+            tgc = new AvatarBDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARBD_PORT_CONNECTOR:
+            tgc = new AvatarBDPortConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+            // AVATAR SMD
+        case AVATARSMD_CONNECTOR:
+            tgc = new AvatarSMDConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+
+            // AVATAR Methodology
+        case AVATARMETHODOLOGY_CONNECTOR:
+            tgc = new AvatarMethodologyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
             // AVATAR MAD
-            case AVATARMAD_COMPOSITION_CONNECTOR:
-                tgc = new AvatarMADCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case AVATARMAD_VERSIONING_CONNECTOR:
-                tgc = new AvatarMADVersioningConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case AVATARMAD_IMPACT_CONNECTOR:
-                tgc = new AvatarMADImpactConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case AVATARMAD_MEET_CONNECTOR:
-                tgc = new AvatarMADMeetConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-             
-			// AVATAR RD
-			case AVATARRD_DERIVE_CONNECTOR:
-                tgc = new AvatarRDDeriveConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case AVATARRD_REFINE_CONNECTOR:
-                tgc = new AvatarRDRefineConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case AVATARRD_VERIFY_CONNECTOR:
-                tgc = new AvatarRDVerifyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case AVATARRD_COPY_CONNECTOR:
-                tgc = new AvatarRDCopyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case AVATARRD_COMPOSITION_CONNECTOR:
-                tgc = new AvatarRDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-				
-			// AVATAR CD
-			case ACD_COMPOSITION_CONNECTOR:
-                tgc = new AvatarCDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case ACD_ASSOCIATION_CONNECTOR:
-                tgc = new AvatarCDAssociationConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;	
-                
-             // AVATAR AD
-			case AAD_ASSOCIATION_CONNECTOR:
-                tgc = new AvatarADAssociationConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;	
-                
-             // AVATAR DD
-              case ADD_CONNECTOR:
-                tgc = new ADDConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;	
-				
-			// AVATAR PD
-			case APD_ATTRIBUTE_CONNECTOR:
-                tgc = new AvatarPDAttributeConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case APD_SIGNAL_CONNECTOR:
-                tgc = new AvatarPDSignalConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case APD_PROPERTY_CONNECTOR:
-                tgc = new AvatarPDPropertyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case APD_COMPOSITION_CONNECTOR:
-                tgc = new AvatarPDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;		
-			
-			// Others
-            case CONNECTOR_AD_DIAGRAM:
-                tgc = new TGConnectorFullArrow(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_ASSOCIATION:
-                tgc = new TGConnectorAssociation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_ASSOCIATION_NAVIGATION:
-                tgc = new TGConnectorAssociationWithNavigation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_ATTRIBUTE:
-                tgc = new TGConnectorAttribute(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_INTERACTION:
-                tgc = new TGConnectorInteraction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
-                break;
-            case CONNECTOR_MESSAGE_ASYNC_SD:
-                tgc = new TGConnectorMessageAsyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
-                break;
-            case CONNECTOR_MESSAGE_SYNC_SD:
-                tgc = new TGConnectorMessageSyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
-                break;
-            case CONNECTOR_RELATIVE_TIME_SD:
-                tgc = new TGConnectorRelativeTimeSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                //System.out.println("Connector interaction");
-                break;
-            case CONNECTOR_ACTOR_UCD:
-                tgc = new TGConnectorUseCase(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_INCLUDE_UCD:
-                tgc = new TGConnectorInclude(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_EXTEND_UCD:
-                tgc = new TGConnectorExtend(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_SPECIA_UCD:
-                tgc = new TGConnectorSpecialization(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_NODE_DD:
-                tgc = new TGConnectorLinkNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case CONNECTOR_NODE_NC:
-                tgc = new NCConnectorNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;	
-            case CONNECTOR_COMMENT:
-                tgc = new TGConnectorComment(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case TOS_CONNECTOR_ASSOCIATION:
-                tgc = new TOSConnectorAssociation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case TOS_CONNECTOR_ASSOCIATION_NAVIGATION:
-                tgc = new TOSConnectorAssociationWithNavigation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case TOS_CONNECTOR_ATTRIBUTE:
-                tgc = new TOSConnectorCompositionOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case TOSAD_CONNECTOR:
-                tgc = new TOSADConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case CONNECTOR_EBRDD:
-                tgc = new TGConnectorEBRDD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case CONNECTOR_EBRDD_ERC:
-                tgc = new TGConnectorEBRDDERC(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case ATD_COMPOSITION_CONNECTOR:
-                tgc = new ATDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case ATD_ATTACK_CONNECTOR:
-                tgc = new ATDAttackConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-                
-            case DIPLODOCUSMETHODOLOGY_CONNECTOR:
-            	tgc = new DiplodocusMethodologyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-                
-            case CONNECTOR_TMLAD:
-                tgc = new TGConnectorTMLAD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case CONNECTOR_PORT_TMLC:
-                tgc = new TMLCPortConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case CONNECTOR_NODE_TMLARCHI:
-                tgc = new TMLArchiConnectorNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_TML_ASSOCIATION_NAV:
-                tgc = new TGConnectorTMLAssociationNav(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_TML_COMPOSITION_OPERATOR:
-                tgc = new TGConnectorTMLCompositionOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-                
-            case CONNECTOR_TMLCP:
-            	tgc = new TGConnectorTMLCP(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_MESSAGE_ASYNC_TMLSD:
-            	tgc = new TGConnectorMessageAsyncTMLSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-                
-                
-            case CONNECTOR_DERIVE_REQ:
-                tgc = new TGConnectorDerive(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case CONNECTOR_COPY_REQ:
-                tgc = new TGConnectorCopy(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-			case CONNECTOR_COMPOSITION_REQ:
-                tgc = new TGConnectorComposition(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_VERIFY_REQ:
-                tgc = new TGConnectorVerify(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_PROSMD:
-                tgc = new TGConnectorProSMD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_PROCSD:
-                tgc = new TGConnectorProCSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_DELEGATE_PROCSD:
-                tgc = new TGConnectorDelegateProCSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
-                break;
-            case CONNECTOR_PROCSD_PORT_INTERFACE:
-            	tgc = new TGConnectorPortInterface(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+        case AVATARMAD_COMPOSITION_CONNECTOR:
+            tgc = new AvatarMADCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARMAD_VERSIONING_CONNECTOR:
+            tgc = new AvatarMADVersioningConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARMAD_IMPACT_CONNECTOR:
+            tgc = new AvatarMADImpactConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARMAD_MEET_CONNECTOR:
+            tgc = new AvatarMADMeetConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+            // AVATAR RD
+        case AVATARRD_DERIVE_CONNECTOR:
+            tgc = new AvatarRDDeriveConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARRD_REFINE_CONNECTOR:
+            tgc = new AvatarRDRefineConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARRD_VERIFY_CONNECTOR:
+            tgc = new AvatarRDVerifyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARRD_COPY_CONNECTOR:
+            tgc = new AvatarRDCopyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case AVATARRD_COMPOSITION_CONNECTOR:
+            tgc = new AvatarRDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+            // AVATAR CD
+        case ACD_COMPOSITION_CONNECTOR:
+            tgc = new AvatarCDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case ACD_ASSOCIATION_CONNECTOR:
+            tgc = new AvatarCDAssociationConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+            // AVATAR AD
+        case AAD_ASSOCIATION_CONNECTOR:
+            tgc = new AvatarADAssociationConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+            // AVATAR DD
+        case ADD_CONNECTOR:
+            tgc = new ADDConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+            // AVATAR PD
+        case APD_ATTRIBUTE_CONNECTOR:
+            tgc = new AvatarPDAttributeConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case APD_SIGNAL_CONNECTOR:
+            tgc = new AvatarPDSignalConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case APD_PROPERTY_CONNECTOR:
+            tgc = new AvatarPDPropertyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case APD_COMPOSITION_CONNECTOR:
+            tgc = new AvatarPDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+            // Others
+        case CONNECTOR_AD_DIAGRAM:
+            tgc = new TGConnectorFullArrow(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_ASSOCIATION:
+            tgc = new TGConnectorAssociation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_ASSOCIATION_NAVIGATION:
+            tgc = new TGConnectorAssociationWithNavigation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_ATTRIBUTE:
+            tgc = new TGConnectorAttribute(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_INTERACTION:
+            tgc = new TGConnectorInteraction(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            //System.out.println("Connector interaction");
+            break;
+        case CONNECTOR_MESSAGE_ASYNC_SD:
+            tgc = new TGConnectorMessageAsyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            //System.out.println("Connector interaction");
+            break;
+        case CONNECTOR_MESSAGE_SYNC_SD:
+            tgc = new TGConnectorMessageSyncSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            //System.out.println("Connector interaction");
+            break;
+        case CONNECTOR_RELATIVE_TIME_SD:
+            tgc = new TGConnectorRelativeTimeSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            //System.out.println("Connector interaction");
+            break;
+        case CONNECTOR_ACTOR_UCD:
+            tgc = new TGConnectorUseCase(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_INCLUDE_UCD:
+            tgc = new TGConnectorInclude(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_EXTEND_UCD:
+            tgc = new TGConnectorExtend(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_SPECIA_UCD:
+            tgc = new TGConnectorSpecialization(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_NODE_DD:
+            tgc = new TGConnectorLinkNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_NODE_NC:
+            tgc = new NCConnectorNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_COMMENT:
+            tgc = new TGConnectorComment(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case TOS_CONNECTOR_ASSOCIATION:
+            tgc = new TOSConnectorAssociation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case TOS_CONNECTOR_ASSOCIATION_NAVIGATION:
+            tgc = new TOSConnectorAssociationWithNavigation(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case TOS_CONNECTOR_ATTRIBUTE:
+            tgc = new TOSConnectorCompositionOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case TOSAD_CONNECTOR:
+            tgc = new TOSADConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_EBRDD:
+            tgc = new TGConnectorEBRDD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_EBRDD_ERC:
+            tgc = new TGConnectorEBRDDERC(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case ATD_COMPOSITION_CONNECTOR:
+            tgc = new ATDCompositionConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case ATD_ATTACK_CONNECTOR:
+            tgc = new ATDAttackConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+        case DIPLODOCUSMETHODOLOGY_CONNECTOR:
+            tgc = new DiplodocusMethodologyConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+        case CONNECTOR_TMLAD:
+            tgc = new TGConnectorTMLAD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_PORT_TMLC:
+            tgc = new TMLCPortConnector(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_NODE_TMLARCHI:
+            tgc = new TMLArchiConnectorNode(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_TML_ASSOCIATION_NAV:
+            tgc = new TGConnectorTMLAssociationNav(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_TML_COMPOSITION_OPERATOR:
+            tgc = new TGConnectorTMLCompositionOperator(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+        case CONNECTOR_TMLCP:
+            tgc = new TGConnectorTMLCP(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_MESSAGE_ASYNC_TMLSD:
+            tgc = new TGConnectorMessageAsyncTMLSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+
+
+        case CONNECTOR_DERIVE_REQ:
+            tgc = new TGConnectorDerive(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_COPY_REQ:
+            tgc = new TGConnectorCopy(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_COMPOSITION_REQ:
+            tgc = new TGConnectorComposition(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_VERIFY_REQ:
+            tgc = new TGConnectorVerify(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_PROSMD:
+            tgc = new TGConnectorProSMD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_PROCSD:
+            tgc = new TGConnectorProCSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_DELEGATE_PROCSD:
+            tgc = new TGConnectorDelegateProCSD(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
+            break;
+        case CONNECTOR_PROCSD_PORT_INTERFACE:
+            tgc = new TGConnectorPortInterface(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp, p1, p2, listPoint);
 
         }
 
         return tgc;
-        
+
     }
-    
+
 } // Class
diff --git a/src/ui/TGUIAction.java b/src/ui/TGUIAction.java
index f979688844..271f6eae28 100755
--- a/src/ui/TGUIAction.java
+++ b/src/ui/TGUIAction.java
@@ -228,6 +228,7 @@ public class TGUIAction extends AbstractAction {
     public static final int TMLCP_STOP = 385;
     public static final int TMLCP_CHOICE = 386;
     public static final int TMLCP_JUNCTION = 387;
+    public static final int TMLCP_FOR_LOOP = 416;
 
     public static final int TMLSD_STORAGE_INSTANCE = 388;
     public static final int TMLSD_CONTROLLER_INSTANCE = 396;
@@ -554,7 +555,7 @@ public class TGUIAction extends AbstractAction {
     public static final int ACT_INTERNAL_SEARCH = 415;
     //--
 
-    public static final int NB_ACTION = 416;
+    public static final int NB_ACTION = 417;
 
     private  static final TAction [] actions = new TAction[NB_ACTION];
 
@@ -930,6 +931,7 @@ public class TGUIAction extends AbstractAction {
         actions[TMLCP_START] = new TAction("add-tmlcp-start", "Add Start state", IconManager.imgic222, IconManager.imgic222, "Start", "Add a start state to the currently opened communication pattern diagram", 0);
         actions[TMLCP_STOP] = new TAction("add-tmlcp-stop", "Add Stop", IconManager.imgic210, IconManager.imgic210, "Stop", "Add a termination state to the currently opened communication pattern diagram", 0);
         actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0);
+	actions[TMLCP_FOR_LOOP] = new TAction("add-tmlcp-forloop", "Add loop", IconManager.imgic912, IconManager.imgic912, "Loop", "Add a for loop to the currently opened communication pattern diagram", 0);
 
         actions[TMLSD_EDIT] = new TAction("edit-tmlsd-diagram", "Edit CP-SD diagram", IconManager.imgic100, IconManager.imgic101, "Edit The sequence diagram of  communication patterns", "Make it possible to edit the currently opened communication pattern sequence diagram", 0);
         actions[TMLSD_MESSAGE_ASYNC] = new TAction("add-tmlsd-messageasync", "Add async msg", IconManager.imgic202, IconManager.imgic202, "Asynchronous msg", "Add an asynchronous message between two components of the currently opened communication pattern sequence diagram", 0);
diff --git a/src/ui/tmlcp/TMLCPChoice.java b/src/ui/tmlcp/TMLCPChoice.java
index 8ce4ce5014..f999654076 100755
--- a/src/ui/tmlcp/TMLCPChoice.java
+++ b/src/ui/tmlcp/TMLCPChoice.java
@@ -1,49 +1,49 @@
 /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille, Andrea Enrici
 
-ludovic.apvrille AT telecom-paristech.fr
-andrea.enrici AT telecom-paristech.fr
-
-This software is a computer program whose purpose is to allow the 
-edition of TURTLE analysis, design and deployment diagrams, to 
-allow the generation of RT-LOTOS or Java code from this diagram, 
-and at last to allow the analysis of formal validation traces 
-obtained from external tools, e.g. RTL from LAAS-CNRS and CADP 
-from INRIA Rhone-Alpes.
-
-This software is governed by the CeCILL  license under French law and
-abiding by the rules of distribution of free software.  You can  use, 
-modify and/ or redistribute the software under the terms of the CeCILL
-license as circulated by CEA, CNRS and INRIA at the following URL
-"http://www.cecill.info". 
-
-As a counterpart to the access to the source code and  rights to copy,
-modify and redistribute granted by the license, users are provided only
-with a limited warranty  and the software's author,  the holder of the
-economic rights,  and the successive licensors  have only  limited
-liability. 
-
-In this respect, the user's attention is drawn to the risks associated
-with loading,  using,  modifying and/or developing or reproducing the
-software by the user in light of its specific status of free software,
-that may mean  that it is complicated to manipulate,  and  that  also
-therefore means  that it is reserved for developers  and  experienced
-professionals having in-depth computer knowledge. Users are therefore
-encouraged to load and test the software's suitability as regards their
-requirements in conditions enabling the security of their systems and/or 
-data to be ensured and,  more generally, to use and operate it in the 
-same conditions as regards security. 
-
-The fact that you are presently reading this means that you have had
-knowledge of the CeCILL license and that you accept its terms.
-
-/**
- * Class TMLCPChoice
- * Choice to be used in communication patterns diagrams
- * Creation: 17/02/2014
- * @version 1.0 17/02/2014
- * @author Ludovic APVRILLE, Andrea ENRICI
- * @see
- */
+   ludovic.apvrille AT telecom-paristech.fr
+   andrea.enrici AT telecom-paristech.fr
+
+   This software is a computer program whose purpose is to allow the
+   edition of TURTLE analysis, design and deployment diagrams, to
+   allow the generation of RT-LOTOS or Java code from this diagram,
+   and at last to allow the analysis of formal validation traces
+   obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+   from INRIA Rhone-Alpes.
+
+   This software is governed by the CeCILL  license under French law and
+   abiding by the rules of distribution of free software.  You can  use,
+   modify and/ or redistribute the software under the terms of the CeCILL
+   license as circulated by CEA, CNRS and INRIA at the following URL
+   "http://www.cecill.info".
+
+   As a counterpart to the access to the source code and  rights to copy,
+   modify and redistribute granted by the license, users are provided only
+   with a limited warranty  and the software's author,  the holder of the
+   economic rights,  and the successive licensors  have only  limited
+   liability.
+
+   In this respect, the user's attention is drawn to the risks associated
+   with loading,  using,  modifying and/or developing or reproducing the
+   software by the user in light of its specific status of free software,
+   that may mean  that it is complicated to manipulate,  and  that  also
+   therefore means  that it is reserved for developers  and  experienced
+   professionals having in-depth computer knowledge. Users are therefore
+   encouraged to load and test the software's suitability as regards their
+   requirements in conditions enabling the security of their systems and/or
+   data to be ensured and,  more generally, to use and operate it in the
+   same conditions as regards security.
+
+   The fact that you are presently reading this means that you have had
+   knowledge of the CeCILL license and that you accept its terms.
+
+   /**
+   * Class TMLCPChoice
+   * Choice to be used in communication patterns diagrams
+   * Creation: 17/02/2014
+   * @version 1.0 17/02/2014
+   * @author Ludovic APVRILLE, Andrea ENRICI
+   * @see
+   */
 
 package ui.tmlcp;
 
@@ -58,13 +58,13 @@ public class TMLCPChoice extends TGCWithInternalComponent {
     private int lineLength = 10;
     private int lineOutLength = 25;
     private int textX1, textY1, textX2, textY2, textX3, textY3;
-		private static int instanceCounter = 0;
-		private int counter = 0;
-    
-    
+    private static int instanceCounter = 0;
+    private int counter = 0;
+
+
     public TMLCPChoice(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-        
+
         width = 30;
         height = 30;
         textX1 = -lineOutLength;
@@ -73,87 +73,87 @@ public class TMLCPChoice extends TGCWithInternalComponent {
         textY2 = height/2 - 5;
         textX3 = width /2 + 5;
         textY3 = height + 15;
-        
+
         nbConnectingPoint = 4;
         connectingPoint = new TGConnectingPoint[nbConnectingPoint];
         connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0);
         connectingPoint[1] = new TGConnectingPointTMLCP(this, -lineOutLength, 0, false, true, 0.0, 0.5);
         connectingPoint[2] = new TGConnectingPointTMLCP(this, lineOutLength, 0, false, true, 1.0, 0.5);
         connectingPoint[3] = new TGConnectingPointTMLCP(this, 0, lineOutLength,  false, true, 0.5, 1.0);
-                
+
         addTGConnectingPointsComment();
-        
+
         //nbInternalTGComponent = 0;
         nbInternalTGComponent = 3;
         tgcomponent = new TGComponent[nbInternalTGComponent];
-        
+
         TGCOneLineText tgc = new TGCOneLineText(x+textX1, y+textY1, textX1-50, textX1+5, textY1, textY1 + 25, true, this, _tdp);
         tgc.setValue("[ ]");
         tgc.setName("guard 1");
         tgcomponent[0] = tgc;
-        
+
         tgc = new TGCOneLineText(x+textX2, y+textY2, textX2, textX2+20, textY2, textY2+25, true, this, _tdp);
         tgc.setValue("[ ]");
         tgc.setName("guard 2");
         tgcomponent[1] = tgc;
-        
+
         tgc = new TGCOneLineText(x+textX3, y+textY3, textX3, textX3+20, textY3, textY3+25, true, this, _tdp);
         tgc.setValue("[ ]");
         tgc.setName("guard 3");
         tgcomponent[2] = tgc;
-        
+
         moveable = true;
         editable = false;
         removable = true;
-        
-				instanceCounter++;
-				counter = instanceCounter;
+
+        instanceCounter++;
+        counter = instanceCounter;
         name = "choice" + Integer.toString(counter);
-        
+
         myImageIcon = IconManager.imgic208;
     }
-    
+
     public void internalDrawing(Graphics g) {
         g.drawLine(x+(width/2), y, x+width, y + height/2);
         g.drawLine(x, y + height / 2, x+width/2, y + height);
         g.drawLine(x + width/2, y, x, y + height/2);
         g.drawLine(x + width, y + height/2, x + width/2, y + height);
-        
+
         g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
         g.drawLine(x, y + height/2, x-lineOutLength, y + height/2);
         g.drawLine(x + width, y + height/2, x+ width + lineOutLength, y + height/2);
         g.drawLine(x+(width/2), y + height, x+(width/2), y + height + lineOutLength);
     }
-    
+
     public TGComponent isOnOnlyMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
         }
-		
-		// horizontal line
-		if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
-			return this;	
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-			return this;
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
-			return this;
-		}
-		
-		if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
-			return this;
-		}
-		
+
+        // horizontal line
+        if ((int)(Line2D.ptSegDistSq(x+(width/2), y + height, x+(width/2), y + height + lineOutLength, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
+        if ((int)(Line2D.ptSegDistSq(x + width, y + height/2, x+ width + lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
+        if ((int)(Line2D.ptSegDistSq(x, y + height/2, x-lineOutLength, y + height/2, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
+        if ((int)(Line2D.ptSegDistSq(x+(width/2), y, x+(width/2), y - lineLength, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
         return null;
     }
-    
+
     public int getType() {
         return TGComponentManager.TMLCP_CHOICE;
     }
-    
+
     public String getGuard(int i) {
         if ((i>=0) && (i<nbInternalTGComponent)) {
             //System.out.println("guard name: " + tgcomponent[i].getName());
@@ -162,19 +162,19 @@ public class TMLCPChoice extends TGCWithInternalComponent {
         return "";
     }
 
-		public ArrayList<String> getGuards()	{
-			
-			ArrayList<String> guards = new ArrayList<String>();
-			for( int i = 0; i < nbInternalTGComponent; i++ ) {
-				guards.add( getGuard(i) );
-			}
-			return guards;
-		}
-    
+    public ArrayList<String> getGuards()        {
+
+        ArrayList<String> guards = new ArrayList<String>();
+        for( int i = 0; i < nbInternalTGComponent; i++ ) {
+            guards.add( getGuard(i) );
+        }
+        return guards;
+    }
+
     public boolean hasUnvalidGuards() {
         return (getUnvalidGuards() != null);
     }
-    
+
     public String getUnvalidGuards() {
         String s, g;
         int index;
@@ -190,26 +190,26 @@ public class TMLCPChoice extends TGCWithInternalComponent {
                 s = s.trim();
                 //System.out.println("Matches ? s=" +s );
                 if (!TAttribute.isAValidId(s, false, false)) {
-                //if (!s.matches("(\\w)+*(\\s)*")) {
+                    //if (!s.matches("(\\w)+*(\\s)*")) {
                     return g;
                 }
             }
         }
-        
+
         return null;
     }
-	
-	public int getDefaultConnector() {
-      return TGComponentManager.CONNECTOR_TMLCP;
+
+    public int getDefaultConnector() {
+        return TGComponentManager.CONNECTOR_TMLCP;
+    }
+
+
+
+    public TGConnectingPoint[] getConnectingPoints()    {
+        return connectingPoint;
+    }
+
+    public TGComponent[] getTGComponents()      {
+        return tgcomponent;
     }
-    
- 
-	
-	public TGConnectingPoint[] getConnectingPoints()	{
-		return connectingPoint;
-	}
-
-	public TGComponent[] getTGComponents()	{
-		return tgcomponent;
-	}
 }
diff --git a/src/ui/tmlcp/TMLCPForLoop.java b/src/ui/tmlcp/TMLCPForLoop.java
new file mode 100755
index 0000000000..e9403575c0
--- /dev/null
+++ b/src/ui/tmlcp/TMLCPForLoop.java
@@ -0,0 +1,257 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ * /**
+ * Class TMLCPForLoop
+ * For loop of a TML activity diagram
+ * Creation: 03/06/2015
+ * @version 1.0 03/06/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.tmlcp;
+
+import java.awt.*;
+import java.awt.geom.*;
+import javax.swing.*;
+
+import org.w3c.dom.*;
+
+import myutil.*;
+import ui.*;
+import ui.window.*;
+
+public class TMLCPForLoop extends TGCWithoutInternalComponent implements EmbeddedComment, BasicErrorHighlight {
+    protected int lineLength = 5;
+    protected int textX =  5;
+    protected int textY =  15;
+    protected int arc = 5;
+
+    protected String init = "i=0";
+    protected String condition = "i<5";
+    protected String increment = "i = i+1";
+
+    protected int stateOfError = 0; // Not yet checked
+
+    public TMLCPForLoop(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+        width = 30;
+        height = 20;
+        minWidth = 30;
+
+        nbConnectingPoint = 3;
+        connectingPoint = new TGConnectingPoint[3];
+        connectingPoint[0] = new TGConnectingPointTMLCP(this, 0, -lineLength, true, false, 0.5, 0.0);
+        connectingPoint[1] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 1.0, 0.45); // loop
+        connectingPoint[2] = new TGConnectingPointTMLCP(this, 0, lineLength, false, true, 0.5, 1.0); // after lopp
+
+        moveable = true;
+        editable = true;
+        removable = true;
+
+        makeValue();
+
+        name = "for loop";
+
+        myImageIcon = IconManager.imgic912;
+    }
+
+    public void internalDrawing(Graphics g) {
+        int w  = g.getFontMetrics().stringWidth(value);
+        int w1 = Math.max(minWidth, w + 2 * textX);
+        if ((w1 != width) & (!tdp.isScaled())) {
+            setCd(x + width/2 - w1/2, y);
+            width = w1;
+            //updateConnectingPoints();
+        }
+
+        if (stateOfError > 0)  {
+            Color c = g.getColor();
+            switch(stateOfError) {
+            case ErrorHighlight.OK:
+                g.setColor(ColorManager.FOR);
+                break;
+            default:
+                g.setColor(ColorManager.UNKNOWN_BOX_ACTION);
+            }
+            g.fillRoundRect(x, y, width, height, arc, arc);
+            g.setColor(c);
+        }
+
+        g.drawRoundRect(x, y, width, height, arc, arc);
+        g.drawLine(x+(width/2), y, x+(width/2), y - lineLength);
+        g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
+        g.drawLine(x+width, y+height/2, x+width +lineLength, y+height/2);
+
+        g.drawString(value, x + (width - w) / 2 , y + textY);
+    }
+
+    public boolean editOndoubleClick(JFrame frame) {
+        String [] labels = new String[3];
+        String [] values = new String[3];
+        labels[0] = "Initialisation of variable";
+        values[0] = init;
+        labels[1] = "Condition to stay in loop";
+        values[1] = condition;
+        labels[2] = "Increment at each loop";
+        values[2] = increment;
+
+
+        JDialogMultiString jdms = new JDialogMultiString(frame, "Setting loop's properties", 3, labels, values);
+        jdms.setSize(400, 300);
+        GraphicLib.centerOnParent(jdms);
+        jdms.show(); // blocked until dialog has been closed
+
+        if (jdms.hasBeenSet()) {
+            init = jdms.getString(0);
+            condition = jdms.getString(1);
+            increment = jdms.getString(2);
+
+            makeValue();
+            return true;
+        }
+
+        return false;
+
+    }
+
+    public TGComponent isOnMe(int _x, int _y) {
+        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+            return this;
+        }
+
+        if ((int)(Line2D.ptSegDistSq(x+(width/2), y-lineLength, x+(width/2), y + lineLength + height, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
+        if ((int)(Line2D.ptSegDistSq(x+width, y+height/2, x+width +lineLength, y+height/2, _x, _y)) < distanceSelected) {
+            return this;
+        }
+
+        return null;
+    }
+
+    public void makeValue() {
+        value = "for(" + init + ";" + condition + ";" + increment + ")";
+    }
+
+    public String getAction() {
+        return value;
+    }
+
+    public String getInit() {
+        return init;
+    }
+
+    public String getCondition() {
+        return condition;
+    }
+
+    public String getIncrement() {
+        return increment;
+    }
+
+    protected String translateExtraParam() {
+        StringBuffer sb = new StringBuffer("<extraparam>\n");
+        sb.append("<Data init=\"");
+        sb.append(getInit());
+        sb.append("\" condition=\"");
+        sb.append(GTURTLEModeling.transformString(getCondition()));
+        sb.append("\" increment=\"");
+        sb.append(getIncrement());
+        sb.append("\" />\n");
+        sb.append("</extraparam>\n");
+        return new String(sb);
+    }
+
+    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
+        //System.out.println("*** load extra synchro *** " + getId());
+        try {
+
+            NodeList nli;
+            Node n1, n2;
+            Element elt;
+            int k;
+            String s;
+
+            //System.out.println("Loading Synchronization gates");
+            //System.out.println(nl.toString());
+
+            for(int i=0; i<nl.getLength(); i++) {
+                n1 = nl.item(i);
+                //System.out.println(n1);
+                if (n1.getNodeType() == Node.ELEMENT_NODE) {
+                    nli = n1.getChildNodes();
+                    for(int j=0; i<nli.getLength(); i++) {
+                        n2 = nli.item(i);
+                        //System.out.println(n2);
+                        if (n2.getNodeType() == Node.ELEMENT_NODE) {
+                            elt = (Element) n2;
+                            if (elt.getTagName().equals("Data")) {
+                                init = elt.getAttribute("init");
+                                condition = elt.getAttribute("condition");
+                                increment = elt.getAttribute("increment");
+                            }
+
+                        }
+                    }
+                }
+            }
+
+        } catch (Exception e) {
+            throw new MalformedModelingException();
+        }
+        makeValue();
+    }
+
+
+    public int getType() {
+        return TGComponentManager.TMLCP_FOR_LOOP;
+    }
+
+    public int getDefaultConnector() {
+	return TGComponentManager.CONNECTOR_TMLCP;
+    }
+
+    public void setStateAction(int _stateAction) {
+        stateOfError = _stateAction;
+    }
+
+
+}
diff --git a/src/ui/tmlcp/TMLCPToolBar.java b/src/ui/tmlcp/TMLCPToolBar.java
index a44cdb33a0..75bf1c216b 100755
--- a/src/ui/tmlcp/TMLCPToolBar.java
+++ b/src/ui/tmlcp/TMLCPToolBar.java
@@ -1,49 +1,49 @@
 /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille, Andrea Enrici
 
-ludovic.apvrille AT telecom-paristech.fr
-andrea.enrici AT telecom-paristech.fr
-
-This software is a computer program whose purpose is to allow the 
-edition of TURTLE analysis, design and deployment diagrams, to 
-allow the generation of RT-LOTOS or Java code from this diagram, 
-and at last to allow the analysis of formal validation traces 
-obtained from external tools, e.g. RTL from LAAS-CNRS and CADP 
-from INRIA Rhone-Alpes.
-
-This software is governed by the CeCILL  license under French law and
-abiding by the rules of distribution of free software.  You can  use, 
-modify and/ or redistribute the software under the terms of the CeCILL
-license as circulated by CEA, CNRS and INRIA at the following URL
-"http://www.cecill.info". 
-
-As a counterpart to the access to the source code and  rights to copy,
-modify and redistribute granted by the license, users are provided only
-with a limited warranty  and the software's author,  the holder of the
-economic rights,  and the successive licensors  have only  limited
-liability. 
-
-In this respect, the user's attention is drawn to the risks associated
-with loading,  using,  modifying and/or developing or reproducing the
-software by the user in light of its specific status of free software,
-that may mean  that it is complicated to manipulate,  and  that  also
-therefore means  that it is reserved for developers  and  experienced
-professionals having in-depth computer knowledge. Users are therefore
-encouraged to load and test the software's suitability as regards their
-requirements in conditions enabling the security of their systems and/or 
-data to be ensured and,  more generally, to use and operate it in the 
-same conditions as regards security. 
-
-The fact that you are presently reading this means that you have had
-knowledge of the CeCILL license and that you accept its terms.
-
-/**
- * Class TMLCPToolBar
- * Implements the toolbar to be used in conjunction with the panel of an interaction overview diagram
- * Creation: 29/09/2004
- * @version 1.1 02/06/2014
- * @author Ludovic APVRILLE, Andrea ENRICI
- * @see TClassDiagramPanel
- */
+   ludovic.apvrille AT telecom-paristech.fr
+   andrea.enrici AT telecom-paristech.fr
+
+   This software is a computer program whose purpose is to allow the
+   edition of TURTLE analysis, design and deployment diagrams, to
+   allow the generation of RT-LOTOS or Java code from this diagram,
+   and at last to allow the analysis of formal validation traces
+   obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+   from INRIA Rhone-Alpes.
+
+   This software is governed by the CeCILL  license under French law and
+   abiding by the rules of distribution of free software.  You can  use,
+   modify and/ or redistribute the software under the terms of the CeCILL
+   license as circulated by CEA, CNRS and INRIA at the following URL
+   "http://www.cecill.info".
+
+   As a counterpart to the access to the source code and  rights to copy,
+   modify and redistribute granted by the license, users are provided only
+   with a limited warranty  and the software's author,  the holder of the
+   economic rights,  and the successive licensors  have only  limited
+   liability.
+
+   In this respect, the user's attention is drawn to the risks associated
+   with loading,  using,  modifying and/or developing or reproducing the
+   software by the user in light of its specific status of free software,
+   that may mean  that it is complicated to manipulate,  and  that  also
+   therefore means  that it is reserved for developers  and  experienced
+   professionals having in-depth computer knowledge. Users are therefore
+   encouraged to load and test the software's suitability as regards their
+   requirements in conditions enabling the security of their systems and/or
+   data to be ensured and,  more generally, to use and operate it in the
+   same conditions as regards security.
+
+   The fact that you are presently reading this means that you have had
+   knowledge of the CeCILL license and that you accept its terms.
+
+   /**
+   * Class TMLCPToolBar
+   * Implements the toolbar to be used in conjunction with the panel of an interaction overview diagram
+   * Creation: 02/06/2014
+   * @version 1.2 03/06/2015
+   * @author Ludovic APVRILLE, Andrea ENRICI
+   * @see TClassDiagramPanel
+   */
 
 package ui.tmlcp;
 
@@ -54,12 +54,12 @@ import javax.swing.*;
 import ui.*;
 
 public class TMLCPToolBar extends TToolBar {
-    
+
     public TMLCPToolBar(MainGUI _mgui) {
         super(_mgui);
-        
+
     }
-    
+
     protected void setActive(boolean b) {
         mgui.actions[TGUIAction.TMLCP_EDIT].setEnabled(b);
         mgui.actions[TGUIAction.UML_NOTE].setEnabled(b);
@@ -72,75 +72,74 @@ public class TMLCPToolBar extends TToolBar {
         mgui.actions[TGUIAction.TMLCP_CHOICE].setEnabled(b);
         mgui.actions[TGUIAction.TMLCP_START].setEnabled(b);
         mgui.actions[TGUIAction.TMLCP_STOP].setEnabled(b);
-        mgui.actions[TGUIAction.TMLCP_JUNCTION].setEnabled(b);
+        //mgui.actions[TGUIAction.TMLCP_JUNCTION].setEnabled(b);
+	mgui.actions[TGUIAction.TMLCP_FOR_LOOP].setEnabled(b);
         mgui.actions[TGUIAction.ACT_ENHANCE].setEnabled(b);
-		
-		mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(false);
-		mgui.actions[TGUIAction.ACT_ZOOM_LESS].setEnabled(false);
-		mgui.actions[TGUIAction.ACT_SHOW_ZOOM].setEnabled(false);
-		mgui.actions[TGUIAction.ACT_MODEL_CHECKING].setEnabled(b);
-		mgui.updateZoomInfo();
-        
+
+        mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(false);
+        mgui.actions[TGUIAction.ACT_ZOOM_LESS].setEnabled(false);
+        mgui.actions[TGUIAction.ACT_SHOW_ZOOM].setEnabled(false);
+        mgui.actions[TGUIAction.ACT_MODEL_CHECKING].setEnabled(b);
+        mgui.updateZoomInfo();
+
     }
-    
+
     protected void setButtons() {
         JButton button;
-        
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_EDIT]);
         button.addMouseListener(mgui.mouseHandler);
-        
+
         this.addSeparator();
-        
+
         button = this.add(mgui.actions[TGUIAction.UML_NOTE]);
         button.addMouseListener(mgui.mouseHandler);
-        
+
         //button = this.add(mgui.actions[TGUIAction.CONNECTOR_COMMENT]);
         //button.addMouseListener(mgui.mouseHandler);
-        
+
         this.addSeparator();
-        
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_CONNECTOR]);
         button.addMouseListener(mgui.mouseHandler);
-        
+
         this.addSeparator();
-        
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_START]);
         button.addMouseListener(mgui.mouseHandler);
-        
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_STOP]);
         button.addMouseListener(mgui.mouseHandler);
-        
+
         this.addSeparator();
-        
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_REF_SD]);
         button.addMouseListener(mgui.mouseHandler);
-        
-         button = this.add(mgui.actions[TGUIAction.TMLCP_REF_CP]);
+
+        button = this.add(mgui.actions[TGUIAction.TMLCP_REF_CP]);
         button.addMouseListener(mgui.mouseHandler);
-        
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_FORK]);
         button.addMouseListener(mgui.mouseHandler);
-        
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_JOIN]);
-        button.addMouseListener(mgui.mouseHandler);
-                
-        
+	button.addMouseListener(mgui.mouseHandler);
+	
+
         button = this.add(mgui.actions[TGUIAction.TMLCP_CHOICE]);
         button.addMouseListener(mgui.mouseHandler);
-        
-        button = this.add(mgui.actions[TGUIAction.TMLCP_JUNCTION]);
-        button.addMouseListener(mgui.mouseHandler);
-        
-        this.addSeparator();
-         
-        button = this.add(mgui.actions[TGUIAction.ACT_ENHANCE]);
-        button.addMouseListener(mgui.mouseHandler);
-        
-    }
-    
-} // Class
 
+        /*button = this.add(mgui.actions[TGUIAction.TMLCP_JUNCTION]);
+	  button.addMouseListener(mgui.mouseHandler);*/
 
+	button = this.add(mgui.actions[TGUIAction.TMLCP_FOR_LOOP]);
+	button.addMouseListener(mgui.mouseHandler);
+
+        this.addSeparator();
 
+        button = this.add(mgui.actions[TGUIAction.ACT_ENHANCE]);
+        button.addMouseListener(mgui.mouseHandler);
 
+    }
 
+} // Class
-- 
GitLab