diff --git a/Makefile b/Makefile
index 29ddd4b2876513340b1841fb73d401f3bb0726ae..414769becbe264aa9273e910d70440d0cf55a67a 100755
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,7 @@ GZIP = gzip -9 -f
 DEBUG  = -g
 CLASSPATH = -classpath
 SOURCEPATH = -sourcepath
-PACKAGE = avatartranslator avatartranslator/toexecutable avatartranslator/directsimulation avatartranslator/tocppsim avatartranslator/touppaal avatartranslator/toturtle avatartranslator/toproverif avatartranslator/totpn automata compiler/tmlparser vcd nc ddtranslator launcher myutil tpndescription sddescription sdtranslator tepe translator tmltranslator tmltranslator/tmlcp tmltranslator/toautomata tmltranslator/tosystemc  tmltranslator/tomappingsystemc tmltranslator/tomappingsystemc2 tmltranslator/tomappingsystemc3 tmltranslator/touppaal tmltranslator/toturtle translator/tojava translator/tosimujava translator/totpn translator/touppaal  ui ui/avatarbd ui/avatardd ui/avatarsmd ui/avatarrd ui/avatarpd ui/avatarcd ui/avatarad ui/ad ui/cd ui/oscd ui/osad ui/dd ui/ebrdd ui/file ui/graph ui/iod ui/ncdd ui/procsd ui/prosmdui/prosmd/util ui/tmlad ui/tmlcd ui/tmldd ui/tmlcomp ui/req ui/sd ui/tree ui/ucd ui/window tmltranslator tmltranslator/toturtle req/ebrdd tmltranslator/tosystemc tmatrix proverifspec uppaaldesc fr/inria/oasis/vercors/cttool/model remotesimulation tmltranslator/ctranslator
+PACKAGE = avatartranslator avatartranslator/toexecutable avatartranslator/directsimulation avatartranslator/tocppsim avatartranslator/touppaal avatartranslator/toturtle avatartranslator/toproverif avatartranslator/totpn automata compiler/tmlparser vcd nc ddtranslator launcher myutil tpndescription sddescription sdtranslator tepe translator tmltranslator tmltranslator/tmlcp tmltranslator/toautomata tmltranslator/tosystemc  tmltranslator/tomappingsystemc tmltranslator/tomappingsystemc2 tmltranslator/tomappingsystemc3 tmltranslator/touppaal tmltranslator/toturtle translator/tojava translator/tosimujava translator/totpn translator/touppaal  ui ui/avatarbd ui/avatardd ui/avatarsmd ui/avatarrd ui/avatarpd ui/avatarcd ui/avatarad ui/ad ui/cd ui/oscd ui/osad ui/dd ui/ebrdd ui/file ui/graph ui/iod ui/ncdd ui/procsd ui/prosmdui/prosmd/util ui/tmlad ui/tmlcd ui/tmldd ui/tmlcomp ui/req ui/sd ui/tree ui/ucd ui/window tmltranslator tmltranslator/toturtle req/ebrdd tmltranslator/tosystemc tmatrix proverifspec uppaaldesc fr/inria/oasis/vercors/cttool/model remotesimulation tmltranslator/ctranslator attacktrees
 BUILDER = builder.jar
 BUILD_INFO = build.txt
 BUILD_TO_MODIFY = src/ui/DefaultText.java
@@ -106,7 +106,7 @@ jar: launcher ttooljar tiftranslator tmltranslator rundse remotesimulator
 ttooljar:
 	rm -f $(TTOOL_BIN)/$(TTOOL_BINARY)
 	cp $(TTOOL_SRC)/ui/images/$(STD_LOGO) $(TTOOL_SRC)/ui/images/$(LOGO) 
-	cd $(TTOOL_SRC);  $(JAR) cmf $(TTOOL_JAR_TXT) $(TTOOL_BIN)/$(TTOOL_BINARY) Main.class vcd/*.class avatartranslator/*.class avatartranslator/toexecutable/*.class avatartranslator/directsimulation/*.class avatartranslator/touppaal/*.class avatartranslator/toproverif/*.class avatartranslator/totpn/* avatartranslator/*.class avatartranslator/toturtle/*.java automata/*.class compiler/tmlparser/*.class nc/*.class  tepe/*.class tmltranslator/*.class tmltranslator/tmlcp/*.class tmltranslator/toautomata/*.class tmatrix/*.class tmltranslator/toturtle/*.class tmltranslator/touppaal/*.class tmltranslator/tosystemc/*.class tmltranslator/tomappingsystemc/*.class tmltranslator/tomappingsystemc2/*.class tmltranslator/tomappingsystemc3/*.class  tpndescription/*.class ddtranslator/*.class launcher/*.class myutil/*.class sddescription/*.class sdtranslator/*.class translator/*.class translator/tojava/*.class  translator/tosimujava/*.class translator/touppaal/*.class translator/totpn/*.class req/ebrdd/*.java ui/*.class ui/*/*.class ui/*/*/*.class proverifspec/*.class uppaaldesc/*.class ui/images/*.* ui/images/toolbarButtonGraphics/general/*.gif ui/images/toolbarButtonGraphics/navigation/*.gif  ui/images/toolbarButtonGraphics/media/*.gif $(TTOOL_BIN)/$(LAUNCHER_BINARY) RTLLauncher.class launcher/*.class fr/inria/oasis/vercors/cttool/model/*.class remotesimulation/*.class tmltranslator/ctranslator/*.class #compiler/tmlCPparser/parser/*.class
+	cd $(TTOOL_SRC);  $(JAR) cmf $(TTOOL_JAR_TXT) $(TTOOL_BIN)/$(TTOOL_BINARY) Main.class vcd/*.class avatartranslator/*.class avatartranslator/toexecutable/*.class avatartranslator/directsimulation/*.class avatartranslator/touppaal/*.class avatartranslator/toproverif/*.class avatartranslator/totpn/* avatartranslator/*.class avatartranslator/toturtle/*.java automata/*.class compiler/tmlparser/*.class nc/*.class  tepe/*.class tmltranslator/*.class tmltranslator/tmlcp/*.class tmltranslator/toautomata/*.class tmatrix/*.class tmltranslator/toturtle/*.class tmltranslator/touppaal/*.class tmltranslator/tosystemc/*.class tmltranslator/tomappingsystemc/*.class tmltranslator/tomappingsystemc2/*.class tmltranslator/tomappingsystemc3/*.class  tpndescription/*.class ddtranslator/*.class launcher/*.class myutil/*.class sddescription/*.class sdtranslator/*.class translator/*.class translator/tojava/*.class  translator/tosimujava/*.class translator/touppaal/*.class translator/totpn/*.class req/ebrdd/*.java ui/*.class ui/*/*.class ui/*/*/*.class proverifspec/*.class uppaaldesc/*.class ui/images/*.* ui/images/toolbarButtonGraphics/general/*.gif ui/images/toolbarButtonGraphics/navigation/*.gif  ui/images/toolbarButtonGraphics/media/*.gif $(TTOOL_BIN)/$(LAUNCHER_BINARY) RTLLauncher.class launcher/*.class fr/inria/oasis/vercors/cttool/model/*.class remotesimulation/*.class tmltranslator/ctranslator/*.class attacktrees/*.class #compiler/tmlCPparser/parser/*.class
 
 launcher:
 	rm -f $(TTOOL_BIN)/$(LAUNCHER_BINARY)
diff --git a/modeling/CoffeeMachine_Avatar.xml b/modeling/CoffeeMachine_Avatar.xml
index 600d23c64741149a35aea9da7aed60917dcacb82..f5806191f354c6140f8ab8f7ffbfbf624d26d74c 100644
--- a/modeling/CoffeeMachine_Avatar.xml
+++ b/modeling/CoffeeMachine_Avatar.xml
@@ -506,7 +506,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="265" />
-<P1  x="313" y="261" id="296" />
+<P1  x="313" y="261" id="309" />
 <P2  x="361" y="261" id="284" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -524,7 +524,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="269" />
-<P1  x="309" y="211" id="309" />
+<P1  x="309" y="211" id="296" />
 <P2  x="361" y="211" id="283" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -613,11 +613,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5304" id="306" >
 <father id="344" num="0" />
-<cdparam x="165" y="241" />
-<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="170" y="191" />
+<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
+<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
 <TGConnectingPoint num="0" id="294" />
 <TGConnectingPoint num="1" id="295" />
 <TGConnectingPoint num="2" id="296" />
@@ -633,11 +633,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5304" id="319" >
 <father id="344" num="1" />
-<cdparam x="170" y="191" />
-<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="165" y="241" />
+<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
+<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
 <TGConnectingPoint num="0" id="307" />
 <TGConnectingPoint num="1" id="308" />
 <TGConnectingPoint num="2" id="309" />
@@ -767,7 +767,7 @@
 <TGConnectingPoint num="0" id="403" />
 <TGConnectingPoint num="1" id="404" />
 <TGConnectingPoint num="2" id="405" />
-<P1  x="581" y="154" id="492" />
+<P1  x="581" y="154" id="479" />
 <P2  x="546" y="305" id="549" />
 <Point x="518" y="154" />
 <Point x="518" y="305" />
@@ -795,7 +795,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="408" />
 <TGConnectingPoint num="1" id="409" />
-<P1  x="631" y="164" id="487" />
+<P1  x="631" y="164" id="474" />
 <P2  x="667" y="310" id="536" />
 <Point x="631" y="310" />
 <AutomaticDrawing  data="true" />
@@ -823,7 +823,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="414" />
 <TGConnectingPoint num="1" id="415" />
-<P1  x="721" y="158" id="472" />
+<P1  x="721" y="158" id="485" />
 <P2  x="700" y="204" id="526" />
 <Point x="700" y="158" />
 <AutomaticDrawing  data="true" />
@@ -978,13 +978,13 @@
 <TGConnectingPoint num="22" id="519" />
 <TGConnectingPoint num="23" id="520" />
 </COMPONENT>
-<SUBCOMPONENT type="5303" id="483" >
+<SUBCOMPONENT type="5304" id="483" >
 <father id="521" num="0" />
-<cdparam x="721" y="133" />
-<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="581" y="125" />
+<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" />
-<infoparam name="TGComponent" value="nbOfCoins" />
+<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" />
+<infoparam name="TGComponent" value="Start" />
 <TGConnectingPoint num="0" id="471" />
 <TGConnectingPoint num="1" id="472" />
 <TGConnectingPoint num="2" id="473" />
@@ -997,17 +997,14 @@
 <TGConnectingPoint num="9" id="480" />
 <TGConnectingPoint num="10" id="481" />
 <TGConnectingPoint num="11" id="482" />
-<extraparam>
-<Toggle value="" />
-</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5304" id="496" >
+<SUBCOMPONENT type="5303" id="496" >
 <father id="521" num="1" />
-<cdparam x="581" y="125" />
-<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="721" y="133" />
+<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" />
-<infoparam name="TGComponent" value="Start" />
+<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" />
+<infoparam name="TGComponent" value="nbOfCoins" />
 <TGConnectingPoint num="0" id="484" />
 <TGConnectingPoint num="1" id="485" />
 <TGConnectingPoint num="2" id="486" />
@@ -1020,6 +1017,9 @@
 <TGConnectingPoint num="9" id="493" />
 <TGConnectingPoint num="10" id="494" />
 <TGConnectingPoint num="11" id="495" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
 </SUBCOMPONENT>
 
 <COMPONENT type="5306" id="533" >
@@ -1149,7 +1149,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
 <TGConnectingPoint num="0" id="586" />
-<P1  x="559" y="330" id="623" />
+<P1  x="559" y="330" id="648" />
 <P2  x="560" y="377" id="681" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -1179,7 +1179,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
 <TGConnectingPoint num="0" id="590" />
-<P1  x="789" y="326" id="648" />
+<P1  x="789" y="326" id="623" />
 <P2  x="790" y="377" id="682" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -1278,11 +1278,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5000" id="641" >
 <father id="691" num="0" />
-<cdparam x="464" y="228" />
-<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="695" y="224" />
+<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
-<infoparam name="Block1" value="CoffeeButton" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
+<infoparam name="Block1" value="TeaButton" />
 <TGConnectingPoint num="0" id="617" />
 <TGConnectingPoint num="1" id="618" />
 <TGConnectingPoint num="2" id="619" />
@@ -1315,11 +1315,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5000" id="666" >
 <father id="691" num="1" />
-<cdparam x="695" y="224" />
-<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="464" y="228" />
+<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
-<infoparam name="Block1" value="TeaButton" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
+<infoparam name="Block1" value="CoffeeButton" />
 <TGConnectingPoint num="0" id="642" />
 <TGConnectingPoint num="1" id="643" />
 <TGConnectingPoint num="2" id="644" />
@@ -1732,7 +1732,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="886" />
-<P1  x="437" y="525" id="1285" />
+<P1  x="437" y="525" id="1220" />
 <P2  x="323" y="748" id="1146" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="885" >
@@ -1761,8 +1761,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="893" />
-<P1  x="321" y="455" id="1234" />
-<P2  x="437" y="495" id="1284" />
+<P1  x="321" y="455" id="1247" />
+<P2  x="437" y="495" id="1219" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="892" >
 <father id="894" num="0" />
@@ -1789,7 +1789,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="900" />
-<P1  x="293" y="552" id="1220" />
+<P1  x="293" y="552" id="1285" />
 <P2  x="289" y="748" id="1138" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="899" >
@@ -1811,6 +1811,8 @@
 <computeMax value="teaMaxDelay" />
 <actions value="nbOfCoins = 0" />
 <actions value="beverageReady()" />
+<filesToIncludeLine value="" />
+<codeToIncludeLine value="" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -1819,8 +1821,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="907" />
-<P1  x="288" y="475" id="1245" />
-<P2  x="293" y="522" id="1219" />
+<P1  x="288" y="475" id="1258" />
+<P2  x="293" y="522" id="1284" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="906" >
 <father id="908" num="0" />
@@ -1847,7 +1849,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="914" />
-<P1  x="121" y="552" id="1274" />
+<P1  x="121" y="552" id="1231" />
 <P2  x="255" y="748" id="1145" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="913" >
@@ -1877,8 +1879,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="921" />
-<P1  x="222" y="475" id="1244" />
-<P2  x="121" y="522" id="1273" />
+<P1  x="222" y="475" id="1257" />
+<P2  x="121" y="522" id="1230" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="920" >
 <father id="922" num="0" />
@@ -1905,8 +1907,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
 <TGConnectingPoint num="0" id="928" />
-<P1  x="256" y="419" id="1271" />
-<P2  x="255" y="435" id="1231" />
+<P1  x="256" y="419" id="1241" />
+<P2  x="255" y="435" id="1244" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="927" >
 <father id="929" num="0" />
@@ -2052,7 +2054,7 @@
 </CONNECTOR><SUBCOMPONENT type="-1" id="962" >
 <father id="964" num="0" />
 <cdparam x="328" y="178" />
-<sizeparam width="161" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="165" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -2489,13 +2491,13 @@
 <extraparam>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5104" id="1229" >
+<SUBCOMPONENT type="5103" id="1229" >
 <father id="1335" num="0" />
-<cdparam x="237" y="527" />
-<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="372" y="500" />
+<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
-<infoparam name="Send signal" value="pushTeaButton()" />
+<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
 <TGConnectingPoint num="0" id="1219" />
 <TGConnectingPoint num="1" id="1220" />
 <TGConnectingPoint num="2" id="1221" />
@@ -2508,13 +2510,13 @@
 <TGConnectingPoint num="9" id="1228" />
 <accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="1270" >
+<SUBCOMPONENT type="5104" id="1240" >
 <father id="1335" num="1" />
-<cdparam x="189" y="435" />
-<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="58" y="527" />
+<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
-<infoparam name="state0" value="WaitingForSelection" />
+<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushCoffeeButton()" />
 <TGConnectingPoint num="0" id="1230" />
 <TGConnectingPoint num="1" id="1231" />
 <TGConnectingPoint num="2" id="1232" />
@@ -2525,74 +2527,74 @@
 <TGConnectingPoint num="7" id="1237" />
 <TGConnectingPoint num="8" id="1238" />
 <TGConnectingPoint num="9" id="1239" />
-<TGConnectingPoint num="10" id="1240" />
-<TGConnectingPoint num="11" id="1241" />
-<TGConnectingPoint num="12" id="1242" />
-<TGConnectingPoint num="13" id="1243" />
-<TGConnectingPoint num="14" id="1244" />
-<TGConnectingPoint num="15" id="1245" />
-<TGConnectingPoint num="16" id="1246" />
-<TGConnectingPoint num="17" id="1247" />
-<TGConnectingPoint num="18" id="1248" />
-<TGConnectingPoint num="19" id="1249" />
-<TGConnectingPoint num="20" id="1250" />
-<TGConnectingPoint num="21" id="1251" />
-<TGConnectingPoint num="22" id="1252" />
-<TGConnectingPoint num="23" id="1253" />
-<TGConnectingPoint num="24" id="1254" />
-<TGConnectingPoint num="25" id="1255" />
-<TGConnectingPoint num="26" id="1256" />
-<TGConnectingPoint num="27" id="1257" />
-<TGConnectingPoint num="28" id="1258" />
-<TGConnectingPoint num="29" id="1259" />
-<TGConnectingPoint num="30" id="1260" />
-<TGConnectingPoint num="31" id="1261" />
-<TGConnectingPoint num="32" id="1262" />
-<TGConnectingPoint num="33" id="1263" />
-<TGConnectingPoint num="34" id="1264" />
-<TGConnectingPoint num="35" id="1265" />
-<TGConnectingPoint num="36" id="1266" />
-<TGConnectingPoint num="37" id="1267" />
-<TGConnectingPoint num="38" id="1268" />
-<TGConnectingPoint num="39" id="1269" />
-<extraparam>
-</extraparam>
+<accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="1272" >
+<SUBCOMPONENT type="5100" id="1242" >
 <father id="1335" num="2" />
 <cdparam x="249" y="399" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1271" />
+<TGConnectingPoint num="0" id="1241" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="1283" >
+<SUBCOMPONENT type="5106" id="1283" >
 <father id="1335" num="3" />
-<cdparam x="58" y="527" />
-<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="189" y="435" />
+<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
-<infoparam name="Send signal" value="pushCoffeeButton()" />
-<TGConnectingPoint num="0" id="1273" />
-<TGConnectingPoint num="1" id="1274" />
-<TGConnectingPoint num="2" id="1275" />
-<TGConnectingPoint num="3" id="1276" />
-<TGConnectingPoint num="4" id="1277" />
-<TGConnectingPoint num="5" id="1278" />
-<TGConnectingPoint num="6" id="1279" />
-<TGConnectingPoint num="7" id="1280" />
-<TGConnectingPoint num="8" id="1281" />
-<TGConnectingPoint num="9" id="1282" />
-<accessibility />
+<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
+<infoparam name="state0" value="WaitingForSelection" />
+<TGConnectingPoint num="0" id="1243" />
+<TGConnectingPoint num="1" id="1244" />
+<TGConnectingPoint num="2" id="1245" />
+<TGConnectingPoint num="3" id="1246" />
+<TGConnectingPoint num="4" id="1247" />
+<TGConnectingPoint num="5" id="1248" />
+<TGConnectingPoint num="6" id="1249" />
+<TGConnectingPoint num="7" id="1250" />
+<TGConnectingPoint num="8" id="1251" />
+<TGConnectingPoint num="9" id="1252" />
+<TGConnectingPoint num="10" id="1253" />
+<TGConnectingPoint num="11" id="1254" />
+<TGConnectingPoint num="12" id="1255" />
+<TGConnectingPoint num="13" id="1256" />
+<TGConnectingPoint num="14" id="1257" />
+<TGConnectingPoint num="15" id="1258" />
+<TGConnectingPoint num="16" id="1259" />
+<TGConnectingPoint num="17" id="1260" />
+<TGConnectingPoint num="18" id="1261" />
+<TGConnectingPoint num="19" id="1262" />
+<TGConnectingPoint num="20" id="1263" />
+<TGConnectingPoint num="21" id="1264" />
+<TGConnectingPoint num="22" id="1265" />
+<TGConnectingPoint num="23" id="1266" />
+<TGConnectingPoint num="24" id="1267" />
+<TGConnectingPoint num="25" id="1268" />
+<TGConnectingPoint num="26" id="1269" />
+<TGConnectingPoint num="27" id="1270" />
+<TGConnectingPoint num="28" id="1271" />
+<TGConnectingPoint num="29" id="1272" />
+<TGConnectingPoint num="30" id="1273" />
+<TGConnectingPoint num="31" id="1274" />
+<TGConnectingPoint num="32" id="1275" />
+<TGConnectingPoint num="33" id="1276" />
+<TGConnectingPoint num="34" id="1277" />
+<TGConnectingPoint num="35" id="1278" />
+<TGConnectingPoint num="36" id="1279" />
+<TGConnectingPoint num="37" id="1280" />
+<TGConnectingPoint num="38" id="1281" />
+<TGConnectingPoint num="39" id="1282" />
+<extraparam>
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5103" id="1294" >
+<SUBCOMPONENT type="5104" id="1294" >
 <father id="1335" num="4" />
-<cdparam x="372" y="500" />
-<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="237" y="527" />
+<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
-<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushTeaButton()" />
 <TGConnectingPoint num="0" id="1284" />
 <TGConnectingPoint num="1" id="1285" />
 <TGConnectingPoint num="2" id="1286" />
@@ -2609,19 +2611,19 @@
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
 <CONNECTOR type="5102" id="1342" >
-<cdparam x="363" y="193" />
+<cdparam x="177" y="199" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Send signal to state0" value="null" />
+<infoparam name="connector from start state to Send signal" value="null" />
 <TGConnectingPoint num="0" id="1341" />
-<P1  x="363" y="204" id="1358" />
-<P2  x="362" y="257" id="1369" />
+<P1  x="340" y="233" id="1448" />
+<P2  x="353" y="252" id="1450" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1340" >
 <father id="1342" num="0" />
-<cdparam x="380" y="228" />
-<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="177" y="239" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -2631,7 +2633,7 @@
 <TGConnectingPoint num="3" id="1339" />
 <extraparam>
 <guard value="[ ]" />
-<afterMin value="mechanicalDelay" />
+<afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
@@ -2639,16 +2641,16 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="1349" >
-<cdparam x="363" y="150" />
+<cdparam x="322" y="69" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to Send signal" value="null" />
+<infoparam name="connector from start state to state0" value="null" />
 <TGConnectingPoint num="0" id="1348" />
-<P1  x="363" y="150" id="1415" />
-<P2  x="363" y="174" id="1357" />
+<P1  x="322" y="69" id="1446" />
+<P2  x="323" y="88" id="1406" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1347" >
 <father id="1349" num="0" />
-<cdparam x="363" y="190" />
+<cdparam x="322" y="109" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -2667,16 +2669,16 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="1356" >
-<cdparam x="362" y="101" />
+<cdparam x="377" y="144" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
+<infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="1355" />
-<P1  x="362" y="101" id="1450" />
-<P2  x="363" y="120" id="1410" />
+<P1  x="323" y="118" id="1411" />
+<P2  x="356" y="174" id="1462" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="1354" >
 <father id="1356" num="0" />
-<cdparam x="362" y="141" />
+<cdparam x="377" y="184" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -2694,184 +2696,271 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5103" id="1367" >
-<cdparam x="340" y="179" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="1363" >
+<cdparam x="377" y="187" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1362" />
+<P1  x="353" y="282" id="1451" />
+<P2  x="399" y="352" id="1365" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1361" >
+<father id="1363" num="0" />
+<cdparam x="417" y="335" />
+<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="push()" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="1357" />
 <TGConnectingPoint num="1" id="1358" />
 <TGConnectingPoint num="2" id="1359" />
 <TGConnectingPoint num="3" id="1360" />
-<TGConnectingPoint num="4" id="1361" />
-<TGConnectingPoint num="5" id="1362" />
-<TGConnectingPoint num="6" id="1363" />
-<TGConnectingPoint num="7" id="1364" />
-<TGConnectingPoint num="8" id="1365" />
-<TGConnectingPoint num="9" id="1366" />
-</COMPONENT>
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="mechanicalDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="5106" id="1408" >
-<cdparam x="337" y="257" />
+<COMPONENT type="5106" id="1404" >
+<cdparam x="374" y="352" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1368" />
-<TGConnectingPoint num="1" id="1369" />
-<TGConnectingPoint num="2" id="1370" />
-<TGConnectingPoint num="3" id="1371" />
-<TGConnectingPoint num="4" id="1372" />
-<TGConnectingPoint num="5" id="1373" />
-<TGConnectingPoint num="6" id="1374" />
-<TGConnectingPoint num="7" id="1375" />
-<TGConnectingPoint num="8" id="1376" />
-<TGConnectingPoint num="9" id="1377" />
-<TGConnectingPoint num="10" id="1378" />
-<TGConnectingPoint num="11" id="1379" />
-<TGConnectingPoint num="12" id="1380" />
-<TGConnectingPoint num="13" id="1381" />
-<TGConnectingPoint num="14" id="1382" />
-<TGConnectingPoint num="15" id="1383" />
-<TGConnectingPoint num="16" id="1384" />
-<TGConnectingPoint num="17" id="1385" />
-<TGConnectingPoint num="18" id="1386" />
-<TGConnectingPoint num="19" id="1387" />
-<TGConnectingPoint num="20" id="1388" />
-<TGConnectingPoint num="21" id="1389" />
-<TGConnectingPoint num="22" id="1390" />
-<TGConnectingPoint num="23" id="1391" />
-<TGConnectingPoint num="24" id="1392" />
-<TGConnectingPoint num="25" id="1393" />
-<TGConnectingPoint num="26" id="1394" />
-<TGConnectingPoint num="27" id="1395" />
-<TGConnectingPoint num="28" id="1396" />
-<TGConnectingPoint num="29" id="1397" />
-<TGConnectingPoint num="30" id="1398" />
-<TGConnectingPoint num="31" id="1399" />
-<TGConnectingPoint num="32" id="1400" />
-<TGConnectingPoint num="33" id="1401" />
-<TGConnectingPoint num="34" id="1402" />
-<TGConnectingPoint num="35" id="1403" />
-<TGConnectingPoint num="36" id="1404" />
-<TGConnectingPoint num="37" id="1405" />
-<TGConnectingPoint num="38" id="1406" />
-<TGConnectingPoint num="39" id="1407" />
+<TGConnectingPoint num="0" id="1364" />
+<TGConnectingPoint num="1" id="1365" />
+<TGConnectingPoint num="2" id="1366" />
+<TGConnectingPoint num="3" id="1367" />
+<TGConnectingPoint num="4" id="1368" />
+<TGConnectingPoint num="5" id="1369" />
+<TGConnectingPoint num="6" id="1370" />
+<TGConnectingPoint num="7" id="1371" />
+<TGConnectingPoint num="8" id="1372" />
+<TGConnectingPoint num="9" id="1373" />
+<TGConnectingPoint num="10" id="1374" />
+<TGConnectingPoint num="11" id="1375" />
+<TGConnectingPoint num="12" id="1376" />
+<TGConnectingPoint num="13" id="1377" />
+<TGConnectingPoint num="14" id="1378" />
+<TGConnectingPoint num="15" id="1379" />
+<TGConnectingPoint num="16" id="1380" />
+<TGConnectingPoint num="17" id="1381" />
+<TGConnectingPoint num="18" id="1382" />
+<TGConnectingPoint num="19" id="1383" />
+<TGConnectingPoint num="20" id="1384" />
+<TGConnectingPoint num="21" id="1385" />
+<TGConnectingPoint num="22" id="1386" />
+<TGConnectingPoint num="23" id="1387" />
+<TGConnectingPoint num="24" id="1388" />
+<TGConnectingPoint num="25" id="1389" />
+<TGConnectingPoint num="26" id="1390" />
+<TGConnectingPoint num="27" id="1391" />
+<TGConnectingPoint num="28" id="1392" />
+<TGConnectingPoint num="29" id="1393" />
+<TGConnectingPoint num="30" id="1394" />
+<TGConnectingPoint num="31" id="1395" />
+<TGConnectingPoint num="32" id="1396" />
+<TGConnectingPoint num="33" id="1397" />
+<TGConnectingPoint num="34" id="1398" />
+<TGConnectingPoint num="35" id="1399" />
+<TGConnectingPoint num="36" id="1400" />
+<TGConnectingPoint num="37" id="1401" />
+<TGConnectingPoint num="38" id="1402" />
+<TGConnectingPoint num="39" id="1403" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1449" >
-<cdparam x="338" y="120" />
+<COMPONENT type="5106" id="1445" >
+<cdparam x="298" y="88" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1409" />
-<TGConnectingPoint num="1" id="1410" />
-<TGConnectingPoint num="2" id="1411" />
-<TGConnectingPoint num="3" id="1412" />
-<TGConnectingPoint num="4" id="1413" />
-<TGConnectingPoint num="5" id="1414" />
-<TGConnectingPoint num="6" id="1415" />
-<TGConnectingPoint num="7" id="1416" />
-<TGConnectingPoint num="8" id="1417" />
-<TGConnectingPoint num="9" id="1418" />
-<TGConnectingPoint num="10" id="1419" />
-<TGConnectingPoint num="11" id="1420" />
-<TGConnectingPoint num="12" id="1421" />
-<TGConnectingPoint num="13" id="1422" />
-<TGConnectingPoint num="14" id="1423" />
-<TGConnectingPoint num="15" id="1424" />
-<TGConnectingPoint num="16" id="1425" />
-<TGConnectingPoint num="17" id="1426" />
-<TGConnectingPoint num="18" id="1427" />
-<TGConnectingPoint num="19" id="1428" />
-<TGConnectingPoint num="20" id="1429" />
-<TGConnectingPoint num="21" id="1430" />
-<TGConnectingPoint num="22" id="1431" />
-<TGConnectingPoint num="23" id="1432" />
-<TGConnectingPoint num="24" id="1433" />
-<TGConnectingPoint num="25" id="1434" />
-<TGConnectingPoint num="26" id="1435" />
-<TGConnectingPoint num="27" id="1436" />
-<TGConnectingPoint num="28" id="1437" />
-<TGConnectingPoint num="29" id="1438" />
-<TGConnectingPoint num="30" id="1439" />
-<TGConnectingPoint num="31" id="1440" />
-<TGConnectingPoint num="32" id="1441" />
-<TGConnectingPoint num="33" id="1442" />
-<TGConnectingPoint num="34" id="1443" />
-<TGConnectingPoint num="35" id="1444" />
-<TGConnectingPoint num="36" id="1445" />
-<TGConnectingPoint num="37" id="1446" />
-<TGConnectingPoint num="38" id="1447" />
-<TGConnectingPoint num="39" id="1448" />
+<TGConnectingPoint num="0" id="1405" />
+<TGConnectingPoint num="1" id="1406" />
+<TGConnectingPoint num="2" id="1407" />
+<TGConnectingPoint num="3" id="1408" />
+<TGConnectingPoint num="4" id="1409" />
+<TGConnectingPoint num="5" id="1410" />
+<TGConnectingPoint num="6" id="1411" />
+<TGConnectingPoint num="7" id="1412" />
+<TGConnectingPoint num="8" id="1413" />
+<TGConnectingPoint num="9" id="1414" />
+<TGConnectingPoint num="10" id="1415" />
+<TGConnectingPoint num="11" id="1416" />
+<TGConnectingPoint num="12" id="1417" />
+<TGConnectingPoint num="13" id="1418" />
+<TGConnectingPoint num="14" id="1419" />
+<TGConnectingPoint num="15" id="1420" />
+<TGConnectingPoint num="16" id="1421" />
+<TGConnectingPoint num="17" id="1422" />
+<TGConnectingPoint num="18" id="1423" />
+<TGConnectingPoint num="19" id="1424" />
+<TGConnectingPoint num="20" id="1425" />
+<TGConnectingPoint num="21" id="1426" />
+<TGConnectingPoint num="22" id="1427" />
+<TGConnectingPoint num="23" id="1428" />
+<TGConnectingPoint num="24" id="1429" />
+<TGConnectingPoint num="25" id="1430" />
+<TGConnectingPoint num="26" id="1431" />
+<TGConnectingPoint num="27" id="1432" />
+<TGConnectingPoint num="28" id="1433" />
+<TGConnectingPoint num="29" id="1434" />
+<TGConnectingPoint num="30" id="1435" />
+<TGConnectingPoint num="31" id="1436" />
+<TGConnectingPoint num="32" id="1437" />
+<TGConnectingPoint num="33" id="1438" />
+<TGConnectingPoint num="34" id="1439" />
+<TGConnectingPoint num="35" id="1440" />
+<TGConnectingPoint num="36" id="1441" />
+<TGConnectingPoint num="37" id="1442" />
+<TGConnectingPoint num="38" id="1443" />
+<TGConnectingPoint num="39" id="1444" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="1451" >
-<cdparam x="355" y="81" />
+<COMPONENT type="5100" id="1447" >
+<cdparam x="315" y="49" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1450" />
+<TGConnectingPoint num="0" id="1446" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="1501" >
+<cdparam x="264" y="174" />
+<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="state0" />
+<TGConnectingPoint num="0" id="1461" />
+<TGConnectingPoint num="1" id="1462" />
+<TGConnectingPoint num="2" id="1463" />
+<TGConnectingPoint num="3" id="1464" />
+<TGConnectingPoint num="4" id="1465" />
+<TGConnectingPoint num="5" id="1466" />
+<TGConnectingPoint num="6" id="1467" />
+<TGConnectingPoint num="7" id="1468" />
+<TGConnectingPoint num="8" id="1469" />
+<TGConnectingPoint num="9" id="1470" />
+<TGConnectingPoint num="10" id="1471" />
+<TGConnectingPoint num="11" id="1472" />
+<TGConnectingPoint num="12" id="1473" />
+<TGConnectingPoint num="13" id="1474" />
+<TGConnectingPoint num="14" id="1475" />
+<TGConnectingPoint num="15" id="1476" />
+<TGConnectingPoint num="16" id="1477" />
+<TGConnectingPoint num="17" id="1478" />
+<TGConnectingPoint num="18" id="1479" />
+<TGConnectingPoint num="19" id="1480" />
+<TGConnectingPoint num="20" id="1481" />
+<TGConnectingPoint num="21" id="1482" />
+<TGConnectingPoint num="22" id="1483" />
+<TGConnectingPoint num="23" id="1484" />
+<TGConnectingPoint num="24" id="1485" />
+<TGConnectingPoint num="25" id="1486" />
+<TGConnectingPoint num="26" id="1487" />
+<TGConnectingPoint num="27" id="1488" />
+<TGConnectingPoint num="28" id="1489" />
+<TGConnectingPoint num="29" id="1490" />
+<TGConnectingPoint num="30" id="1491" />
+<TGConnectingPoint num="31" id="1492" />
+<TGConnectingPoint num="32" id="1493" />
+<TGConnectingPoint num="33" id="1494" />
+<TGConnectingPoint num="34" id="1495" />
+<TGConnectingPoint num="35" id="1496" />
+<TGConnectingPoint num="36" id="1497" />
+<TGConnectingPoint num="37" id="1498" />
+<TGConnectingPoint num="38" id="1499" />
+<TGConnectingPoint num="39" id="1500" />
+<extraparam>
+</extraparam>
 </COMPONENT>
+<SUBCOMPONENT type="5100" id="1449" >
+<father id="1501" num="0" />
+<cdparam x="333" y="213" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1448" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5103" id="1460" >
+<father id="1501" num="1" />
+<cdparam x="330" y="257" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="1450" />
+<TGConnectingPoint num="1" id="1451" />
+<TGConnectingPoint num="2" id="1452" />
+<TGConnectingPoint num="3" id="1453" />
+<TGConnectingPoint num="4" id="1454" />
+<TGConnectingPoint num="5" id="1455" />
+<TGConnectingPoint num="6" id="1456" />
+<TGConnectingPoint num="7" id="1457" />
+<TGConnectingPoint num="8" id="1458" />
+<TGConnectingPoint num="9" id="1459" />
+</SUBCOMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="1458" >
-<cdparam x="177" y="199" />
+<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="1508" >
+<cdparam x="363" y="193" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1457" />
-<P1  x="340" y="233" id="1575" />
-<P2  x="353" y="252" id="1564" />
+<infoparam name="connector from Send signal to state0" value="null" />
+<TGConnectingPoint num="0" id="1507" />
+<P1  x="363" y="204" id="1524" />
+<P2  x="362" y="257" id="1535" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1456" >
-<father id="1458" num="0" />
-<cdparam x="177" y="239" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1506" >
+<father id="1508" num="0" />
+<cdparam x="380" y="228" />
+<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1452" />
-<TGConnectingPoint num="1" id="1453" />
-<TGConnectingPoint num="2" id="1454" />
-<TGConnectingPoint num="3" id="1455" />
+<TGConnectingPoint num="0" id="1502" />
+<TGConnectingPoint num="1" id="1503" />
+<TGConnectingPoint num="2" id="1504" />
+<TGConnectingPoint num="3" id="1505" />
 <extraparam>
 <guard value="[ ]" />
-<afterMin value="" />
+<afterMin value="mechanicalDelay" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1465" >
-<cdparam x="322" y="69" />
+<CONNECTOR type="5102" id="1515" >
+<cdparam x="363" y="150" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="1464" />
-<P1  x="322" y="69" id="1562" />
-<P2  x="323" y="88" id="1522" />
+<infoparam name="connector from state0 to Send signal" value="null" />
+<TGConnectingPoint num="0" id="1514" />
+<P1  x="363" y="150" id="1581" />
+<P2  x="363" y="174" id="1523" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1463" >
-<father id="1465" num="0" />
-<cdparam x="322" y="109" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1513" >
+<father id="1515" num="0" />
+<cdparam x="363" y="190" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1459" />
-<TGConnectingPoint num="1" id="1460" />
-<TGConnectingPoint num="2" id="1461" />
-<TGConnectingPoint num="3" id="1462" />
+<TGConnectingPoint num="0" id="1509" />
+<TGConnectingPoint num="1" id="1510" />
+<TGConnectingPoint num="2" id="1511" />
+<TGConnectingPoint num="3" id="1512" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2881,25 +2970,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1472" >
-<cdparam x="377" y="144" />
+<CONNECTOR type="5102" id="1522" >
+<cdparam x="362" y="101" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1471" />
-<P1  x="323" y="118" id="1527" />
-<P2  x="356" y="174" id="1578" />
+<infoparam name="connector from start state to state0" value="null" />
+<TGConnectingPoint num="0" id="1521" />
+<P1  x="362" y="101" id="1616" />
+<P2  x="363" y="120" id="1576" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1470" >
-<father id="1472" num="0" />
-<cdparam x="377" y="184" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1520" >
+<father id="1522" num="0" />
+<cdparam x="362" y="141" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1466" />
-<TGConnectingPoint num="1" id="1467" />
-<TGConnectingPoint num="2" id="1468" />
-<TGConnectingPoint num="3" id="1469" />
+<TGConnectingPoint num="0" id="1516" />
+<TGConnectingPoint num="1" id="1517" />
+<TGConnectingPoint num="2" id="1518" />
+<TGConnectingPoint num="3" id="1519" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2909,220 +2998,133 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1479" >
-<cdparam x="377" y="187" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="1478" />
-<P1  x="353" y="282" id="1565" />
-<P2  x="399" y="352" id="1481" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1477" >
-<father id="1479" num="0" />
-<cdparam x="417" y="335" />
-<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5103" id="1533" >
+<cdparam x="340" y="179" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1473" />
-<TGConnectingPoint num="1" id="1474" />
-<TGConnectingPoint num="2" id="1475" />
-<TGConnectingPoint num="3" id="1476" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="mechanicalDelay" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-</extraparam>
-</SUBCOMPONENT>
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="1523" />
+<TGConnectingPoint num="1" id="1524" />
+<TGConnectingPoint num="2" id="1525" />
+<TGConnectingPoint num="3" id="1526" />
+<TGConnectingPoint num="4" id="1527" />
+<TGConnectingPoint num="5" id="1528" />
+<TGConnectingPoint num="6" id="1529" />
+<TGConnectingPoint num="7" id="1530" />
+<TGConnectingPoint num="8" id="1531" />
+<TGConnectingPoint num="9" id="1532" />
+</COMPONENT>
 
-<COMPONENT type="5106" id="1520" >
-<cdparam x="374" y="352" />
+<COMPONENT type="5106" id="1574" >
+<cdparam x="337" y="257" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1480" />
-<TGConnectingPoint num="1" id="1481" />
-<TGConnectingPoint num="2" id="1482" />
-<TGConnectingPoint num="3" id="1483" />
-<TGConnectingPoint num="4" id="1484" />
-<TGConnectingPoint num="5" id="1485" />
-<TGConnectingPoint num="6" id="1486" />
-<TGConnectingPoint num="7" id="1487" />
-<TGConnectingPoint num="8" id="1488" />
-<TGConnectingPoint num="9" id="1489" />
-<TGConnectingPoint num="10" id="1490" />
-<TGConnectingPoint num="11" id="1491" />
-<TGConnectingPoint num="12" id="1492" />
-<TGConnectingPoint num="13" id="1493" />
-<TGConnectingPoint num="14" id="1494" />
-<TGConnectingPoint num="15" id="1495" />
-<TGConnectingPoint num="16" id="1496" />
-<TGConnectingPoint num="17" id="1497" />
-<TGConnectingPoint num="18" id="1498" />
-<TGConnectingPoint num="19" id="1499" />
-<TGConnectingPoint num="20" id="1500" />
-<TGConnectingPoint num="21" id="1501" />
-<TGConnectingPoint num="22" id="1502" />
-<TGConnectingPoint num="23" id="1503" />
-<TGConnectingPoint num="24" id="1504" />
-<TGConnectingPoint num="25" id="1505" />
-<TGConnectingPoint num="26" id="1506" />
-<TGConnectingPoint num="27" id="1507" />
-<TGConnectingPoint num="28" id="1508" />
-<TGConnectingPoint num="29" id="1509" />
-<TGConnectingPoint num="30" id="1510" />
-<TGConnectingPoint num="31" id="1511" />
-<TGConnectingPoint num="32" id="1512" />
-<TGConnectingPoint num="33" id="1513" />
-<TGConnectingPoint num="34" id="1514" />
-<TGConnectingPoint num="35" id="1515" />
-<TGConnectingPoint num="36" id="1516" />
-<TGConnectingPoint num="37" id="1517" />
-<TGConnectingPoint num="38" id="1518" />
-<TGConnectingPoint num="39" id="1519" />
+<TGConnectingPoint num="0" id="1534" />
+<TGConnectingPoint num="1" id="1535" />
+<TGConnectingPoint num="2" id="1536" />
+<TGConnectingPoint num="3" id="1537" />
+<TGConnectingPoint num="4" id="1538" />
+<TGConnectingPoint num="5" id="1539" />
+<TGConnectingPoint num="6" id="1540" />
+<TGConnectingPoint num="7" id="1541" />
+<TGConnectingPoint num="8" id="1542" />
+<TGConnectingPoint num="9" id="1543" />
+<TGConnectingPoint num="10" id="1544" />
+<TGConnectingPoint num="11" id="1545" />
+<TGConnectingPoint num="12" id="1546" />
+<TGConnectingPoint num="13" id="1547" />
+<TGConnectingPoint num="14" id="1548" />
+<TGConnectingPoint num="15" id="1549" />
+<TGConnectingPoint num="16" id="1550" />
+<TGConnectingPoint num="17" id="1551" />
+<TGConnectingPoint num="18" id="1552" />
+<TGConnectingPoint num="19" id="1553" />
+<TGConnectingPoint num="20" id="1554" />
+<TGConnectingPoint num="21" id="1555" />
+<TGConnectingPoint num="22" id="1556" />
+<TGConnectingPoint num="23" id="1557" />
+<TGConnectingPoint num="24" id="1558" />
+<TGConnectingPoint num="25" id="1559" />
+<TGConnectingPoint num="26" id="1560" />
+<TGConnectingPoint num="27" id="1561" />
+<TGConnectingPoint num="28" id="1562" />
+<TGConnectingPoint num="29" id="1563" />
+<TGConnectingPoint num="30" id="1564" />
+<TGConnectingPoint num="31" id="1565" />
+<TGConnectingPoint num="32" id="1566" />
+<TGConnectingPoint num="33" id="1567" />
+<TGConnectingPoint num="34" id="1568" />
+<TGConnectingPoint num="35" id="1569" />
+<TGConnectingPoint num="36" id="1570" />
+<TGConnectingPoint num="37" id="1571" />
+<TGConnectingPoint num="38" id="1572" />
+<TGConnectingPoint num="39" id="1573" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1561" >
-<cdparam x="298" y="88" />
+<COMPONENT type="5106" id="1615" >
+<cdparam x="338" y="120" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1521" />
-<TGConnectingPoint num="1" id="1522" />
-<TGConnectingPoint num="2" id="1523" />
-<TGConnectingPoint num="3" id="1524" />
-<TGConnectingPoint num="4" id="1525" />
-<TGConnectingPoint num="5" id="1526" />
-<TGConnectingPoint num="6" id="1527" />
-<TGConnectingPoint num="7" id="1528" />
-<TGConnectingPoint num="8" id="1529" />
-<TGConnectingPoint num="9" id="1530" />
-<TGConnectingPoint num="10" id="1531" />
-<TGConnectingPoint num="11" id="1532" />
-<TGConnectingPoint num="12" id="1533" />
-<TGConnectingPoint num="13" id="1534" />
-<TGConnectingPoint num="14" id="1535" />
-<TGConnectingPoint num="15" id="1536" />
-<TGConnectingPoint num="16" id="1537" />
-<TGConnectingPoint num="17" id="1538" />
-<TGConnectingPoint num="18" id="1539" />
-<TGConnectingPoint num="19" id="1540" />
-<TGConnectingPoint num="20" id="1541" />
-<TGConnectingPoint num="21" id="1542" />
-<TGConnectingPoint num="22" id="1543" />
-<TGConnectingPoint num="23" id="1544" />
-<TGConnectingPoint num="24" id="1545" />
-<TGConnectingPoint num="25" id="1546" />
-<TGConnectingPoint num="26" id="1547" />
-<TGConnectingPoint num="27" id="1548" />
-<TGConnectingPoint num="28" id="1549" />
-<TGConnectingPoint num="29" id="1550" />
-<TGConnectingPoint num="30" id="1551" />
-<TGConnectingPoint num="31" id="1552" />
-<TGConnectingPoint num="32" id="1553" />
-<TGConnectingPoint num="33" id="1554" />
-<TGConnectingPoint num="34" id="1555" />
-<TGConnectingPoint num="35" id="1556" />
-<TGConnectingPoint num="36" id="1557" />
-<TGConnectingPoint num="37" id="1558" />
-<TGConnectingPoint num="38" id="1559" />
-<TGConnectingPoint num="39" id="1560" />
+<TGConnectingPoint num="0" id="1575" />
+<TGConnectingPoint num="1" id="1576" />
+<TGConnectingPoint num="2" id="1577" />
+<TGConnectingPoint num="3" id="1578" />
+<TGConnectingPoint num="4" id="1579" />
+<TGConnectingPoint num="5" id="1580" />
+<TGConnectingPoint num="6" id="1581" />
+<TGConnectingPoint num="7" id="1582" />
+<TGConnectingPoint num="8" id="1583" />
+<TGConnectingPoint num="9" id="1584" />
+<TGConnectingPoint num="10" id="1585" />
+<TGConnectingPoint num="11" id="1586" />
+<TGConnectingPoint num="12" id="1587" />
+<TGConnectingPoint num="13" id="1588" />
+<TGConnectingPoint num="14" id="1589" />
+<TGConnectingPoint num="15" id="1590" />
+<TGConnectingPoint num="16" id="1591" />
+<TGConnectingPoint num="17" id="1592" />
+<TGConnectingPoint num="18" id="1593" />
+<TGConnectingPoint num="19" id="1594" />
+<TGConnectingPoint num="20" id="1595" />
+<TGConnectingPoint num="21" id="1596" />
+<TGConnectingPoint num="22" id="1597" />
+<TGConnectingPoint num="23" id="1598" />
+<TGConnectingPoint num="24" id="1599" />
+<TGConnectingPoint num="25" id="1600" />
+<TGConnectingPoint num="26" id="1601" />
+<TGConnectingPoint num="27" id="1602" />
+<TGConnectingPoint num="28" id="1603" />
+<TGConnectingPoint num="29" id="1604" />
+<TGConnectingPoint num="30" id="1605" />
+<TGConnectingPoint num="31" id="1606" />
+<TGConnectingPoint num="32" id="1607" />
+<TGConnectingPoint num="33" id="1608" />
+<TGConnectingPoint num="34" id="1609" />
+<TGConnectingPoint num="35" id="1610" />
+<TGConnectingPoint num="36" id="1611" />
+<TGConnectingPoint num="37" id="1612" />
+<TGConnectingPoint num="38" id="1613" />
+<TGConnectingPoint num="39" id="1614" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="1563" >
-<cdparam x="315" y="49" />
+<COMPONENT type="5100" id="1617" >
+<cdparam x="355" y="81" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1562" />
+<TGConnectingPoint num="0" id="1616" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="1617" >
-<cdparam x="264" y="174" />
-<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="state0" />
-<TGConnectingPoint num="0" id="1577" />
-<TGConnectingPoint num="1" id="1578" />
-<TGConnectingPoint num="2" id="1579" />
-<TGConnectingPoint num="3" id="1580" />
-<TGConnectingPoint num="4" id="1581" />
-<TGConnectingPoint num="5" id="1582" />
-<TGConnectingPoint num="6" id="1583" />
-<TGConnectingPoint num="7" id="1584" />
-<TGConnectingPoint num="8" id="1585" />
-<TGConnectingPoint num="9" id="1586" />
-<TGConnectingPoint num="10" id="1587" />
-<TGConnectingPoint num="11" id="1588" />
-<TGConnectingPoint num="12" id="1589" />
-<TGConnectingPoint num="13" id="1590" />
-<TGConnectingPoint num="14" id="1591" />
-<TGConnectingPoint num="15" id="1592" />
-<TGConnectingPoint num="16" id="1593" />
-<TGConnectingPoint num="17" id="1594" />
-<TGConnectingPoint num="18" id="1595" />
-<TGConnectingPoint num="19" id="1596" />
-<TGConnectingPoint num="20" id="1597" />
-<TGConnectingPoint num="21" id="1598" />
-<TGConnectingPoint num="22" id="1599" />
-<TGConnectingPoint num="23" id="1600" />
-<TGConnectingPoint num="24" id="1601" />
-<TGConnectingPoint num="25" id="1602" />
-<TGConnectingPoint num="26" id="1603" />
-<TGConnectingPoint num="27" id="1604" />
-<TGConnectingPoint num="28" id="1605" />
-<TGConnectingPoint num="29" id="1606" />
-<TGConnectingPoint num="30" id="1607" />
-<TGConnectingPoint num="31" id="1608" />
-<TGConnectingPoint num="32" id="1609" />
-<TGConnectingPoint num="33" id="1610" />
-<TGConnectingPoint num="34" id="1611" />
-<TGConnectingPoint num="35" id="1612" />
-<TGConnectingPoint num="36" id="1613" />
-<TGConnectingPoint num="37" id="1614" />
-<TGConnectingPoint num="38" id="1615" />
-<TGConnectingPoint num="39" id="1616" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="5103" id="1574" >
-<father id="1617" num="0" />
-<cdparam x="330" y="257" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
-<infoparam name="Send signal" value="push()" />
-<TGConnectingPoint num="0" id="1564" />
-<TGConnectingPoint num="1" id="1565" />
-<TGConnectingPoint num="2" id="1566" />
-<TGConnectingPoint num="3" id="1567" />
-<TGConnectingPoint num="4" id="1568" />
-<TGConnectingPoint num="5" id="1569" />
-<TGConnectingPoint num="6" id="1570" />
-<TGConnectingPoint num="7" id="1571" />
-<TGConnectingPoint num="8" id="1572" />
-<TGConnectingPoint num="9" id="1573" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="1576" >
-<father id="1617" num="1" />
-<cdparam x="333" y="213" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1575" />
-</SUBCOMPONENT>
-
 
 </AVATARStateMachineDiagramPanel>
 
diff --git a/src/attacktrees/ANDNode.java b/src/attacktrees/ANDNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..dc5e15db3dcb596f9ecd82786e850127464be17e
--- /dev/null
+++ b/src/attacktrees/ANDNode.java
@@ -0,0 +1,58 @@
+/**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 ANDNode
+ * Creation: 13/04/2015
+ * @version 1.0 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public class ANDNode extends BooleanNode { 
+    
+    public ANDNode(String _name) {
+	super(_name);
+    }
+    
+    
+}
diff --git a/src/attacktrees/AfterNode.java b/src/attacktrees/AfterNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..2f0aa9984eba3fd5a10d5aee93f0a1129486f6a1
--- /dev/null
+++ b/src/attacktrees/AfterNode.java
@@ -0,0 +1,57 @@
+/**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 AfterNode
+ * Creation: 13/04/2015
+ * @version 1.0 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public class AfterNode extends TimeNode { 
+
+    public AfterNode(String _name, int _time) {
+	super(_name, _time);
+    }
+    
+}
diff --git a/src/attacktrees/Attack.java b/src/attacktrees/Attack.java
new file mode 100755
index 0000000000000000000000000000000000000000..7bd85c954cb308b35f6c3e88ec591451a67bf944
--- /dev/null
+++ b/src/attacktrees/Attack.java
@@ -0,0 +1,69 @@
+/**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 Attack
+ * Creation: 10/04/2015
+ * @version 1.0 10/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public class Attack { 
+    private AttackNode originNode; // If no origin node -> leaf attack
+    private ArrayList<AttackNode> destinationNodes;
+    private String name;
+    
+    public Attack(String _name) {
+	name = _name;
+	destinationNodes = new ArrayList<AttackNode>();
+    }
+    
+    public void setOriginNode(AttackNode _node) {
+	originNode = _node;
+    }
+
+    public void addDestinationNode(AttackNode _node) {
+	destinationNodes.add(_node);
+    }
+    
+}
diff --git a/src/attacktrees/AttackNode.java b/src/attacktrees/AttackNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..b8bba4c28a0eeb25e67836be1a5a7520973d3fc5
--- /dev/null
+++ b/src/attacktrees/AttackNode.java
@@ -0,0 +1,69 @@
+/**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 AttackNode
+ * Creation: 10/04/2015
+ * @version 1.0 10/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public abstract class AttackNode { 
+    private Attack resultingAttack; // If no resulting attack -> error!
+    private ArrayList<Attack> inputAttacks;
+    private String name;
+    
+    public AttackNode(String _name) {
+	name = _name;
+	inputAttacks = new ArrayList<Attack>();
+    }
+    
+    public void setResultingAttack(Attack _attack) {
+	resultingAttack = _attack;
+    }
+
+    public void addInputAttack(Attack _attack) {
+	inputAttacks.add(_attack);
+    }
+    
+}
diff --git a/src/attacktrees/AttackTree.java b/src/attacktrees/AttackTree.java
new file mode 100755
index 0000000000000000000000000000000000000000..e14d8cb7a5b805fc1951ae84eb6b51bd15e33f67
--- /dev/null
+++ b/src/attacktrees/AttackTree.java
@@ -0,0 +1,74 @@
+/**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 AttackTree
+ * Creation: 10/04/2015
+ * @version 1.0 10/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public class AttackTree {
+    private ArrayList<AttackNode> nodes;
+    private ArrayList<Attack> attacks;
+    private String name;
+    Object reference;
+    
+ 
+    public AttackTree(String _name, Object _reference) {
+	name = _name;
+	reference = _reference;
+	nodes = new ArrayList<AttackNode>();
+	attacks = new ArrayList<Attack>();
+    }
+    
+    public void addNode(AttackNode _node) {
+	nodes.add(_node);
+    }
+
+    public void addAttack(Attack _attack) {
+	attacks.add(_attack);
+    }
+    
+ 
+}
diff --git a/src/attacktrees/BeforeNode.java b/src/attacktrees/BeforeNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..608d9b83799927efbb828f0c8835b2b3b7d30017
--- /dev/null
+++ b/src/attacktrees/BeforeNode.java
@@ -0,0 +1,57 @@
+/**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 BeforeNode
+ * Creation: 13/04/2015
+ * @version 1.0 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public class BeforeNode extends TimeNode { 
+
+    public BeforeNode(String _name, int _time) {
+	super(_name, _time);
+    }
+    
+}
diff --git a/src/attacktrees/BooleanNode.java b/src/attacktrees/BooleanNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..128d65b3a349b53a1dc1bc17f3d6128c33a8876e
--- /dev/null
+++ b/src/attacktrees/BooleanNode.java
@@ -0,0 +1,58 @@
+/**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 BooleanNode
+ * Creation: 13/04/2015
+ * @version 1.0 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public abstract class BooleanNode extends AttackNode{ 
+    
+    public BooleanNode(String _name) {
+	super(_name);
+    }
+    
+    
+}
diff --git a/src/attacktrees/ORNode.java b/src/attacktrees/ORNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..5e1b64006880ae94396f240dff154e2e0d37017d
--- /dev/null
+++ b/src/attacktrees/ORNode.java
@@ -0,0 +1,58 @@
+/**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 ORNode
+ * Creation: 13/04/2015
+ * @version 1.0 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public class ORNode extends BooleanNode { 
+    
+    public ORNode(String _name) {
+	super(_name);
+    }
+    
+    
+}
diff --git a/src/attacktrees/SequenceNode.java b/src/attacktrees/SequenceNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..9fa77c9ec0847442d26598a0b8fb11ea47523ec5
--- /dev/null
+++ b/src/attacktrees/SequenceNode.java
@@ -0,0 +1,57 @@
+/**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 SequenceNode
+ * Creation: 13/04/2015
+ * @version 1.0 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public class SequenceNode extends Node { 
+    
+    public SequenceNode(String _name) {
+	super(_name);
+    }
+    
+}
diff --git a/src/attacktrees/TimeNode.java b/src/attacktrees/TimeNode.java
new file mode 100755
index 0000000000000000000000000000000000000000..4638092656365c7e8c925a0c0a671359c5ca1db0
--- /dev/null
+++ b/src/attacktrees/TimeNode.java
@@ -0,0 +1,59 @@
+/**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 TimeNode
+ * Creation: 13/04/2015
+ * @version 1.0 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package attacktrees;
+
+import java.util.*;
+
+
+public abstract class TimeNode extends AttackNode{ 
+    protected int time;
+
+    public TimeNode(String _name, int _time) {
+	super(_name);
+	time = _time;
+    }
+    
+}
diff --git a/src/tmltranslator/TMLActivity.java b/src/tmltranslator/TMLActivity.java
index e24c8bbf8f6aa699709a4aa9422b35fbd7fb134a..1a4ff778b4fdb711b02e94ee1e67da187432ff5a 100755
--- a/src/tmltranslator/TMLActivity.java
+++ b/src/tmltranslator/TMLActivity.java
@@ -52,7 +52,7 @@ import myutil.*;
 
 public class TMLActivity extends TMLElement {
     private TMLActivityElement first;
-    private Vector elements;
+    private Vector<TMLActivityElement> elements;
 
 
     public TMLActivity(String name, Object reference) {
@@ -461,5 +461,29 @@ public class TMLActivity extends TMLElement {
 	}
     }
 
+    public void removeEmptyInfiniteLoop() {
+	TMLForLoop loop = null;
+	for(TMLActivityElement elt: elements) {
+	    if (elt instanceof TMLForLoop) {
+		if (((TMLForLoop)elt).isInfinite()) {
+		    loop = (TMLForLoop)elt;
+		    break;
+		}
+	    }
+	}
+	if (loop != null) {
+	    TMLActivityElement next = (loop.getNexts()).get(0);
+	    if ((next == null) || (next instanceof TMLStopState)) {
+		//Replace the element pointing to the infinite loop to the element at getNext(0)
+		for(TMLActivityElement elt: elements) {
+		    elt.setNewNext(loop, next);
+		}
+
+	    }
+	    removeEmptyInfiniteLoop();
+	}
+
+    }
+
 
 }
diff --git a/src/tmltranslator/TMLActivityElement.java b/src/tmltranslator/TMLActivityElement.java
index 79e6df5d5f7415e3386f2b7ac3f5c43fc99b228c..ae0717014a0a40f05453007ea458b5c7abc726a6 100755
--- a/src/tmltranslator/TMLActivityElement.java
+++ b/src/tmltranslator/TMLActivityElement.java
@@ -49,7 +49,7 @@ import java.util.*;
 
 
 public class TMLActivityElement extends TMLElement{
-    protected Vector nexts;
+    protected Vector<TMLActivityElement> nexts;
 
     public TMLActivityElement(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -81,7 +81,7 @@ public class TMLActivityElement extends TMLElement{
         nexts.removeElementAt(index);
     }
 
-    public Vector getNexts() {
+    public Vector<TMLActivityElement> getNexts() {
         return nexts;
     }
 
diff --git a/src/tmltranslator/TMLForLoop.java b/src/tmltranslator/TMLForLoop.java
index 16cb29aa0267b1c0c3fea1475c834ac9b7e11a46..c77327db31208b122614d33017b9c601954be52d 100755
--- a/src/tmltranslator/TMLForLoop.java
+++ b/src/tmltranslator/TMLForLoop.java
@@ -51,6 +51,8 @@ public class TMLForLoop extends TMLActivityElement {
     //next #1 -> after loop
     
     private String init, condition, increment;
+
+    private boolean isInfinite;
     
     public TMLForLoop(String _name, Object _referenceObject) {
          super(_name, _referenceObject);   
@@ -63,6 +65,14 @@ public class TMLForLoop extends TMLActivityElement {
     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;
+    }
     
  
-}
\ No newline at end of file
+}
diff --git a/src/tmltranslator/TMLModeling.java b/src/tmltranslator/TMLModeling.java
index df6c77caa19c927424e45658eb38a1439329fa9b..453e223ca3ff8381220df9e7f62f67402e73704c 100755
--- a/src/tmltranslator/TMLModeling.java
+++ b/src/tmltranslator/TMLModeling.java
@@ -1637,4 +1637,10 @@ public class TMLModeling {
         reads[nb-1].addNext(write);
     }
 
+    public void removeEmptyInfiniteLoop() {
+	for(TMLTask task: tasks) {
+	    task.removeEmptyInfiniteLoop();
+	}
+    }
+
 }
diff --git a/src/tmltranslator/TMLTask.java b/src/tmltranslator/TMLTask.java
index 878355d0d705433c9dff006e8ed0a2857f74a361..d0bac2c0f8769cdb1b7aa4fc4ffa697c9d30fb83 100755
--- a/src/tmltranslator/TMLTask.java
+++ b/src/tmltranslator/TMLTask.java
@@ -57,11 +57,11 @@ public class TMLTask extends TMLElement {
     private ArrayList<TMLAttribute> attributes;
     private boolean mustExit = false;
     private int priority;
-		private HashSet<TMLChannel> channelsList;
-		private HashSet<TMLChannel> readTMLChannelsList;
-		private HashSet<TMLChannel> writeTMLChannelsList;
-		private HashSet<TMLEvent> eventsList;
-		private OperationMEC operationMEC;
+    private HashSet<TMLChannel> channelsList;
+    private HashSet<TMLChannel> readTMLChannelsList;
+    private HashSet<TMLChannel> writeTMLChannelsList;
+    private HashSet<TMLEvent> eventsList;
+    private OperationMEC operationMEC;
 
 
     public TMLTask(String name, Object referenceToClass, Object referenceToActivityDiagram) {
@@ -69,10 +69,10 @@ public class TMLTask extends TMLElement {
         //TraceManager.addDev("Creating new TMLTask:" + name);
         activity = new TMLActivity(name+"activity_diagram", referenceToActivityDiagram);
         attributes = new ArrayList<TMLAttribute>();
-				channelsList = new HashSet<TMLChannel>();
-				readTMLChannelsList = new HashSet<TMLChannel>();
-				writeTMLChannelsList = new HashSet<TMLChannel>();
-				eventsList = new HashSet<TMLEvent>();
+        channelsList = new HashSet<TMLChannel>();
+        readTMLChannelsList = new HashSet<TMLChannel>();
+        writeTMLChannelsList = new HashSet<TMLChannel>();
+        eventsList = new HashSet<TMLEvent>();
     }
 
     public void setRequested(boolean _b) {
@@ -148,7 +148,7 @@ public class TMLTask extends TMLElement {
         return null;
     }
 
-		//For SDR operations only 1 channel
+    //For SDR operations only 1 channel
     public ArrayList<TMLReadChannel> getReadChannels()  {
 
         ArrayList<TMLReadChannel> list = new ArrayList<TMLReadChannel>();
@@ -161,7 +161,7 @@ public class TMLTask extends TMLElement {
         return list;
     }
 
-		//For SDR operations, only 1 channel
+    //For SDR operations, only 1 channel
     public ArrayList<TMLWriteChannel> getWriteChannels()        {
 
         ArrayList<TMLWriteChannel> list = new ArrayList<TMLWriteChannel>();
@@ -179,7 +179,7 @@ public class TMLTask extends TMLElement {
         ArrayList<TMLSendEvent> list = new ArrayList<TMLSendEvent>();
         for( int i = 0; i < getActivityDiagram().nElements(); i++ )     {
             if( getActivityDiagram().get(i) instanceof TMLSendEvent ) {
-            	list.add( (TMLSendEvent) getActivityDiagram().get(i) );
+                list.add( (TMLSendEvent) getActivityDiagram().get(i) );
             }
         }
         return list;
@@ -190,7 +190,7 @@ public class TMLTask extends TMLElement {
         ArrayList<TMLWaitEvent> list = new ArrayList<TMLWaitEvent>();
         for( int i = 0; i < getActivityDiagram().nElements(); i++ )     {
             if( getActivityDiagram().get(i) instanceof TMLWaitEvent ) {
-            	list.add( (TMLWaitEvent) getActivityDiagram().get(i) );
+                list.add( (TMLWaitEvent) getActivityDiagram().get(i) );
             }
         }
         return list;
@@ -309,54 +309,59 @@ public class TMLTask extends TMLElement {
     }
 
     public void replaceReadChannelWith(TMLChannel oldChan, TMLChannel newChan) {
-	activity.replaceReadChannelWith(oldChan, newChan);
+        activity.replaceReadChannelWith(oldChan, newChan);
     }
 
     public void replaceWriteChannelWith(TMLChannel oldChan, TMLChannel newChan) {
-	activity.replaceWriteChannelWith(oldChan, newChan);
+        activity.replaceWriteChannelWith(oldChan, newChan);
     }
 
     public void addSendEventAfterWriteIn(TMLChannel chan, TMLEvent evt, String action) {
-	activity.addSendEventAfterWriteIn(chan, evt, action);
+        activity.addSendEventAfterWriteIn(chan, evt, action);
     }
-	
-	public void addTMLChannel( TMLChannel _ch )	{
-		channelsList.add( _ch );
-	}
 
-	public void addReadTMLChannel( TMLChannel _ch )	{
-		readTMLChannelsList.add( _ch );
-	}
+    public void addTMLChannel( TMLChannel _ch ) {
+        channelsList.add( _ch );
+    }
 
-	public void addWriteTMLChannel( TMLChannel _ch )	{
-		writeTMLChannelsList.add( _ch );
-	}
+    public void addReadTMLChannel( TMLChannel _ch )     {
+        readTMLChannelsList.add( _ch );
+    }
 
-	public ArrayList<TMLChannel> getTMLChannels()	{
-		return new ArrayList<TMLChannel>( channelsList );
-	}
+    public void addWriteTMLChannel( TMLChannel _ch )    {
+        writeTMLChannelsList.add( _ch );
+    }
 
-	public ArrayList<TMLChannel> getReadTMLChannels()	{
-		return new ArrayList<TMLChannel>( readTMLChannelsList );
-	}
+    public ArrayList<TMLChannel> getTMLChannels()       {
+        return new ArrayList<TMLChannel>( channelsList );
+    }
 
-	public ArrayList<TMLChannel> getWriteTMLChannels()	{
-		return new ArrayList<TMLChannel>( writeTMLChannelsList );
-	}
+    public ArrayList<TMLChannel> getReadTMLChannels()   {
+        return new ArrayList<TMLChannel>( readTMLChannelsList );
+    }
 
-	public void addTMLEvent( TMLEvent _evt )	{
-		eventsList.add( _evt );
-	}
+    public ArrayList<TMLChannel> getWriteTMLChannels()  {
+        return new ArrayList<TMLChannel>( writeTMLChannelsList );
+    }
 
-	public ArrayList<TMLEvent> getTMLEvents()	{
-		return new ArrayList<TMLEvent>( eventsList );
-	}
+    public void addTMLEvent( TMLEvent _evt )    {
+        eventsList.add( _evt );
+    }
 
-	public void addOperationMEC( OperationMEC _operationMEC )	{
-		operationMEC = _operationMEC;
-	}
+    public ArrayList<TMLEvent> getTMLEvents()   {
+        return new ArrayList<TMLEvent>( eventsList );
+    }
+
+    public void addOperationMEC( OperationMEC _operationMEC )   {
+        operationMEC = _operationMEC;
+    }
 
-	public OperationMEC getOperationMEC()	{
-		return operationMEC;
-	}
+    public OperationMEC getOperationMEC()       {
+        return operationMEC;
+    }
+
+    public void removeEmptyInfiniteLoop() {
+	activity.removeEmptyInfiniteLoop();
+	
+    }
 }
diff --git a/src/ui/AttackTreePanelTranslator.java b/src/ui/AttackTreePanelTranslator.java
new file mode 100644
index 0000000000000000000000000000000000000000..2f83dfdbe4ed97020e915a017b5618a1a99a14dd
--- /dev/null
+++ b/src/ui/AttackTreePanelTranslator.java
@@ -0,0 +1,240 @@
+/**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 AvatarTreePanelTranslator
+ * Creation: 13/04/2015
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui;
+
+import java.util.*;
+
+import myutil.*;
+import ui.atd.*;
+
+import attacktrees.*;
+//import translator.*;
+import ui.window.*;
+
+
+public class AttackTreePanelTranslator {
+
+
+    protected AttackTreePanel atp;
+    protected Vector checkingErrors, warnings;
+    protected CorrespondanceTGElement listE; // usual list
+    //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
+    protected LinkedList <TDiagramPanel> panels;
+
+
+    public AttackTreePanelTranslator(AttackTreePanel _atp) {
+        atp = _atp;
+        reinit();
+    }
+
+    public void reinit() {
+        checkingErrors = new Vector();
+        warnings = new Vector();
+        listE = new CorrespondanceTGElement();
+        panels = new LinkedList <TDiagramPanel>();
+    }
+
+    public Vector getCheckingErrors() {
+        return checkingErrors;
+    }
+
+    public Vector getWarnings() {
+        return warnings;
+    }
+
+    public CorrespondanceTGElement getCorrespondanceTGElement() {
+        return listE;
+    }
+
+    public AttackTree translateToAttackTreeDataStructure() {
+      
+        AttackTree at = new AttackTree("AttackTree", atp);
+
+        
+	for(TDiagramPanel panel: atp.panels) {
+	    if (panel instanceof AttackTreeDiagramPanel) {
+		translate((AttackTreeDiagramPanel)panel);
+	    }
+	}
+
+	return at;
+        
+    }
+
+    public void translate(AttackTreeDiagramPanel atdp) {
+    }
+
+
+  
+
+   
+
+    /*public void createBlocks(AvatarSpecification _as, LinkedList<AvatarBDBlock> _blocks) {
+        AvatarBlock ab;
+        Vector v;
+        TAttribute a;
+        int i;
+        AvatarAttribute aa;
+        ui.AvatarMethod uiam;
+        ui.AvatarSignal uias;
+        avatartranslator.AvatarMethod atam;
+        avatartranslator.AvatarSignal atas;
+        TGComponent tgc1, tgc2;
+        Vector types;
+
+        for(AvatarBDBlock block: _blocks) {
+            ab = new AvatarBlock(block.getBlockName(), block);
+            _as.addBlock(ab);
+            listE.addCor(ab, block);
+            block.setAVATARID(ab.getID());
+
+            // Create attributes
+            v = block.getAttributeList();
+            for(i=0; i<v.size(); i++) {
+                a = (TAttribute)(v.elementAt(i));
+                if (a.getType() == TAttribute.INTEGER){
+                    addRegularAttribute(ab, a, "");
+                } else if (a.getType() == TAttribute.NATURAL){
+                    addRegularAttribute(ab, a, "");
+                } else if (a.getType() == TAttribute.BOOLEAN) {
+                    addRegularAttribute(ab, a, "");
+                } else if (a.getType() == TAttribute.TIMER) {
+                    addRegularAttribute(ab, a, "");
+                } else {
+                    // other
+                    //TraceManager.addDev(" -> Other type found: " + a.getTypeOther());
+                    types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther());
+                    if (types == null) {
+                        CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + a.getTypeOther() + " used in " + ab.getName());
+                        ce.setAvatarBlock(ab);
+                        ce.setTDiagramPanel(adp.getAvatarBDPanel());
+                        addCheckingError(ce);
+                        return;
+                    } else {
+                        if (types.size() ==0) {
+                            CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, "Data type definition must contain at least one attribute:  " + ab.getName());
+                            ce.setAvatarBlock(ab);
+                            ce.setTDiagramPanel(adp.getAvatarBDPanel());
+                            addCheckingError(ce);
+                        } else {
+                            for(int j=0; j<types.size(); j++) {
+                                addRegularAttribute(ab, (TAttribute)(types.elementAt(j)), a.getId() + "__");
+                            }
+                        }
+                    }
+
+                }
+            }
+
+            // Create methods
+            v = block.getMethodList();
+            for(i=0; i<v.size(); i++) {
+                uiam = (AvatarMethod)(v.get(i));
+                atam = new avatartranslator.AvatarMethod(uiam.getId(), uiam);
+                atam.setImplementationProvided(uiam.isImplementationProvided());
+                ab.addMethod(atam);
+                makeParameters(ab, atam, uiam);
+                makeReturnParameters(ab, block, atam, uiam);
+            }
+            // Create signals
+            v = block.getSignalList();
+            for(i=0; i<v.size(); i++) {
+                uias = (AvatarSignal)(v.get(i));
+
+                if (uias.getInOut() == uias.IN) {
+                    atas = new avatartranslator.AvatarSignal(uias.getId(), avatartranslator.AvatarSignal.IN, uias);
+                } else {
+                    atas = new avatartranslator.AvatarSignal(uias.getId(), avatartranslator.AvatarSignal.OUT, uias);
+                }
+                ab.addSignal(atas);
+                makeParameters(ab, atas, uias);
+            }
+
+            // Put global code
+            ab.addGlobalCode(block.getGlobalCode());
+
+        }
+
+        // Make block hierarchy
+        for(AvatarBlock block: _as.getListOfBlocks()) {
+            tgc1 = listE.getTG(block);
+            if ((tgc1 != null) && (tgc1.getFather() != null)) {
+                tgc2 = tgc1.getFather();
+                ab = listE.getAvatarBlock(tgc2);
+                if (ab != null) {
+                    block.setFather(ab);
+                }
+            }
+        }
+	}*/
+
+   
+    /*}
+
+        //TraceManager.addDev("Size of vector:" + v.size());
+        for(i=0; i<v.size(); i++) {
+            aa = _ab.getAvatarAttributeWithName((String)(v.get(i)));
+            if (aa == null) {
+                CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + _name + " in signal expression: " + _idOperator);
+                ce.setAvatarBlock(_ab);
+                ce.setTDiagramPanel(_tdp);
+                ce.setTGComponent(_tgc);
+                addCheckingError(ce);
+                return ;
+            } else {
+                //TraceManager.addDev("-> Adding attr in action on signal in block " + _ab.getName() + ":" + _name + "__" + tatmp.getId());
+                _aaos.addValue((String)(v.get(i)));
+            }
+        }
+
+
+	}*/
+
+   
+
+          
+
+
+}
diff --git a/src/ui/AvatarDesignPanelTranslator.java b/src/ui/AvatarDesignPanelTranslator.java
index 82d05fd2223f1f7be72245c8595b4f607525b419..42704bdabfb4209ec46b21fc044292ee7d2401a9 100644
--- a/src/ui/AvatarDesignPanelTranslator.java
+++ b/src/ui/AvatarDesignPanelTranslator.java
@@ -1217,6 +1217,10 @@ public class AvatarDesignPanelTranslator {
 
                                 if (!isAVariableAssignation(s)) {
                                     // Method call
+				    int index2 = s.indexOf(";");
+				    if (index2 != -1) {
+					makeError(error, tdp, _ab, tgc, "transition action", s);
+				    }
                                     s = modifyStringMethodCall(s, _ab.getName());
                                     if(!_ab.isAValidMethodCall(s)) {
                                         CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + s);
@@ -1401,6 +1405,7 @@ public class AvatarDesignPanelTranslator {
             return _input;
         }
 
+
         String s = _input.substring(index0+1, index1).trim();
         String output = "";
 
diff --git a/src/ui/GTURTLEModeling.java b/src/ui/GTURTLEModeling.java
index 8a84f13829d91962bf980dc192d4ad7aa58ccdbd..cda56def8262e501c8a0e8a9cc0d65ea861e510e 100755
--- a/src/ui/GTURTLEModeling.java
+++ b/src/ui/GTURTLEModeling.java
@@ -93,6 +93,8 @@ import avatartranslator.touppaal.*;
 import avatartranslator.toproverif.*;
 import avatartranslator.totpn.*;
 
+import attacktrees.*;
+
 import tpndescription.*;
 
 import ui.diplodocusmethodology.*;
@@ -137,7 +139,7 @@ import tmltranslator.ctranslator.*;
 public class GTURTLEModeling {
 
     //Added by Solange
-	
+
     public GProactiveDesign gpdtemp;
 
 
@@ -145,6 +147,7 @@ public class GTURTLEModeling {
     private Vector panels; /* analysis, design, deployment, tml design */
     private TURTLEModeling tm;
     private AvatarSpecification avatarspec;
+    private AttackTree attackTree;
     private AVATAR2UPPAAL avatar2uppaal;
     private AVATAR2ProVerif avatar2proverif;
     private boolean optimizeAvatar;
@@ -158,18 +161,18 @@ public class GTURTLEModeling {
     private MainGUI mgui;
     private CorrespondanceTGElement listE;
     private String rtlotos;
-	
+
     private EBRDD ebrdd;
-	
+
     private UPPAALSpec uppaal;
     private RelationTIFUPPAAL uppaalTIFTable;
     private RelationTMLUPPAAL uppaalTMLTable;
-	
+
     private ProVerifSpec proverif;
-	
+
     private AVATAR2TPN avatar2tpn;
     private TPN tpnFromAvatar;
-	
+
     private String tpn;
     private String sim;
     private String dta;
@@ -195,9 +198,9 @@ public class GTURTLEModeling {
 
     private Vector checkingErrors;
     private Vector warnings;
-	
+
     private LinkedList<Invariant> invariants;
-	
+
     ArrayList<TGConnectorInfo> pendingConnectors;
 
     private Vector savedOperations;
@@ -221,431 +224,431 @@ public class GTURTLEModeling {
     public final static int MATRIX = 4;
     public final static int UPPAAL = 5;
     public final static int PROVERIF = 6;
-	
+
     private boolean undoRunning = false;
 
 
     //private Charset chset1, chset2;
 
     public GTURTLEModeling(MainGUI _mgui, Vector _panels) {
-	mgui = _mgui;
-	panels = _panels;
-	try {
-	    dbf = DocumentBuilderFactory.newInstance();
-	    db = dbf.newDocumentBuilder();
-	} catch (ParserConfigurationException e) {
-	    dbf = null;
-	    db = null;
-	}
-	savedOperations = new Vector();
-	savedPanels = new Vector();
-	pointerOperation = -1;
-		
-	invariants = new LinkedList<Invariant>();
-
-	//vdt = new ValidationDataTree(mgui);
-	mcvdt = new SyntaxAnalysisTree(mgui);
-	idt = new InvariantDataTree(mgui);
-	st = new SearchTree(mgui);
-
-	/*if (!Charset.isSupported("UTF-8")) {
-	  ErrorGUI.exit(ErrorGUI.ERROR_CHARSET);
-	  }
-
-	  chset1 = Charset.forName("UTF-8");*/
+        mgui = _mgui;
+        panels = _panels;
+        try {
+            dbf = DocumentBuilderFactory.newInstance();
+            db = dbf.newDocumentBuilder();
+        } catch (ParserConfigurationException e) {
+            dbf = null;
+            db = null;
+        }
+        savedOperations = new Vector();
+        savedPanels = new Vector();
+        pointerOperation = -1;
+
+        invariants = new LinkedList<Invariant>();
+
+        //vdt = new ValidationDataTree(mgui);
+        mcvdt = new SyntaxAnalysisTree(mgui);
+        idt = new InvariantDataTree(mgui);
+        st = new SearchTree(mgui);
+
+        /*if (!Charset.isSupported("UTF-8")) {
+          ErrorGUI.exit(ErrorGUI.ERROR_CHARSET);
+          }
+
+          chset1 = Charset.forName("UTF-8");*/
     }
 
     public int getLanguageID() {
-	return languageID;
+        return languageID;
     }
-	
+
     public boolean isRegularTM() {
-	if (tm == null ){
-	    return false;
-	}
-	return tm.isARegularTIFSpec();
+        if (tm == null ){
+            return false;
+        }
+        return tm.isARegularTIFSpec();
     }
-	
+
     public LinkedList<Invariant> getInvariants() {
-    	return invariants;
+        return invariants;
     }
-    
+
     public void addInvariant(Invariant _inv) {
-    	invariants.add(_inv);
-    	TraceManager.addDev("Adding invariant: " + _inv.toString());
+        invariants.add(_inv);
+        TraceManager.addDev("Adding invariant: " + _inv.toString());
     }
-    
+
     public void clearInvariants() {
-    	invariants.clear();
+        invariants.clear();
     }
-    
 
-	
+
+
     public String saveTIF() {
-	if (tm == null) {
-	    TraceManager.addDev("NO TIF to save");
-	    return null;
-	}
-		
-	TIFExchange tif = new TIFExchange();
-	tif.setTURTLEModeling(tm);
-	String ret = tif.saveInXMLTIF();
-	TraceManager.addDev("TIF=\n" +  ret);
-	return ret;
-    }
-	
+        if (tm == null) {
+            TraceManager.addDev("NO TIF to save");
+            return null;
+        }
+
+        TIFExchange tif = new TIFExchange();
+        tif.setTURTLEModeling(tm);
+        String ret = tif.saveInXMLTIF();
+        TraceManager.addDev("TIF=\n" +  ret);
+        return ret;
+    }
+
     public boolean openTIF(String s) {
-	TIFExchange tif = new TIFExchange();
-	boolean ret = false;
-		
-	try {
-	    ret = tif.loadFromXMLTIF(s);
-	    if (ret) {
-		tm = tif.getTURTLEModeling();
-		tmState = 0;
-		TraceManager.addDev("Got TIF");
-		generateDesign();
-	    }
-	} catch (Exception e) {
-	    TraceManager.addDev("Exception on TIF: " + e.getMessage());
-	}
-	return ret;
-    }
-	
+        TIFExchange tif = new TIFExchange();
+        boolean ret = false;
+
+        try {
+            ret = tif.loadFromXMLTIF(s);
+            if (ret) {
+                tm = tif.getTURTLEModeling();
+                tmState = 0;
+                TraceManager.addDev("Got TIF");
+                generateDesign();
+            }
+        } catch (Exception e) {
+            TraceManager.addDev("Exception on TIF: " + e.getMessage());
+        }
+        return ret;
+    }
+
     public boolean openSD(String s) {
-	SDExchange sde = new SDExchange();
-	boolean ret = false;
-		
-	try {
-	    ret = sde.loadFromXMLSD(s);
-	    if (ret) {
-		//tm = tif.getTURTLEModeling();
-		//tmState = 0;
-		TraceManager.addDev("Got SD");
-		generateIOD(sde.getHMSC(), sde.getMSC());
-	    }
-	} catch (Exception e) {
-	    TraceManager.addDev("Exception on SD: " + e.getMessage());
-	}
-	return ret;
-    }
-	
+        SDExchange sde = new SDExchange();
+        boolean ret = false;
+
+        try {
+            ret = sde.loadFromXMLSD(s);
+            if (ret) {
+                //tm = tif.getTURTLEModeling();
+                //tmState = 0;
+                TraceManager.addDev("Got SD");
+                generateIOD(sde.getHMSC(), sde.getMSC());
+            }
+        } catch (Exception e) {
+            TraceManager.addDev("Exception on SD: " + e.getMessage());
+        }
+        return ret;
+    }
+
     /*public void mergeChoices(boolean nonDeterministic) {
       if (tm != null) {
       tm.mergeChoices(nonDeterministic);
       }
       }*/
-	
+
     public NCStructure getNCS() {
-	return ncs;
+        return ncs;
     }
 
     public void generateRTLOTOS(File f) {
-	TURTLETranslator tt = new TURTLETranslator(tm);
-	rtlotos = tt.generateRTLOTOS();
-	warnings = tt.getWarnings();
-	nbRTLOTOS ++;
-	if (f != null) {
-	    saveInFile(f, rtlotos);
-	}
-	languageID = RT_LOTOS;
-	mgui.setMode(MainGUI.RTLOTOS_OK);
-    }
-	
+        TURTLETranslator tt = new TURTLETranslator(tm);
+        rtlotos = tt.generateRTLOTOS();
+        warnings = tt.getWarnings();
+        nbRTLOTOS ++;
+        if (f != null) {
+            saveInFile(f, rtlotos);
+        }
+        languageID = RT_LOTOS;
+        mgui.setMode(MainGUI.RTLOTOS_OK);
+    }
+
     public void generateFullLOTOS(File f) {
-	reinitSIM();
+        reinitSIM();
         reinitDTA();
         reinitRG();
         reinitRGAUT();
         reinitRGAUTPROJDOT();
-	//TraceManager.addDev("generate LOTOS");
+        //TraceManager.addDev("generate LOTOS");
         generateLOTOS(f);
     }
 
     public void generateLOTOS(File f) {
-	//tm.print();
-	TraceManager.addDev("Generating Lotos");
-	TURTLETranslator tt = new TURTLETranslator(tm);
-	rtlotos = tt.generateLOTOS(true);
-	warnings = tt.getWarnings();
-	TraceManager.addDev("Lotos generated");
-
-		
-		
-	nbRTLOTOS ++;
-	if (f != null) {
-	    saveInFile(f, rtlotos);
-	}
-	TraceManager.addDev("LOTOS to file done");
-	languageID = LOTOS;
-	mgui.setMode(MainGUI.RTLOTOS_OK);
+        //tm.print();
+        TraceManager.addDev("Generating Lotos");
+        TURTLETranslator tt = new TURTLETranslator(tm);
+        rtlotos = tt.generateLOTOS(true);
+        warnings = tt.getWarnings();
+        TraceManager.addDev("Lotos generated");
+
+
+
+        nbRTLOTOS ++;
+        if (f != null) {
+            saveInFile(f, rtlotos);
+        }
+        TraceManager.addDev("LOTOS to file done");
+        languageID = LOTOS;
+        mgui.setMode(MainGUI.RTLOTOS_OK);
     }
 
     public void generateTPN(File f) {
-	//tm.print();
-	TURTLE2TPN t2tpn = new TURTLE2TPN(tm);
-	tpn = t2tpn.generateTPN(false).toString();
-	warnings = t2tpn.getWarnings();
-
-	nbTPN ++;
-	if (f != null) {
-	    TraceManager.addDev("Saving in file: " + f);
-	    saveInFile(f, tpn);
-	}
-	languageID = TPN;
+        //tm.print();
+        TURTLE2TPN t2tpn = new TURTLE2TPN(tm);
+        tpn = t2tpn.generateTPN(false).toString();
+        warnings = t2tpn.getWarnings();
+
+        nbTPN ++;
+        if (f != null) {
+            TraceManager.addDev("Saving in file: " + f);
+            saveInFile(f, tpn);
+        }
+        languageID = TPN;
+
+        // For debug purpose
+        //TraceManager.addDev(tpn);
+
+        mgui.setMode(MainGUI.RTLOTOS_OK);
+    }
 
-	// For debug purpose
-	//TraceManager.addDev(tpn);
+    public LinkedList generateAUT(String path) {
+        TML2AUT tml2aut = new TML2AUT(tmlm);
+        tml2aut.generateAutomatas(true);
+        try {
+            return tml2aut.saveInFiles(path);
+        } catch (FileException fe) {
+            return null;
+        }
+    }
 
-	mgui.setMode(MainGUI.RTLOTOS_OK);
+    public boolean generateCcode( String _title )       {
+
+        CheckingError ce;
+        int type;
+        TGComponent tgc;
+        String applicationName;
+        TMLCCodeGeneration Ccode;
+
+        if( tmap == null )      {
+            JOptionPane.showMessageDialog(mgui.frame, "C code is only generated from an architecture diagram with mapping information", "Code generation failed", JOptionPane.INFORMATION_MESSAGE);
+            return false;
+        }
+        TraceManager.addDev( "ABOUT TO CHECK ERRORS FOR CODE GENERATION" );
+        TMLCCodeGenerationSyntaxCheck syntax = new TMLCCodeGenerationSyntaxCheck( tmap, tmap.getTMLModeling(), tmap.getTMLArchitecture() );
+        syntax.check();
+        if( syntax.hasErrors() )        {
+            for( TMLCCodeGenerationError error: syntax.getErrors() ) {
+                if( error.type == TMLCCodeGenerationError.ERROR_STRUCTURE ) {
+                    type = CheckingError.STRUCTURE_ERROR;
+                }
+                else {
+                    type = CheckingError.BEHAVIOR_ERROR;
+                }
+                ce = new CheckingError( type, error.message );
+                tgc = listE.getTG( error.element );
+                if ( tgc != null ) {
+                    ce.setTDiagramPanel( tgc.getTDiagramPanel() );
+                    ce.setTGComponent( tgc );
+                }
+                ce.setTMLTask( error.task );
+                checkingErrors.add( ce );
+            }
+            JOptionPane.showMessageDialog(      mgui.frame,
+                                                "The system design contains several errors: the application C code could not be generated",
+                                                "Code generation failed", JOptionPane.INFORMATION_MESSAGE );
+            return false;
+        }
+        applicationName = tmap.getMappedTasks().get(0).getName().split("__")[0];
+        Ccode = new TMLCCodeGeneration( _title, applicationName, mgui.frame, mgui.getAllTMLCP(), tmap );
+        Ccode.toTextFormat();
+        try {
+            if( ConfigurationTTool.CcodeDirectory.equals("") )  {
+                JOptionPane.showMessageDialog(  mgui.frame,
+                                                "No directory for C code generation found in config.xml. The C code cannot be generated.",
+                                                "Code generation failed", JOptionPane.INFORMATION_MESSAGE );
+                return false;
+            }
+            else        {
+                Ccode.saveFile( ConfigurationTTool.CcodeDirectory + File.separator, applicationName );
+                JOptionPane.showMessageDialog(  mgui.frame, "The application C code has been successfully generated in: "
+                                                + ConfigurationTTool.CcodeDirectory + "/", "C code generation successful",
+                                                JOptionPane.INFORMATION_MESSAGE);
+            }
+        }
+        catch( Exception e ) {
+            TraceManager.addError( "Application C files could not be saved: " + e.getMessage() );
+            return false;
+        }
+        return true;
     }
 
-    public LinkedList generateAUT(String path) {
-	TML2AUT tml2aut = new TML2AUT(tmlm);
-	tml2aut.generateAutomatas(true);
-	try {
-	    return tml2aut.saveInFiles(path);
-	} catch (FileException fe) {
-	    return null;
-	}
-    }
-
-	public boolean generateCcode( String _title )	{
-
-   	CheckingError ce;
-   	int type;
-   	TGComponent tgc;
-		String applicationName;
-		TMLCCodeGeneration Ccode;
-
-		if( tmap == null )	{
-			JOptionPane.showMessageDialog(mgui.frame, "C code is only generated from an architecture diagram with mapping information", "Code generation failed", JOptionPane.INFORMATION_MESSAGE);
-			return false;
-		}
-		TraceManager.addDev( "ABOUT TO CHECK ERRORS FOR CODE GENERATION" );
-		TMLCCodeGenerationSyntaxCheck syntax = new TMLCCodeGenerationSyntaxCheck( tmap, tmap.getTMLModeling(), tmap.getTMLArchitecture() );
-		syntax.check();
-		if( syntax.hasErrors() )	{
- 			for( TMLCCodeGenerationError error: syntax.getErrors() ) {
-				if( error.type == TMLCCodeGenerationError.ERROR_STRUCTURE ) {
-					type = CheckingError.STRUCTURE_ERROR;
-				}
-				else {
-					type = CheckingError.BEHAVIOR_ERROR;
-				}
-				ce = new CheckingError( type, error.message );
-				tgc = listE.getTG( error.element );
-				if ( tgc != null ) {
-					ce.setTDiagramPanel( tgc.getTDiagramPanel() );
-					ce.setTGComponent( tgc );
-				}
-				ce.setTMLTask( error.task );
-				checkingErrors.add( ce );
-			}
-			JOptionPane.showMessageDialog( 	mgui.frame,
-																			"The system design contains several errors: the application C code could not be generated",
-																			"Code generation failed", JOptionPane.INFORMATION_MESSAGE );
-			return false;
-		}
-		applicationName = tmap.getMappedTasks().get(0).getName().split("__")[0];
-		Ccode = new TMLCCodeGeneration( _title, applicationName, mgui.frame, mgui.getAllTMLCP(), tmap );
-		Ccode.toTextFormat();
-		try {
-				if( ConfigurationTTool.CcodeDirectory.equals("") )	{
-					JOptionPane.showMessageDialog(	mgui.frame,
-																					"No directory for C code generation found in config.xml. The C code cannot be generated.",
-																					"Code generation failed", JOptionPane.INFORMATION_MESSAGE );
-					return false;
-				}
-				else 	{
-			    Ccode.saveFile( ConfigurationTTool.CcodeDirectory + File.separator, applicationName );
-					JOptionPane.showMessageDialog( 	mgui.frame, "The application C code has been successfully generated in: "
-																					+ ConfigurationTTool.CcodeDirectory + "/", "C code generation successful",
-																					JOptionPane.INFORMATION_MESSAGE);
-			}
-		}
-		catch( Exception e ) {
-		    TraceManager.addError( "Application C files could not be saved: " + e.getMessage() );
-		    return false;
-		}
-		return true;
-	}
-	
     public boolean generateTMLTxt( String _title ) {
 
-	if( tmlcp != null )	{	//Use the data structure filled by translateToTML... and pass it to the appropriate toTextFormat()
-	    TraceManager.addError( "About to generate the TMLText for CPs" );
-	    TMLCPTextSpecification specCP = new TMLCPTextSpecification( _title );
-			
-			//get the architecture panel and the nodes
-			TMLArchiDiagramPanel tmlap = mgui.getTMLArchiDiagramPanels().get(0).tmlap;
-			LinkedList components = tmlap.getComponentList();
-			ListIterator iterator = components.listIterator();
-			TGComponent tgc;
-
-			while(iterator.hasNext()) {
-				tgc = (TGComponent)(iterator.next());
-				if (tgc instanceof TMLArchiCPNode) {
-					TMLArchiCPNode node = (TMLArchiCPNode) tgc;
-					TraceManager.addDev( "Found CP node: " + node.getName() );
-					TraceManager.addDev( "with mapping info: " + node.getMappedUnits() );
-				}
-			}
-			
-			ArrayList<TMLCommunicationPatternPanel> tmlcpPanelsList = new ArrayList<TMLCommunicationPatternPanel>();
-			//get the TMLCommunicationPatternPanels :)
-			for( int i = 0; i < mgui.tabs.size(); i++ )	{
-				TURTLEPanel panel = (TURTLEPanel)( mgui.tabs.get(i) );
-				if( panel instanceof TMLCommunicationPatternPanel )	{
-					tmlcpPanelsList.add( (TMLCommunicationPatternPanel) panel );
-					TraceManager.addDev( "Found TMLCommunicationPatternPanel: " + ((TMLCommunicationPatternPanel)panel).toString() );
-				}
-			}
-
-	    specCP.toTextFormat( tmlcp );	// the data structure tmlcp is filled with the info concerning the CP panel
-			// from which the button is pressed. If there are multiple CP panels this operation must be repeated for each panel. It
-			// should be no difficult to implement.
-	    try	{
-				specCP.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tmlcp" );
-	    }
-	    catch( Exception e ) {
-				TraceManager.addError( "Writing TMLText for CPs, file could not be saved: " + e.getMessage() );
-				return false;
-	    }
-	}
-	else	{
-	    //This branch is activated if doing the syntax check from the application panel.
-	    //It only generates the application TML text
-	    if( tmap == null ) {
-		TMLTextSpecification spec = new TMLTextSpecification( _title );
-		spec.toTextFormat( tmlm );	//TMLModeling
-		try {
-		    spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tml" );
-		}
-		catch( Exception e ) {
-		    TraceManager.addError( "File could not be saved: " + e.getMessage() );
-		    return false;
-		}
-	    }
-	    //This branch is activated if doing the syntax check from the architecture panel.
-	    //It generates the text TML for the architecture and the application + mapping information
-	    else {
-		TMLMappingTextSpecification spec = new TMLMappingTextSpecification( _title );
-		spec.toTextFormat( tmap );	//TMLMapping
-		try {
-		    spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec" );
-		}
-		catch( Exception e ) {
-		    TraceManager.addError( "Files could not be saved: " + e.getMessage() );
-		    return false;
-		}
-	    }
-	}
-	return true;	//temporary, just to check functionality
-    }
-	
+        if( tmlcp != null )     {       //Use the data structure filled by translateToTML... and pass it to the appropriate toTextFormat()
+            TraceManager.addError( "About to generate the TMLText for CPs" );
+            TMLCPTextSpecification specCP = new TMLCPTextSpecification( _title );
+
+            //get the architecture panel and the nodes
+            TMLArchiDiagramPanel tmlap = mgui.getTMLArchiDiagramPanels().get(0).tmlap;
+            LinkedList components = tmlap.getComponentList();
+            ListIterator iterator = components.listIterator();
+            TGComponent tgc;
+
+            while(iterator.hasNext()) {
+                tgc = (TGComponent)(iterator.next());
+                if (tgc instanceof TMLArchiCPNode) {
+                    TMLArchiCPNode node = (TMLArchiCPNode) tgc;
+                    TraceManager.addDev( "Found CP node: " + node.getName() );
+                    TraceManager.addDev( "with mapping info: " + node.getMappedUnits() );
+                }
+            }
+
+            ArrayList<TMLCommunicationPatternPanel> tmlcpPanelsList = new ArrayList<TMLCommunicationPatternPanel>();
+            //get the TMLCommunicationPatternPanels :)
+            for( int i = 0; i < mgui.tabs.size(); i++ ) {
+                TURTLEPanel panel = (TURTLEPanel)( mgui.tabs.get(i) );
+                if( panel instanceof TMLCommunicationPatternPanel )     {
+                    tmlcpPanelsList.add( (TMLCommunicationPatternPanel) panel );
+                    TraceManager.addDev( "Found TMLCommunicationPatternPanel: " + ((TMLCommunicationPatternPanel)panel).toString() );
+                }
+            }
+
+            specCP.toTextFormat( tmlcp );       // the data structure tmlcp is filled with the info concerning the CP panel
+            // from which the button is pressed. If there are multiple CP panels this operation must be repeated for each panel. It
+            // should be no difficult to implement.
+            try {
+                specCP.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tmlcp" );
+            }
+            catch( Exception e ) {
+                TraceManager.addError( "Writing TMLText for CPs, file could not be saved: " + e.getMessage() );
+                return false;
+            }
+        }
+        else    {
+            //This branch is activated if doing the syntax check from the application panel.
+            //It only generates the application TML text
+            if( tmap == null ) {
+                TMLTextSpecification spec = new TMLTextSpecification( _title );
+                spec.toTextFormat( tmlm );      //TMLModeling
+                try {
+                    spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tml" );
+                }
+                catch( Exception e ) {
+                    TraceManager.addError( "File could not be saved: " + e.getMessage() );
+                    return false;
+                }
+            }
+            //This branch is activated if doing the syntax check from the architecture panel.
+            //It generates the text TML for the architecture and the application + mapping information
+            else {
+                TMLMappingTextSpecification spec = new TMLMappingTextSpecification( _title );
+                spec.toTextFormat( tmap );      //TMLMapping
+                try {
+                    spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec" );
+                }
+                catch( Exception e ) {
+                    TraceManager.addError( "Files could not be saved: " + e.getMessage() );
+                    return false;
+                }
+            }
+        }
+        return true;    //temporary, just to check functionality
+    }
+
     public boolean generateUPPAALFromTIF(String path, boolean debug, int nb, boolean choices, boolean variables) {
-	TURTLE2UPPAAL turtle2uppaal = new TURTLE2UPPAAL(tm);
-	turtle2uppaal.setChoiceDeterministic(choices);
-	turtle2uppaal.setVariablesAsActions(variables);
-	uppaal = turtle2uppaal.generateUPPAAL(debug, nb);
-	TraceManager.addDev("Building relation table");
-	uppaalTIFTable = turtle2uppaal.getRelationTIFUPPAAL();
-	TraceManager.addDev("Building relation table done");
-	uppaalTMLTable = null;
-		
-	languageID = UPPAAL;
-	mgui.setMode(MainGUI.UPPAAL_OK);
-		
-	try {
-	    TraceManager.addDev("Saving specification in " + path + "\n");
-	    turtle2uppaal.saveInFile(path);
-	    TraceManager.addDev("UPPAAL specification has been generated in " + path + "\n");
-	    return true;
-	} catch (FileException fe) {
-	    TraceManager.addError("Exception: " + fe.getMessage());
-	    return false;
-	}
+        TURTLE2UPPAAL turtle2uppaal = new TURTLE2UPPAAL(tm);
+        turtle2uppaal.setChoiceDeterministic(choices);
+        turtle2uppaal.setVariablesAsActions(variables);
+        uppaal = turtle2uppaal.generateUPPAAL(debug, nb);
+        TraceManager.addDev("Building relation table");
+        uppaalTIFTable = turtle2uppaal.getRelationTIFUPPAAL();
+        TraceManager.addDev("Building relation table done");
+        uppaalTMLTable = null;
+
+        languageID = UPPAAL;
+        mgui.setMode(MainGUI.UPPAAL_OK);
+
+        try {
+            TraceManager.addDev("Saving specification in " + path + "\n");
+            turtle2uppaal.saveInFile(path);
+            TraceManager.addDev("UPPAAL specification has been generated in " + path + "\n");
+            return true;
+        } catch (FileException fe) {
+            TraceManager.addError("Exception: " + fe.getMessage());
+            return false;
+        }
     }
 
     public boolean generateUPPAALFromTML(String _path, boolean _debug, int _size, boolean choices) {
-	TML2UPPAAL tml2uppaal = new TML2UPPAAL(tmlm);
-	//tml2uppaal.setChoiceDeterministic(choices);
-	tml2uppaal.setSizeInfiniteFIFO(_size);
-	uppaal = tml2uppaal.generateUPPAAL(_debug);
-	uppaalTMLTable = tml2uppaal.getRelationTMLUPPAAL();
-	uppaalTIFTable = null;
-	languageID = UPPAAL;
-	mgui.setMode(MainGUI.UPPAAL_OK);
-	//uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug);
-	try {
-	    tml2uppaal.saveInFile(_path);
-	    return true;
-	} catch (FileException fe) {
-	    TraceManager.addError("Exception: " + fe.getMessage());
-	    return false;
-	}
-    }
-	
+        TML2UPPAAL tml2uppaal = new TML2UPPAAL(tmlm);
+        //tml2uppaal.setChoiceDeterministic(choices);
+        tml2uppaal.setSizeInfiniteFIFO(_size);
+        uppaal = tml2uppaal.generateUPPAAL(_debug);
+        uppaalTMLTable = tml2uppaal.getRelationTMLUPPAAL();
+        uppaalTIFTable = null;
+        languageID = UPPAAL;
+        mgui.setMode(MainGUI.UPPAAL_OK);
+        //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug);
+        try {
+            tml2uppaal.saveInFile(_path);
+            return true;
+        } catch (FileException fe) {
+            TraceManager.addError("Exception: " + fe.getMessage());
+            return false;
+        }
+    }
+
     public boolean generateUPPAALFromAVATAR(String _path) {
-	avatar2uppaal = new AVATAR2UPPAAL(avatarspec);
-	//tml2uppaal.setChoiceDeterministic(choices);
-	//tml2uppaal.setSizeInfiniteFIFO(_size);
-	uppaal = avatar2uppaal.generateUPPAAL(true, optimizeAvatar);
-	warnings = avatar2uppaal.getWarnings();
-	uppaalTMLTable = null;
-	uppaalTIFTable = null;
-	languageID = UPPAAL;
-	mgui.setMode(MainGUI.UPPAAL_OK);
-	//uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug);
-	try {
-	    avatar2uppaal.saveInFile(_path);
-	    return true;
-	} catch (FileException fe) {
-	    TraceManager.addError("Exception: " + fe.getMessage());
-	    return false;
-	}
-    }
-	
+        avatar2uppaal = new AVATAR2UPPAAL(avatarspec);
+        //tml2uppaal.setChoiceDeterministic(choices);
+        //tml2uppaal.setSizeInfiniteFIFO(_size);
+        uppaal = avatar2uppaal.generateUPPAAL(true, optimizeAvatar);
+        warnings = avatar2uppaal.getWarnings();
+        uppaalTMLTable = null;
+        uppaalTIFTable = null;
+        languageID = UPPAAL;
+        mgui.setMode(MainGUI.UPPAAL_OK);
+        //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug);
+        try {
+            avatar2uppaal.saveInFile(_path);
+            return true;
+        } catch (FileException fe) {
+            TraceManager.addError("Exception: " + fe.getMessage());
+            return false;
+        }
+    }
+
     public AvatarSpecification getAvatarSpecification() {
-	return avatarspec;
+        return avatarspec;
     }
-	
+
     public boolean generateProVerifFromAVATAR(String _path, boolean _stateReachability, boolean _advancedTranslation) {
-	avatar2proverif = new AVATAR2ProVerif(avatarspec);
-	//tml2uppaal.setChoiceDeterministic(choices);
-	//tml2uppaal.setSizeInfiniteFIFO(_size);
-	proverif = avatar2proverif.generateProVerif(true, true, _stateReachability, _advancedTranslation);
-	languageID = PROVERIF;
-	mgui.setMode(MainGUI.EDIT_PROVERIF_OK);
-	//mgui.setMode(MainGUI.MODEL_PROVERIF_OK);
-	//uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug);
-	try {
-	    avatar2proverif.saveInFile(_path);
-	    TraceManager.addDev("Specification generated in " + _path);
-	    return true;
-	} catch (FileException fe) {
-	    TraceManager.addError("Exception: " + fe.getMessage());
-	    return false;
-	}
-    }
-	
+        avatar2proverif = new AVATAR2ProVerif(avatarspec);
+        //tml2uppaal.setChoiceDeterministic(choices);
+        //tml2uppaal.setSizeInfiniteFIFO(_size);
+        proverif = avatar2proverif.generateProVerif(true, true, _stateReachability, _advancedTranslation);
+        languageID = PROVERIF;
+        mgui.setMode(MainGUI.EDIT_PROVERIF_OK);
+        //mgui.setMode(MainGUI.MODEL_PROVERIF_OK);
+        //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug);
+        try {
+            avatar2proverif.saveInFile(_path);
+            TraceManager.addDev("Specification generated in " + _path);
+            return true;
+        } catch (FileException fe) {
+            TraceManager.addError("Exception: " + fe.getMessage());
+            return false;
+        }
+    }
+
     public TPN generateTPNFromAvatar() {
-	avatar2tpn = new AVATAR2TPN(avatarspec);
-	//tml2uppaal.setChoiceDeterministic(choices);
-	//tml2uppaal.setSizeInfiniteFIFO(_size);
-	tpnFromAvatar = avatar2tpn.generateTPN(true, true);
-	languageID = TPN;
-	return tpnFromAvatar;
-    }
-	
+        avatar2tpn = new AVATAR2TPN(avatarspec);
+        //tml2uppaal.setChoiceDeterministic(choices);
+        //tml2uppaal.setSizeInfiniteFIFO(_size);
+        tpnFromAvatar = avatar2tpn.generateTPN(true, true);
+        languageID = TPN;
+        return tpnFromAvatar;
+    }
+
     /*IntMatrix im = tpnFromAvatar.getIncidenceMatrix();
       TraceManager.addDev("Farkas computing on " + im.toString());
       im.Farkas();
       TraceManager.addDev("Farkas done:" + im.toString());
-		
-		
-		
+
+
+
       languageID = TPN;
       mgui.setMode(MainGUI.EDIT_PROVERIF_OK);
       //mgui.setMode(MainGUI.MODEL_PROVERIF_OK);
@@ -659,232 +662,232 @@ public class GTURTLEModeling {
       TraceManager.addError("Exception: " + fe.getMessage());
       return false;
       }*/
-		
+
     public ArrayList<String> getUPPAALQueries() {
-	return getUPPAALQueries(mgui.getCurrentTURTLEPanel());
+        return getUPPAALQueries(mgui.getCurrentTURTLEPanel());
     }
-	
+
     public ArrayList<String> getUPPAALQueries(TURTLEPanel tp) {
-	TraceManager.addDev("Searching for queries on " + mgui.getTabName(tp));
-	ArrayList<TGComponent> list = new ArrayList<TGComponent>();
-	ArrayList<TClass> tclasses;
-	tp.getAllCheckableTGComponent(list);
-		
-	ArrayList<String> listQ = new ArrayList<String>();
-		
-	if (tp instanceof DesignPanel) {
-	    ArrayList<ADComponent> listAD = listE.getADComponentCorrespondance(list);
-			
-	    //TraceManager.addDev("List size:" + listAD.size());
-			
-	    if (listAD == null) {
-		return null;
-	    }
-			
-	    TClass t;
-	    String s;
-	    for(ADComponent adc:listAD) {
-		if (adc != null) {
-		    t = tm.findTClass(adc);
-		    //TraceManager.addDev("Found class:" + t.getName());
-		    if (t!= null) {
-			tclasses = new ArrayList<TClass>();
-			tclasses.add(t);
-			// For handling tobjects
-			tm.addAllTClassesEndingWith(tclasses, "_" + t.getName());
-			for(TClass tc: tclasses) {
-			    //TraceManager.addDev("Analyzing class:" + tc.getName());
-			    s = uppaalTIFTable.getRQuery(tc, adc);
-			    if (s != null) {
-				//TraceManager.addDev("Adding query:" + s);
-				listQ.add(s + "$" + adc);
-			    }
-			}
-		    }
-		}
-	    }
-	} else if ((tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLDesignPanel)) {
-	    //TraceManager.addDev("uppaalTMLTable");
-	    ArrayList<TMLActivityElement> listAE = listE.getTMLActivityElementCorrespondance(list);
-			
-	    if (listAE == null) {
-		return null;
-	    }
-			
-	    TMLTask task;
-	    String s;
-	    for(TMLActivityElement elt:listAE) {
-		if (elt != null) {
-		    task = tmlm.findTMLTask(elt);
-		    if (task!= null) {
-			s = uppaalTMLTable.getRQuery(task, elt);
-			if (s != null) {
-			    //TraceManager.addDev("Adding query:" + s);
-			    listQ.add(s + "$" + elt);
-			}
-		    }
-		}
-	    }
-			
-	} else if ((avatar2uppaal != null) && (tp instanceof AvatarDesignPanel)) {
-	    TraceManager.addDev("Making UPPAAL queries");
-	    for(TGComponent tgc: list) {
-		TraceManager.addDev("Making UPPAAL query for " + tgc);
-		String s = avatar2uppaal.getUPPAALIdentification(tgc);
-		TraceManager.addDev("Query: " + s);
-		if ((s!= null) && (s.length() > 0)) {
-		    AvatarBlock block = avatar2uppaal.getBlockFromReferenceObject(tgc);
-		    listQ.add(s + "$" + block.getName() + "." + tgc);
-		} else {
-		    TraceManager.addDev("Could not make query for " + tgc);
-		}
-	    }
-	}
-		
-	return listQ;
+        TraceManager.addDev("Searching for queries on " + mgui.getTabName(tp));
+        ArrayList<TGComponent> list = new ArrayList<TGComponent>();
+        ArrayList<TClass> tclasses;
+        tp.getAllCheckableTGComponent(list);
+
+        ArrayList<String> listQ = new ArrayList<String>();
+
+        if (tp instanceof DesignPanel) {
+            ArrayList<ADComponent> listAD = listE.getADComponentCorrespondance(list);
+
+            //TraceManager.addDev("List size:" + listAD.size());
+
+            if (listAD == null) {
+                return null;
+            }
+
+            TClass t;
+            String s;
+            for(ADComponent adc:listAD) {
+                if (adc != null) {
+                    t = tm.findTClass(adc);
+                    //TraceManager.addDev("Found class:" + t.getName());
+                    if (t!= null) {
+                        tclasses = new ArrayList<TClass>();
+                        tclasses.add(t);
+                        // For handling tobjects
+                        tm.addAllTClassesEndingWith(tclasses, "_" + t.getName());
+                        for(TClass tc: tclasses) {
+                            //TraceManager.addDev("Analyzing class:" + tc.getName());
+                            s = uppaalTIFTable.getRQuery(tc, adc);
+                            if (s != null) {
+                                //TraceManager.addDev("Adding query:" + s);
+                                listQ.add(s + "$" + adc);
+                            }
+                        }
+                    }
+                }
+            }
+        } else if ((tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLDesignPanel)) {
+            //TraceManager.addDev("uppaalTMLTable");
+            ArrayList<TMLActivityElement> listAE = listE.getTMLActivityElementCorrespondance(list);
+
+            if (listAE == null) {
+                return null;
+            }
+
+            TMLTask task;
+            String s;
+            for(TMLActivityElement elt:listAE) {
+                if (elt != null) {
+                    task = tmlm.findTMLTask(elt);
+                    if (task!= null) {
+                        s = uppaalTMLTable.getRQuery(task, elt);
+                        if (s != null) {
+                            //TraceManager.addDev("Adding query:" + s);
+                            listQ.add(s + "$" + elt);
+                        }
+                    }
+                }
+            }
+
+        } else if ((avatar2uppaal != null) && (tp instanceof AvatarDesignPanel)) {
+            TraceManager.addDev("Making UPPAAL queries");
+            for(TGComponent tgc: list) {
+                TraceManager.addDev("Making UPPAAL query for " + tgc);
+                String s = avatar2uppaal.getUPPAALIdentification(tgc);
+                TraceManager.addDev("Query: " + s);
+                if ((s!= null) && (s.length() > 0)) {
+                    AvatarBlock block = avatar2uppaal.getBlockFromReferenceObject(tgc);
+                    listQ.add(s + "$" + block.getName() + "." + tgc);
+                } else {
+                    TraceManager.addDev("Could not make query for " + tgc);
+                }
+            }
+        }
+
+        return listQ;
     }
 
     public LinkedList generateLOTOSAUT(String path) {
-	TML2AUTviaLOTOS tml2aut = new TML2AUTviaLOTOS(tmlm, tm);
-	tml2aut.generateLOTOS(true);
-	return tml2aut.getSpecs();
-	/*try {
-	  return tml2aut.saveInFiles(path);
-	  } catch (FileException fe) {
-	  return null;
-	  }*/
+        TML2AUTviaLOTOS tml2aut = new TML2AUTviaLOTOS(tmlm, tm);
+        tml2aut.generateLOTOS(true);
+        return tml2aut.getSpecs();
+        /*try {
+          return tml2aut.saveInFiles(path);
+          } catch (FileException fe) {
+          return null;
+          }*/
     }
 
     public void generateSystemC() {
-	String path = ConfigurationTTool.SystemCCodeDirectory;
-	String list = FileUtils.deleteFiles(path, ".cpp");
-	if (list.length() == 0) {
-	    TraceManager.addDev("No cpp files were deleted\n");
-	} else {
-	    TraceManager.addDev("Files deleted:\n" + list + "\n");
-	}
-
-	list = FileUtils.deleteFiles(path, ".x");
-
-	if (list.length() == 0) {
-	    TraceManager.addDev("No x files were deleted\n");
-	} else {
-	    TraceManager.addDev("Files deleted:\n" + list + "\n");
-	}
-
-	TML2SystemC tml2systc = new TML2SystemC(tmlm);
-	tml2systc.generateSystemC(true);
-	//tml2systc.print();
-	try {
-	    tml2systc.saveFile(path, "appmodel");
-	} catch (FileException fe) {
-	    TraceManager.addError("File could not be saved (SystemC)");
-	}
+        String path = ConfigurationTTool.SystemCCodeDirectory;
+        String list = FileUtils.deleteFiles(path, ".cpp");
+        if (list.length() == 0) {
+            TraceManager.addDev("No cpp files were deleted\n");
+        } else {
+            TraceManager.addDev("Files deleted:\n" + list + "\n");
+        }
+
+        list = FileUtils.deleteFiles(path, ".x");
+
+        if (list.length() == 0) {
+            TraceManager.addDev("No x files were deleted\n");
+        } else {
+            TraceManager.addDev("Files deleted:\n" + list + "\n");
+        }
+
+        TML2SystemC tml2systc = new TML2SystemC(tmlm);
+        tml2systc.generateSystemC(true);
+        //tml2systc.print();
+        try {
+            tml2systc.saveFile(path, "appmodel");
+        } catch (FileException fe) {
+            TraceManager.addError("File could not be saved (SystemC)");
+        }
 
     }
 
 
     public void saveSIM(File f) {
-	if ((sim != null) && (f != null)) {
-	    saveInFile(f, sim);
-	}
+        if ((sim != null) && (f != null)) {
+            saveInFile(f, sim);
+        }
     }
 
     public void saveDTA(File f) {
-	if ((dta != null) && (f != null)) {
-	    saveInFile(f, dta);
-	}
+        if ((dta != null) && (f != null)) {
+            saveInFile(f, dta);
+        }
     }
 
     public void saveDTADOT(File f) {
-	if ((dtadot != null) && (f != null)) {
-	    saveInFile(f, dtadot);
-	}
+        if ((dtadot != null) && (f != null)) {
+            saveInFile(f, dtadot);
+        }
     }
 
     public void saveRG(File f) {
-	if ((rg != null) && (f != null)) {
-	    saveInFile(f, rg);
-	}
+        if ((rg != null) && (f != null)) {
+            saveInFile(f, rg);
+        }
     }
 
     public void saveTLSA(File f) {
-	if ((rg != null) && (f != null)) {
-	    saveInFile(f, tlsa);
-	}
+        if ((rg != null) && (f != null)) {
+            saveInFile(f, tlsa);
+        }
     }
 
     public void saveRGAut(File f) {
-	if ((rgaut != null) && (f != null)) {
-	    saveInFile(f, rgaut);
-	}
+        if ((rgaut != null) && (f != null)) {
+            saveInFile(f, rgaut);
+        }
     }
 
     public void saveRGDOT(File f) {
-	if ((rgdot != null) && (f != null)) {
-	    saveInFile(f, rgdot);
-	}
+        if ((rgdot != null) && (f != null)) {
+            saveInFile(f, rgdot);
+        }
     }
 
     public void saveTLSADOT(File f) {
-	if ((rgdot != null) && (f != null)) {
-	    saveInFile(f, tlsadot);
-	}
+        if ((rgdot != null) && (f != null)) {
+            saveInFile(f, tlsadot);
+        }
     }
 
     public void saveRGAutDOT(File f) {
-	if ((rgautdot != null) && (f != null)) {
-	    saveInFile(f, rgautdot);
-	}
+        if ((rgautdot != null) && (f != null)) {
+            saveInFile(f, rgautdot);
+        }
     }
 
     public void saveRGAutProj(File f) {
-	if ((rgautproj != null) && (f != null)) {
-	    saveInFile(f, rgautproj);
-	}
+        if ((rgautproj != null) && (f != null)) {
+            saveInFile(f, rgautproj);
+        }
     }
 
     public void saveRGAutProjDOT(File f) {
-	if ((rgautprojdot != null) && (f != null)) {
-	    saveInFile(f, rgautprojdot);
-	}
+        if ((rgautprojdot != null) && (f != null)) {
+            saveInFile(f, rgautprojdot);
+        }
     }
-	
+
     public void modifyMinimizedGraph() {
-	/*AUTMappingGraph graph = new AUTMappingGraph();
-	  TraceManager.addDev("Building graph");
-	  graph.buildGraph(rgautproj);
-	  TraceManager.addDev("Renaming transitions");
-	  graph.renameTransitions();
-	  TraceManager.addDev("Merging transitions 23/4=" + (23/4) + "23%4="  + (23%4));
-	  graph.mergeWriteTransitions();
-	  graph.mergeReadTransitions();
-	  graph.removeInternalTransitions();
-	  TraceManager.addDev("Printing graph:\n" + graph.toAUTStringFormat());
-	  TraceManager.addDev("Splitting transitions");
-	  graph.splitTransitions();
-	  modifiedaut = graph.toAUTStringFormat();
-	  TraceManager.addDev("Printing graph:\n" + modifiedaut);
-	  TraceManager.addDev("Translation in DOT format");
-		
-	  // AUT  2 dot
-	  String fileName = "graph";
-	  try {
-	  RshClient rshc = new RshClient(getHostAldebaran());
-	  int id = rshc.getId();
-	  fileName = FileUtils.addBeforeFileExtension(fileName, "_" + id);   
-	  String data = rgautproj;
-	  rshc.sendFileData(fileName + ".aut", data);
-	  String cmd1 = getPathBcgio() + " -aldebaran " + fileName + ".aut" + " -graphviz " + fileName + ".dot";
-	  data = processCmd(rshc, cmd1);
-	  data = rshc.getFileData(fileName + ".dot");
-	  modifiedautdot = data;
-	  TraceManager.addDev("All done");
-	  } catch (LauncherException le) {
-	  TraceManager.addDev("Error: conversion failed");
-	  }*/
-    }
-	
+        /*AUTMappingGraph graph = new AUTMappingGraph();
+          TraceManager.addDev("Building graph");
+          graph.buildGraph(rgautproj);
+          TraceManager.addDev("Renaming transitions");
+          graph.renameTransitions();
+          TraceManager.addDev("Merging transitions 23/4=" + (23/4) + "23%4="  + (23%4));
+          graph.mergeWriteTransitions();
+          graph.mergeReadTransitions();
+          graph.removeInternalTransitions();
+          TraceManager.addDev("Printing graph:\n" + graph.toAUTStringFormat());
+          TraceManager.addDev("Splitting transitions");
+          graph.splitTransitions();
+          modifiedaut = graph.toAUTStringFormat();
+          TraceManager.addDev("Printing graph:\n" + modifiedaut);
+          TraceManager.addDev("Translation in DOT format");
+
+          // AUT  2 dot
+          String fileName = "graph";
+          try {
+          RshClient rshc = new RshClient(getHostAldebaran());
+          int id = rshc.getId();
+          fileName = FileUtils.addBeforeFileExtension(fileName, "_" + id);
+          String data = rgautproj;
+          rshc.sendFileData(fileName + ".aut", data);
+          String cmd1 = getPathBcgio() + " -aldebaran " + fileName + ".aut" + " -graphviz " + fileName + ".dot";
+          data = processCmd(rshc, cmd1);
+          data = rshc.getFileData(fileName + ".dot");
+          modifiedautdot = data;
+          TraceManager.addDev("All done");
+          } catch (LauncherException le) {
+          TraceManager.addDev("Error: conversion failed");
+          }*/
+    }
+
     protected String processCmd(RshClient rshc, String cmd) throws LauncherException {
         rshc.setCmd(cmd);
         String s = null;
@@ -894,653 +897,653 @@ public class GTURTLEModeling {
     }
 
     public void showSIM(int type) {
-	if (sim != null) {
-	    JFrameSimulationTrace jfst = new JFrameSimulationTrace("Last simulation trace", sim, type);
-	    jfst.setIconImage(IconManager.img8);
-	    jfst.setSize(900, 600);
-	    GraphicLib.centerOnParent(jfst);
-	    jfst.setVisible(true);
-	}
+        if (sim != null) {
+            JFrameSimulationTrace jfst = new JFrameSimulationTrace("Last simulation trace", sim, type);
+            jfst.setIconImage(IconManager.img8);
+            jfst.setSize(900, 600);
+            GraphicLib.centerOnParent(jfst);
+            jfst.setVisible(true);
+        }
     }
 
     public String showDTA() {
-	if (dta != null) {
-	    return runDOTTY(dtadot);
-	}
-	return null;
+        if (dta != null) {
+            return runDOTTY(dtadot);
+        }
+        return null;
     }
 
     public String showRG() {
-	if (rg != null) {
-	    return runDOTTY(rgdot);
-	}
-	return null;
+        if (rg != null) {
+            return runDOTTY(rgdot);
+        }
+        return null;
     }
 
     public String showTLSA() {
-	if (rg != null) {
-	    return runDOTTY(tlsadot);
-	}
-	return null;
+        if (rg != null) {
+            return runDOTTY(tlsadot);
+        }
+        return null;
     }
 
     public String showRGAut() {
-	if (rgaut != null) {
-	    return runDOTTY(rgautdot);
-	}
-	return null;
+        if (rgaut != null) {
+            return runDOTTY(rgautdot);
+        }
+        return null;
     }
-	
+
     public String showRGDiplodocus() {
-	TraceManager.addDev("Show diplodocus graph located in " + ConfigurationTTool.GGraphPath + "/tree.dot");
-	RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, null, null, ConfigurationTTool.DOTTYPath + " " + ConfigurationTTool.GGraphPath + "/tree.dot");
-	ret.start();
-	return null;
+        TraceManager.addDev("Show diplodocus graph located in " + ConfigurationTTool.GGraphPath + "/tree.dot");
+        RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, null, null, ConfigurationTTool.DOTTYPath + " " + ConfigurationTTool.GGraphPath + "/tree.dot");
+        ret.start();
+        return null;
     }
 
     public String showRGAutProj() {
-	if (rgaut != null) {
-	    return runDOTTY(rgautprojdot);
-	}
-	return null;
+        if (rgaut != null) {
+            return runDOTTY(rgautprojdot);
+        }
+        return null;
     }
 
     public static String showGGraph(String ggraph) {
-	if (ggraph != null) {
-	    return runDOTTY(ggraph);
-	}
-	return null;
+        if (ggraph != null) {
+            return runDOTTY(ggraph);
+        }
+        return null;
     }
 
     public static String runDOTTY(String data) {
-	String fileName = "graph" + graphId + ".dot";
-	graphId ++;
+        String fileName = "graph" + graphId + ".dot";
+        graphId ++;
 
-	RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, fileName, data, ConfigurationTTool.DOTTYPath + " " + fileName);
-	ret.start();
+        RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, fileName, data, ConfigurationTTool.DOTTYPath + " " + fileName);
+        ret.start();
 
-	return null;
+        return null;
     }
 
     public boolean useDynamicStructure(String data) {
-	int index1 = data.indexOf("behaviour");
-	if (index1 == -1) {
-	    return false;
-	}
+        int index1 = data.indexOf("behaviour");
+        if (index1 == -1) {
+            return false;
+        }
 
-	data = data.substring(index1, data.length());
+        data = data.substring(index1, data.length());
 
-	return (data.indexOf("Queue_nat") != -1);
+        return (data.indexOf("Queue_nat") != -1);
 
     }
 
 
 
     public void saveInFile(File file, String s) {
-	TraceManager.addDev("Saving in file " + file.getAbsolutePath() + " size of file=" + s.length());
-	//TraceManager.addDev("Length of s=" + s.length());
-
-	int index1 = 0, index2;
-	int step = 1048576;
-	int length = s.length();
-	//String sub;
-
-	try {
-	    FileOutputStream fos = new FileOutputStream(file);
-	    while(index1<length) {
-		index2 = Math.min(index1+step, length);
-		fos.write(s.substring(index1, index2).getBytes());
-		index1 += step;
-	    }
-	    fos.close();
-	} catch(Exception e) {
-	    JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE);
-	    TraceManager.addError("Specification could not be saved " + e.getMessage());
-	}
-
-	/*try {
-	  FileOutputStream fos = new FileOutputStream(file);
-	  fos.write(s.getBytes());
-	  fos.close();
-	  } catch(Exception e) {
-	  JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE);
-	  TraceManager.addDev("Specification could not be saved " + e.getMessage());
-	  }*/
+        TraceManager.addDev("Saving in file " + file.getAbsolutePath() + " size of file=" + s.length());
+        //TraceManager.addDev("Length of s=" + s.length());
+
+        int index1 = 0, index2;
+        int step = 1048576;
+        int length = s.length();
+        //String sub;
+
+        try {
+            FileOutputStream fos = new FileOutputStream(file);
+            while(index1<length) {
+                index2 = Math.min(index1+step, length);
+                fos.write(s.substring(index1, index2).getBytes());
+                index1 += step;
+            }
+            fos.close();
+        } catch(Exception e) {
+            JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE);
+            TraceManager.addError("Specification could not be saved " + e.getMessage());
+        }
+
+        /*try {
+          FileOutputStream fos = new FileOutputStream(file);
+          fos.write(s.getBytes());
+          fos.close();
+          } catch(Exception e) {
+          JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE);
+          TraceManager.addDev("Specification could not be saved " + e.getMessage());
+          }*/
     }
 
     public String getLastRTLOTOSSpecification() {
-	return 	rtlotos;
+        return  rtlotos;
     }
 
     public String getLastTextualDTA() {
-	return dta;
+        return dta;
     }
 
     public String getLastGraphicalDTA() {
-	return dtadot;
+        return dtadot;
     }
 
     public String getLastTextualRG() {
-	return rg;
+        return rg;
     }
 
     public String getLastGraphicalRG() {
-	return rgdot;
+        return rgdot;
     }
 
     public String getLastTextualTLSA() {
-	return tlsa;
+        return tlsa;
     }
 
     public String getLastGraphicalTLSA() {
-	return tlsadot;
+        return tlsadot;
     }
 
     public String getLastTextualRGAUT() {
-	return rgaut;
+        return rgaut;
     }
 
     public String getLastGraphicalRGAUT() {
-	return rgautdot;
+        return rgautdot;
     }
 
     public String getLastTextualRGAUTProj() {
-	return rgautproj;
+        return rgautproj;
     }
 
     public String getLastGraphicalRGAUTProj() {
-	return rgautprojdot;
+        return rgautprojdot;
     }
-	
+
     public String getLastProVerifSpecification() {
-	if (proverif == null) {
-	    return "";
-	}
-		
-	return proverif.getStringSpec();
+        if (proverif == null) {
+            return "";
+        }
+
+        return proverif.getStringSpec();
     }
 
     public int getNbRTLOTOS() {
-	return nbRTLOTOS;
+        return nbRTLOTOS;
     }
 
     public String getLastTextualDesign() {
-	if (tm == null) {
-	    return "";
-	} else {
-	    return tm.printToStringBuffer().toString();
-	}
+        if (tm == null) {
+            return "";
+        } else {
+            return tm.printToStringBuffer().toString();
+        }
     }
 
     public int getNbSuggestedDesign() {
-	return nbSuggestedDesign;
+        return nbSuggestedDesign;
     }
 
     // formal validation
     public void reinitSIM() {
-	sim = null;
-	mgui.setMode(MainGUI.SIM_KO);
+        sim = null;
+        mgui.setMode(MainGUI.SIM_KO);
     }
 
     public void reinitDTA() {
-	dta = null;
-	dtadot = null;
-	mgui.setMode(MainGUI.DTADOT_KO);
+        dta = null;
+        dtadot = null;
+        mgui.setMode(MainGUI.DTADOT_KO);
     }
 
     public void reinitRG() {
-	rg = null;
-	rgdot = null;
-	mgui.setMode(MainGUI.RGDOT_KO);
+        rg = null;
+        rgdot = null;
+        mgui.setMode(MainGUI.RGDOT_KO);
     }
 
     public void reinitRGAUT() {
-	rgaut = null;
-	rgautdot = null;
-	mgui.setMode(MainGUI.RGAUTDOT_KO);
-	mgui.setMode(MainGUI.RGAUT_KO);
+        rgaut = null;
+        rgautdot = null;
+        mgui.setMode(MainGUI.RGAUTDOT_KO);
+        mgui.setMode(MainGUI.RGAUT_KO);
     }
 
     public void reinitRGAUTPROJDOT() {
-	rgautprojdot = null;
-	mgui.setMode(MainGUI.RGAUTPROJDOT_KO);
+        rgautprojdot = null;
+        mgui.setMode(MainGUI.RGAUTPROJDOT_KO);
     }
 
     public void setSIM(String data) {
-	sim = data;
-	mgui.setMode(MainGUI.SIM_OK);
+        sim = data;
+        mgui.setMode(MainGUI.SIM_OK);
     }
 
     public void setDTA(String data) {
-	dta = data;
+        dta = data;
     }
 
     public void setDTADOT(String data) {
-	dtadot = data;
-	mgui.setMode(MainGUI.DTADOT_OK);
+        dtadot = data;
+        mgui.setMode(MainGUI.DTADOT_OK);
     }
 
     public void setRG(String data) {
-	rg = data;
-	mgui.setMode(MainGUI.RGDOT_OK);
+        rg = data;
+        mgui.setMode(MainGUI.RGDOT_OK);
     }
 
     public void setTLSA(String data) {
-	tlsa = data;
-	//mgui.setMode(MainGUI.TLSADOT_OK);
+        tlsa = data;
+        //mgui.setMode(MainGUI.TLSADOT_OK);
     }
 
     public void setTLSADOT(String data) {
-	tlsadot = data;
-	mgui.setMode(MainGUI.TLSADOT_OK);
+        tlsadot = data;
+        mgui.setMode(MainGUI.TLSADOT_OK);
     }
 
     public void setRGAut(String data) {
-	rgaut = data;
-	mgui.setMode(MainGUI.RGAUT_OK);
+        rgaut = data;
+        mgui.setMode(MainGUI.RGAUT_OK);
     }
 
     public String getLastRGAUT() {
-	return rgaut;
+        return rgaut;
     }
 
     public void setRGDOT(String data) {
-	rgdot = data;
-	mgui.setMode(MainGUI.RGDOT_OK);
+        rgdot = data;
+        mgui.setMode(MainGUI.RGDOT_OK);
     }
 
     public void setRGAutDOT(String data) {
-	rgautdot = data;
-	mgui.setMode(MainGUI.RGAUTDOT_OK);
+        rgautdot = data;
+        mgui.setMode(MainGUI.RGAUTDOT_OK);
     }
 
     public void setRGAUTPROJ(String data) {
-	rgautproj = data;
+        rgautproj = data;
     }
 
     public void setRGAUTPROJDOT(String data) {
-	rgautprojdot = data;
-	mgui.setMode(MainGUI.RGAUTPROJDOT_OK);
+        rgautprojdot = data;
+        mgui.setMode(MainGUI.RGAUTPROJDOT_OK);
     }
 
     // Configuration
 
     public String getPathRTL() {
-	return ConfigurationTTool.RTLPath;
+        return ConfigurationTTool.RTLPath;
     }
 
     public String getPathCaesar() {
-	return ConfigurationTTool.CaesarPath;
+        return ConfigurationTTool.CaesarPath;
     }
 
     public String getPathCaesarOpen() {
-	return ConfigurationTTool.CaesarOpenPath;
+        return ConfigurationTTool.CaesarOpenPath;
     }
 
     public String getPathDTA2DOT() {
-	return ConfigurationTTool.DTA2DOTPath;
+        return ConfigurationTTool.DTA2DOTPath;
     }
 
     public String getPathRGSTRAP() {
-	return ConfigurationTTool.RGSTRAPPath;
+        return ConfigurationTTool.RGSTRAPPath;
     }
 
     public String getPathRG2TLSA() {
-	return ConfigurationTTool.RG2TLSAPath;
+        return ConfigurationTTool.RG2TLSAPath;
     }
 
     public String getHost() {
-	return ConfigurationTTool.RTLHost;
+        return ConfigurationTTool.RTLHost;
     }
 
     public static String getCaesarHost() {
-	return ConfigurationTTool.AldebaranHost;
+        return ConfigurationTTool.AldebaranHost;
     }
 
     public static String getHostAldebaran() {
-	return ConfigurationTTool.AldebaranHost;
+        return ConfigurationTTool.AldebaranHost;
     }
 
     public static String getPathAldebaran() {
-	return ConfigurationTTool.AldebaranPath;
+        return ConfigurationTTool.AldebaranPath;
     }
 
     public static String getPathBcgio() {
-	return ConfigurationTTool.BcgioPath;
+        return ConfigurationTTool.BcgioPath;
     }
-	
+
     public static String getPathBisimulator() {
-	return ConfigurationTTool.BisimulatorPath;
+        return ConfigurationTTool.BisimulatorPath;
     }
 
     public String getPathBcgmerge() {
-	return ConfigurationTTool.BcgmergePath;
+        return ConfigurationTTool.BcgmergePath;
     }
 
     public String getPathBcgmin() {
-	return ConfigurationTTool.BcgminPath;
+        return ConfigurationTTool.BcgminPath;
     }
-	
+
     public String getPathVerifyta() {
-	return ConfigurationTTool.UPPAALVerifierPath;
+        return ConfigurationTTool.UPPAALVerifierPath;
     }
-	
+
     public String getPathUPPAALVerifier() {
-	return ConfigurationTTool.UPPAALVerifierPath;
+        return ConfigurationTTool.UPPAALVerifierPath;
     }
-	
+
     public String getPathUPPAALFile() {
-	return ConfigurationTTool.UPPAALCodeDirectory;
+        return ConfigurationTTool.UPPAALCodeDirectory;
     }
-	
+
     public String getUPPAALVerifierHost() {
-	return ConfigurationTTool.UPPAALVerifierHost;
+        return ConfigurationTTool.UPPAALVerifierHost;
     }
-	
-	
+
+
 
     public TURTLEModeling getTURTLEModeling() {
-	return tm;
+        return tm;
     }
-	
+
     public int getTURTLEModelingState() {
-	return tmState;
+        return tmState;
     }
 
     public TMLModeling getTMLModeling() {
-	return tmlm;
+        return tmlm;
     }
-	
+
     public TMLMapping getArtificialTMLMapping() {
-	return artificialtmap;
+        return artificialtmap;
     }
-	
+
     public TMLMapping getTMLMapping() {
-	return tmap;
+        return tmap;
     }
-	
+
     public UPPAALSpec getLastUPPAALSpecification() {
-	return uppaal;
+        return uppaal;
     }
 
     // TREE MANAGEMENT
 
     public String toString() {
-	return mgui.getTitle();
+        return mgui.getTitle();
     }
 
     public int getChildCount() {
-	return panels.size() + 3;
+        return panels.size() + 3;
     }
 
     public Object getChild(int index) {
-	if (index < panels.size()) {
-	    return panels.elementAt(index);
-	} else if (index == panels.size()) {
-	    return mcvdt;
-	} else if (index == (panels.size() + 1)) {
-	    return idt;
-	} else {
-	    return st;
-	}
+        if (index < panels.size()) {
+            return panels.elementAt(index);
+        } else if (index == panels.size()) {
+            return mcvdt;
+        } else if (index == (panels.size() + 1)) {
+            return idt;
+        } else {
+            return st;
+        }
 
     }
 
     public int getIndexOfChild(Object child) {
-	int index = panels.indexOf(child);
+        int index = panels.indexOf(child);
 
-	if (index > -1) {
-	    return index;
-	}
+        if (index > -1) {
+            return index;
+        }
 
-	if (child == mcvdt) {
-	    return panels.size();
-	}
-		
-	if (child == idt) {
-	    return panels.size() + 1;
-	}
-		
-	return panels.size()+2;
+        if (child == mcvdt) {
+            return panels.size();
+        }
+
+        if (child == idt) {
+            return panels.size() + 1;
+        }
+
+        return panels.size()+2;
     }
 
     // Projection management
 
     public MasterGateManager getNewMasterGateManager() {
-	return new MasterGateManager(tm);
+        return new MasterGateManager(tm);
     }
 
     // Assume the inputData is in AUT format: generated by RTL or CADP
     public String performProjection(String inputData, Vector gates) {
-	StringBuffer result = new StringBuffer("");
-	StringReader sr = new StringReader(inputData);
-	BufferedReader br = new BufferedReader(sr);
-	String s;
-	String actionName, actionName1;
-	int index, index1, index2;
-	MasterGateManager mgm = new MasterGateManager(tm, 1);
-	Gate g;
-	GroupOfGates gog;
-	Hashtable <String, GroupOfGates> hashtable = new Hashtable<String, GroupOfGates>();
-
-	int cpt = 0;
-
-	//TraceManager.addDev("input data=" + inputData);
-
-	// Fill Hashtable
-	TClassAndGateDS tag;
-	int j;
-	for(int i=0; i<gates.size(); i++) {
-	    tag = (TClassAndGateDS)(gates.get(i));
-	    //TraceManager.addDev("TClass:" + tag.getTClassName() + " Gate:" + tag.getGateName());
-	    //actionName = tag.getGateName();
-	    //g = mgm.getGate(tag.getTClassName(), actionName);
-	    //TraceManager.addDev("actionName = " + actionName + " gateName = " + g.getName()); 
-	    //if (g != null) {
-	    //gog = mgm.getGroupOfGatesByGate(g);
-	    gog = mgm.groupOf(tag.getTClassName(), tag.getGateName());
-	    if (gog != null) {
-		//TraceManager.addDev("Found a gog: >" + gog.getMasterGateName() + "<");
-		hashtable.put(gog.getMasterGateName().getName(), gog);
-		/*for(j=0;j<gog.size();j++) {
-		  g = gog.getGateAt(j);
-		  TraceManager.addDev("Putting: " + g.getName());
-		  hashtable.put(g.getName(), g);
-		  }*/
-	    }
-	    //}
-	}
-
-	try {
-	    while((s = br.readLine()) != null) {
-		/*if (cpt % 10000 == 0) {
-		  TraceManager.addDev("cpt=" + cpt);
-		  }*/
-		cpt ++;
-
-		if (s.startsWith("des")) {
-		    result.append(s + "\n");
-		} else if (s.startsWith("(")) {
-		    index = s.indexOf("\"t\"");
-		    if (index > 0) {
-			// temporal action
-			// replace t with i
-			s = s.replaceAll("\"t\"", "i");
-			result.append(s + "\n");
-		    } else {
-			//exit action?
-			index = s.indexOf("\"exit\"");
-			if (index > 0) {
-			    // exit action
-			    // replace t with i
-			    s = s.replaceAll("\"exit\"", "i");
-			    result.append(s + "\n");
-			} else {
-			    // regular action
-			    // find the name of this action
-			    index1 = s.indexOf("i(");
-			    index2 = s.indexOf(")");
-			    actionName = s.substring(index1 + 2, index2);
-			    index = actionName.indexOf("<");
-			    if (index < 0) {
-				actionName1 = actionName;
-			    } else {
-				actionName1 = actionName.substring(0, index);
-			    }
-			    TraceManager.addDev("Action = >" + actionName1 + "<");
-
-			    gog = hashtable.get(actionName1);
-			    if (gog == null) {
-				TraceManager.addDev("Not in hash");
-				result.append(makeIAction(s) + "\n");
-			    } else {
-				TraceManager.addDev("In hash");
-				result.append(makeAction(s, actionName) + "\n");
-			    }
-
-			    // action to ignored or to project ?
-			    /*g = mgm.getGate(actionName1);
-			      if (g == null) {
-			      //TraceManager.addDev("null1");
-			      result.append(makeIAction(s) + "\n");
-			      } else {
-			      gog = mgm.getGroupOfGatesByGate(g);
-			      if (gog == null) {
-			      //TraceManager.addDev("null2");
-			      result.append(makeIAction(s) + "\n");
-			      } else {
-			      if (!belongTo(gog, gates)) {
-			      // Check if directly a master Gate!
-			      // A completer ...
-			      //TraceManager.addDev("null3");
-			      result.append(makeIAction(s) + "\n");
-			      } else {
-			      //TraceManager.addDev("action added: " + actionName);
-			      result.append(makeAction(s, actionName) + "\n");
-			      }
-			      }
-			      }*/
-			}
-
-		    }
-		}
-	    }
-	} catch (Exception e) {
-	    TraceManager.addError("Exception during projection" + e.getMessage());
-	    return null;
-	}
-	return new String(result);
+        StringBuffer result = new StringBuffer("");
+        StringReader sr = new StringReader(inputData);
+        BufferedReader br = new BufferedReader(sr);
+        String s;
+        String actionName, actionName1;
+        int index, index1, index2;
+        MasterGateManager mgm = new MasterGateManager(tm, 1);
+        Gate g;
+        GroupOfGates gog;
+        Hashtable <String, GroupOfGates> hashtable = new Hashtable<String, GroupOfGates>();
+
+        int cpt = 0;
+
+        //TraceManager.addDev("input data=" + inputData);
+
+        // Fill Hashtable
+        TClassAndGateDS tag;
+        int j;
+        for(int i=0; i<gates.size(); i++) {
+            tag = (TClassAndGateDS)(gates.get(i));
+            //TraceManager.addDev("TClass:" + tag.getTClassName() + " Gate:" + tag.getGateName());
+            //actionName = tag.getGateName();
+            //g = mgm.getGate(tag.getTClassName(), actionName);
+            //TraceManager.addDev("actionName = " + actionName + " gateName = " + g.getName());
+            //if (g != null) {
+            //gog = mgm.getGroupOfGatesByGate(g);
+            gog = mgm.groupOf(tag.getTClassName(), tag.getGateName());
+            if (gog != null) {
+                //TraceManager.addDev("Found a gog: >" + gog.getMasterGateName() + "<");
+                hashtable.put(gog.getMasterGateName().getName(), gog);
+                /*for(j=0;j<gog.size();j++) {
+                  g = gog.getGateAt(j);
+                  TraceManager.addDev("Putting: " + g.getName());
+                  hashtable.put(g.getName(), g);
+                  }*/
+            }
+            //}
+        }
+
+        try {
+            while((s = br.readLine()) != null) {
+                /*if (cpt % 10000 == 0) {
+                  TraceManager.addDev("cpt=" + cpt);
+                  }*/
+                cpt ++;
+
+                if (s.startsWith("des")) {
+                    result.append(s + "\n");
+                } else if (s.startsWith("(")) {
+                    index = s.indexOf("\"t\"");
+                    if (index > 0) {
+                        // temporal action
+                        // replace t with i
+                        s = s.replaceAll("\"t\"", "i");
+                        result.append(s + "\n");
+                    } else {
+                        //exit action?
+                        index = s.indexOf("\"exit\"");
+                        if (index > 0) {
+                            // exit action
+                            // replace t with i
+                            s = s.replaceAll("\"exit\"", "i");
+                            result.append(s + "\n");
+                        } else {
+                            // regular action
+                            // find the name of this action
+                            index1 = s.indexOf("i(");
+                            index2 = s.indexOf(")");
+                            actionName = s.substring(index1 + 2, index2);
+                            index = actionName.indexOf("<");
+                            if (index < 0) {
+                                actionName1 = actionName;
+                            } else {
+                                actionName1 = actionName.substring(0, index);
+                            }
+                            TraceManager.addDev("Action = >" + actionName1 + "<");
+
+                            gog = hashtable.get(actionName1);
+                            if (gog == null) {
+                                TraceManager.addDev("Not in hash");
+                                result.append(makeIAction(s) + "\n");
+                            } else {
+                                TraceManager.addDev("In hash");
+                                result.append(makeAction(s, actionName) + "\n");
+                            }
+
+                            // action to ignored or to project ?
+                            /*g = mgm.getGate(actionName1);
+                              if (g == null) {
+                              //TraceManager.addDev("null1");
+                              result.append(makeIAction(s) + "\n");
+                              } else {
+                              gog = mgm.getGroupOfGatesByGate(g);
+                              if (gog == null) {
+                              //TraceManager.addDev("null2");
+                              result.append(makeIAction(s) + "\n");
+                              } else {
+                              if (!belongTo(gog, gates)) {
+                              // Check if directly a master Gate!
+                              // A completer ...
+                              //TraceManager.addDev("null3");
+                              result.append(makeIAction(s) + "\n");
+                              } else {
+                              //TraceManager.addDev("action added: " + actionName);
+                              result.append(makeAction(s, actionName) + "\n");
+                              }
+                              }
+                              }*/
+                        }
+
+                    }
+                }
+            }
+        } catch (Exception e) {
+            TraceManager.addError("Exception during projection" + e.getMessage());
+            return null;
+        }
+        return new String(result);
     }
 
     // Assume the inputData is in AUT format and has been generated by CADP
     // Note: might not work because of case sensitive problem...
     public String convertCADP_AUT_to_RTL_AUT(String inputData, int max) {
-	StringBuffer result = new StringBuffer("");
-	StringReader sr = new StringReader(inputData);
-	BufferedReader br = new BufferedReader(sr);
-	String s, s1;
-	String actionName;
-	int index1, index2, index3, index4;
-	Gate g;
-	String g0, g1, g2;
-	int cpt, transi=0;
-	MasterGateManager mgm = new MasterGateManager(tm, 1);
-	Hashtable ht = mgm.getGatesUpperCaseHashTable();
-	warnings = new Vector();
-
-	//TraceManager.addDev("input data=" + inputData);
-
-	int cpt1 = 0;
-
-	try {
-	    while((s = br.readLine()) != null) {
-		cpt1 ++;
-		//if (cpt1 % 100000 == 0) {
-		//TraceManager.addDev("=" + cpt1 + " / " + transi);
-		//}
-		if (s.charAt(0) == '(') {
-		    index1 = s.indexOf(",");
-		    if ((index1 > -1) && ((index1+1) < s.length())) {
-			g1 = s.substring(0, index1 + 1);
-			s = s.substring(index1+1, s.length());
-
-			//TraceManager.addDev("g1=" + g1 + " s=" + s);
-
-			index2 = s.indexOf(",");
-			if ((index2 > -1) && ((index2+1) < s.length())) {
-			    g2 = s.substring(index2, s.length());
-			    s = s.substring(0, index2);
-			    s = s.trim();
-
-			    //TraceManager.addDev("g2=" + g2 + " s=" + s);
-
-			    // Get action id
-			    // Most common case: no data
-			    index3 = s.indexOf('"');
-			    if (index3 == -1) { // no data
-				actionName = s;
-				g0 = "";
-			    } else {
-				// Extract action name
-				actionName = s.substring(index3+1, s.indexOf('!')).trim();
-
-				// Format data
-				g0 = "<";
-				cpt = 0;
-				while((index4 = s.indexOf('!')) > -1) {
-				    s = s.substring(index4+1, s.length());
-				    if (cpt > 0) {
-					g0 += ",";
-				    }
-				    cpt ++;
-				    index4 = s.indexOf('!');
-				    if (index4 > -1) {
-					g0 += s.substring(0, index4);
-				    } else {
-					g0 += s.substring(0, s.indexOf('"')).trim();
-				    }
-				}
-				g0 += ">";
-			    }
-
-			    // Working on action name!
-			    //g = mgm.getGateLowerCase(actionName);
-			    g = (Gate)(ht.get(actionName));
-
-			    if (g != null) {
-				//actionName1 = actionName;
-				actionName = g.getName();
-				//TraceManager.addDev("actionName = " + g.getName());
-				/*if (mgm.nbOfPossibleGatesLowerCase(actionName1) > 1) {
-				  CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Action " + actionName1 + " has several possible candidates ; " + actionName + " has been chosen");
-				  warnings.add(ce);
-				  }*/
-			    } else {
-				TraceManager.addDev("actionName is not in hashtable: ->" + actionName + "<- length=" + actionName.length());
-			    }
-
-			    // Store result
-			    result.append(g1 + "\"i(" + actionName + g0 + ")\"" + g2 + "\n");
-			}
-		    }
-		} else if (s.startsWith("des")) {
-		    index1 = s.indexOf(",");
-		    s1 = s.substring(index1+1, s.length());
-		    index1 = s1.indexOf(",");
-		    s1 = s1.substring(0, index1).trim();
-		    //TraceManager.addDev("nb of transitions=" + s);
-		    transi = Integer.decode(s1).intValue();
-		    if (transi > max) {
-			return null;
-		    }
-		    result.append(s + "\n");
-		}
-	    }
-	} catch (Exception e) {
-	    TraceManager.addError("Exception convert0" + e.getMessage());
-	    return null;
-	}
-	return new String(result);
+        StringBuffer result = new StringBuffer("");
+        StringReader sr = new StringReader(inputData);
+        BufferedReader br = new BufferedReader(sr);
+        String s, s1;
+        String actionName;
+        int index1, index2, index3, index4;
+        Gate g;
+        String g0, g1, g2;
+        int cpt, transi=0;
+        MasterGateManager mgm = new MasterGateManager(tm, 1);
+        Hashtable ht = mgm.getGatesUpperCaseHashTable();
+        warnings = new Vector();
+
+        //TraceManager.addDev("input data=" + inputData);
+
+        int cpt1 = 0;
+
+        try {
+            while((s = br.readLine()) != null) {
+                cpt1 ++;
+                //if (cpt1 % 100000 == 0) {
+                //TraceManager.addDev("=" + cpt1 + " / " + transi);
+                //}
+                if (s.charAt(0) == '(') {
+                    index1 = s.indexOf(",");
+                    if ((index1 > -1) && ((index1+1) < s.length())) {
+                        g1 = s.substring(0, index1 + 1);
+                        s = s.substring(index1+1, s.length());
+
+                        //TraceManager.addDev("g1=" + g1 + " s=" + s);
+
+                        index2 = s.indexOf(",");
+                        if ((index2 > -1) && ((index2+1) < s.length())) {
+                            g2 = s.substring(index2, s.length());
+                            s = s.substring(0, index2);
+                            s = s.trim();
+
+                            //TraceManager.addDev("g2=" + g2 + " s=" + s);
+
+                            // Get action id
+                            // Most common case: no data
+                            index3 = s.indexOf('"');
+                            if (index3 == -1) { // no data
+                                actionName = s;
+                                g0 = "";
+                            } else {
+                                // Extract action name
+                                actionName = s.substring(index3+1, s.indexOf('!')).trim();
+
+                                // Format data
+                                g0 = "<";
+                                cpt = 0;
+                                while((index4 = s.indexOf('!')) > -1) {
+                                    s = s.substring(index4+1, s.length());
+                                    if (cpt > 0) {
+                                        g0 += ",";
+                                    }
+                                    cpt ++;
+                                    index4 = s.indexOf('!');
+                                    if (index4 > -1) {
+                                        g0 += s.substring(0, index4);
+                                    } else {
+                                        g0 += s.substring(0, s.indexOf('"')).trim();
+                                    }
+                                }
+                                g0 += ">";
+                            }
+
+                            // Working on action name!
+                            //g = mgm.getGateLowerCase(actionName);
+                            g = (Gate)(ht.get(actionName));
+
+                            if (g != null) {
+                                //actionName1 = actionName;
+                                actionName = g.getName();
+                                //TraceManager.addDev("actionName = " + g.getName());
+                                /*if (mgm.nbOfPossibleGatesLowerCase(actionName1) > 1) {
+                                  CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Action " + actionName1 + " has several possible candidates ; " + actionName + " has been chosen");
+                                  warnings.add(ce);
+                                  }*/
+                            } else {
+                                TraceManager.addDev("actionName is not in hashtable: ->" + actionName + "<- length=" + actionName.length());
+                            }
+
+                            // Store result
+                            result.append(g1 + "\"i(" + actionName + g0 + ")\"" + g2 + "\n");
+                        }
+                    }
+                } else if (s.startsWith("des")) {
+                    index1 = s.indexOf(",");
+                    s1 = s.substring(index1+1, s.length());
+                    index1 = s1.indexOf(",");
+                    s1 = s1.substring(0, index1).trim();
+                    //TraceManager.addDev("nb of transitions=" + s);
+                    transi = Integer.decode(s1).intValue();
+                    if (transi > max) {
+                        return null;
+                    }
+                    result.append(s + "\n");
+                }
+            }
+        } catch (Exception e) {
+            TraceManager.addError("Exception convert0" + e.getMessage());
+            return null;
+        }
+        return new String(result);
     }
 
     /*public String convertCADP_AUT_to_RTL_AUT(String inputData, int max) {
@@ -1648,45 +1651,45 @@ public class GTURTLEModeling {
       }*/
 
     public boolean belongTo(GroupOfGates gog, Vector gates) {
-	int i, j;
-	TClassAndGateDS tcg;
-	String nameTClass, nameGate;
-	for(i=0; i<gog.size(); i++) {
-	    nameTClass = gog.getTClassAt(i).getName();
-	    nameGate = gog.getGateAt(i).getName();
-	    for(j=0; j<gates.size(); j++) {
-		tcg = (TClassAndGateDS)(gates.elementAt(j));
-		if ((tcg.getTClassName().compareTo(nameTClass) == 0) && (tcg.getGateName().compareTo(nameGate) == 0)) {
-		    //TraceManager.addDev("Projected gate");
-		    return true;
-		}
-	    }
-
-	}
-	return false;
+        int i, j;
+        TClassAndGateDS tcg;
+        String nameTClass, nameGate;
+        for(i=0; i<gog.size(); i++) {
+            nameTClass = gog.getTClassAt(i).getName();
+            nameGate = gog.getGateAt(i).getName();
+            for(j=0; j<gates.size(); j++) {
+                tcg = (TClassAndGateDS)(gates.elementAt(j));
+                if ((tcg.getTClassName().compareTo(nameTClass) == 0) && (tcg.getGateName().compareTo(nameGate) == 0)) {
+                    //TraceManager.addDev("Projected gate");
+                    return true;
+                }
+            }
+
+        }
+        return false;
 
     }
 
     public String makeIAction(String s) {
-	int index1, index2;
-	index1 = s.indexOf("i(");
-	index2 = s.indexOf(")");
-	return s.substring(0, index1-1) + "i" + s.substring(index2+2, s.length());
+        int index1, index2;
+        index1 = s.indexOf("i(");
+        index2 = s.indexOf(")");
+        return s.substring(0, index1-1) + "i" + s.substring(index2+2, s.length());
     }
 
     public String makeAction(String s, String actionName) {
-	int index1, index2;
-	index1 = s.indexOf("i(");
-	index2 = s.indexOf(")");
-	return s.substring(0, index1) + actionName + s.substring(index2+1, s.length());
+        int index1, index2;
+        index1 = s.indexOf("i(");
+        index2 = s.indexOf(")");
+        return s.substring(0, index1) + actionName + s.substring(index2+1, s.length());
     }
-	
+
     public void enableUndo(boolean b) {
-	undoRunning = !b;
+        undoRunning = !b;
     }
-	
+
     public boolean isUndoEnable() {
-	return !undoRunning;
+        return !undoRunning;
     }
 
     // UNDO MANAGEMENT
@@ -1694,5055 +1697,5066 @@ public class GTURTLEModeling {
     // This function is not be performed when executing an undo
     // if variable undoRunnin has been set to true
     public void saveOperation(Point p) {
-	if (undoRunning) {
-	    return;
-	}
-
-	//TraceManager.addDev("Save operation");
-	
-	String s = makeXMLFromTurtleModeling(-1);
-	
-	if ((pointerOperation > -1) && (pointerOperation < savedOperations.size() - 1)) {
-	    // some save operations must be erased
-	    for (int i = pointerOperation +1; i<savedOperations.size(); i++) {
-		savedOperations.removeElementAt(i);
-		savedPanels.removeElementAt(i);
-		i --;
-	    }
-	}
-	
-	// save actions on tab
-	int size = savedPanels.size();
-	if (size > 0) {
-	    Point p1  = (Point)(savedPanels.elementAt(size - 1)); // panels are saved under the form of a point -> x = analysis/design, y = panel
-	    if (p == null)
-		p = p1;
-	    /*if ((p1.x != p.x) || (p1.y != p.y)){
-		savedOperations.add(savedOperations.elementAt(size - 1));
-		savedPanels.add(p);
-		if (savedOperations.size() > nbMaxSavedOperations) {
-		    savedOperations.removeElementAt(0);
-		    savedPanels.removeElementAt(0);
-		}
-		}*/
-	}
-	
-	savedOperations.add(s);
-	savedPanels.add(p);
-	if (savedOperations.size() > nbMaxSavedOperations) {
-	    savedOperations.removeElementAt(0);
-	    savedPanels.removeElementAt(0);
-	}
-	pointerOperation = savedOperations.size() - 1;
-	//TraceManager.addDev("Setting pointer to " + pointerOperation);
-	
-	selectBackwardMode();
+        if (undoRunning) {
+            return;
+        }
+
+        //TraceManager.addDev("Save operation");
+
+        String s = makeXMLFromTurtleModeling(-1);
+
+        if ((pointerOperation > -1) && (pointerOperation < savedOperations.size() - 1)) {
+            // some save operations must be erased
+            for (int i = pointerOperation +1; i<savedOperations.size(); i++) {
+                savedOperations.removeElementAt(i);
+                savedPanels.removeElementAt(i);
+                i --;
+            }
+        }
+
+        // save actions on tab
+        int size = savedPanels.size();
+        if (size > 0) {
+            Point p1  = (Point)(savedPanels.elementAt(size - 1)); // panels are saved under the form of a point -> x = analysis/design, y = panel
+            if (p == null)
+                p = p1;
+            /*if ((p1.x != p.x) || (p1.y != p.y)){
+              savedOperations.add(savedOperations.elementAt(size - 1));
+              savedPanels.add(p);
+              if (savedOperations.size() > nbMaxSavedOperations) {
+              savedOperations.removeElementAt(0);
+              savedPanels.removeElementAt(0);
+              }
+              }*/
+        }
+
+        savedOperations.add(s);
+        savedPanels.add(p);
+        if (savedOperations.size() > nbMaxSavedOperations) {
+            savedOperations.removeElementAt(0);
+            savedPanels.removeElementAt(0);
+        }
+        pointerOperation = savedOperations.size() - 1;
+        //TraceManager.addDev("Setting pointer to " + pointerOperation);
+
+        selectBackwardMode();
     }
 
     public void backward() {
-	undoRunning = true;
-	TraceManager.addDev("Nb Of saved operations:" + savedOperations.size() + " pointer=" + pointerOperation);
-	if ((pointerOperation < 1)	|| (savedOperations.size() < 2)) {
-	    TraceManager.addDev("Undo not possible");
-	    undoRunning = false;
-	    return;
-	}
-	
-	removeAllComponents();
-	mgui.reinitMainTabbedPane();
-	try {
-	    pointerOperation --;
-	    TraceManager.addDev("Decrementing pointer =" + pointerOperation);
-	    loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation)));
-	    
-	} catch (Exception e) {
-	    TraceManager.addError("Exception in backward: " + e.getMessage());
-	}
-	
-	TraceManager.addDev("Selecting tab");
-	
-	Point p = (Point)(savedPanels.elementAt(pointerOperation));
-	if (p != null) {
-	    TraceManager.addDev("Selecting tab panel=" + p.getX() + " diagram=" + p.getY());
-	    TDiagramPanel tdp = mgui.selectTab(p);
-	    tdp.mode = tdp.NORMAL;
-	    tdp.setDraw(true);
-	    tdp.repaint();
-	}
-	
-	
-	TraceManager.addDev("Selecting backward mode");
-	selectBackwardMode();
-	undoRunning = false;
-    }
-    
+        undoRunning = true;
+        TraceManager.addDev("Nb Of saved operations:" + savedOperations.size() + " pointer=" + pointerOperation);
+        if ((pointerOperation < 1)      || (savedOperations.size() < 2)) {
+            TraceManager.addDev("Undo not possible");
+            undoRunning = false;
+            return;
+        }
+
+        removeAllComponents();
+        mgui.reinitMainTabbedPane();
+        try {
+            pointerOperation --;
+            TraceManager.addDev("Decrementing pointer =" + pointerOperation);
+            loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation)));
+
+        } catch (Exception e) {
+            TraceManager.addError("Exception in backward: " + e.getMessage());
+        }
+
+        TraceManager.addDev("Selecting tab");
+
+        Point p = (Point)(savedPanels.elementAt(pointerOperation));
+        if (p != null) {
+            TraceManager.addDev("Selecting tab panel=" + p.getX() + " diagram=" + p.getY());
+            TDiagramPanel tdp = mgui.selectTab(p);
+            tdp.mode = tdp.NORMAL;
+            tdp.setDraw(true);
+            tdp.repaint();
+        }
+
+
+        TraceManager.addDev("Selecting backward mode");
+        selectBackwardMode();
+        undoRunning = false;
+    }
+
     public void selectBackwardMode() {
-	if (pointerOperation <0) {
-	    mgui.setMode(MainGUI.NO_BACKWARD);
-	    mgui.setMode(MainGUI.NO_FORWARD);
-	} else {
-	    
-	    // forward
-	    if (pointerOperation < savedOperations.size() - 1) {
-		mgui.setMode(MainGUI.FORWARD);
-	    }  else {
-		mgui.setMode(MainGUI.NO_FORWARD);
-	    }
-	    
-	    // backward
-	    if (pointerOperation > 0) {
-		mgui.setMode(MainGUI.BACKWARD);
-	    } else {
-		mgui.setMode(MainGUI.NO_BACKWARD);
-	    }
-	}
-    }
-    
-
-	public void forward() {
-		if ((pointerOperation < 0) || (pointerOperation > 	savedOperations.size() - 2)) {
-			return;
-		}
-
-		undoRunning = true;
-		removeAllComponents();
-		mgui.reinitMainTabbedPane();
-
-		try {
-			pointerOperation ++;
-			loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation)));
-		} catch (Exception e) {
-			TraceManager.addError("Exception in forward: " + e.getMessage());
-		}
-
-		Point p = (Point)(savedPanels.elementAt(pointerOperation));
-		if (p != null) {
-			TDiagramPanel tdp = mgui.selectTab(p);
-			tdp.mode = TDiagramPanel.NORMAL;
-			tdp.setDraw(true);
-			tdp.repaint();
-		}
-
-		selectBackwardMode();
-		undoRunning = false;
-	}
-
-
-	// BUILDING A TURTLE MODELING AND CHECKING IT
-	public boolean checkTURTLEModeling(Vector tclasses, DesignPanel dp, boolean overideSyntaxChecking) {
-		// Builds a TURTLE modeling from diagrams
-		//warnings = new Vector();
-		//checkingErrors = null;
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		//tm = new TURTLEModeling();
-		//listE = new CorrespondanceTGElement();
-		mgui.reinitCountOfPanels();
-
-		DesignPanelTranslator dpt = new DesignPanelTranslator(dp);
-		tm = dpt.generateTURTLEModeling(tclasses, "");
-		tmState = 0;
-
-		listE = dpt.getCorrespondanceTGElement();
-		checkingErrors = dpt.getErrors();
-		warnings = dpt.getWarnings();
-		if ((checkingErrors != null) && (checkingErrors.size() >0)){
-			return false;
-		}
-
-		// modeling is built
-		// Now check it !
-		if (!overideSyntaxChecking) {
-			TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE);
-	
-			checkingErrors = tmc.syntaxAnalysisChecking();
-			warnings.addAll(tmc.getWarnings());
-	
-			if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-				analyzeErrors();
-				return false;
-			} else {
-				return true;
-			}
-		}
-		
-		return true;
-	}
-	
-	// BUILDING An AVATAR Design AND CHECKING IT
-	public boolean checkAvatarDesign(Vector blocks, AvatarDesignPanel adp, boolean _optimize) {
-		// Builds a TURTLE modeling from diagrams
-		//warnings = new Vector();
-		//checkingErrors = null;
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		//tm = new TURTLEModeling();
-		//listE = new CorrespondanceTGElement();
-		mgui.reinitCountOfPanels();
-		
-		//avatarspec = new AvatarSpecification("avatarspecification", adp);
-
-		AvatarDesignPanelTranslator adpt = new AvatarDesignPanelTranslator(adp);
-		avatarspec = adpt.generateAvatarSpecification(blocks);
-		avatarspec.setInformationSource(adp);
-		optimizeAvatar = _optimize;
-		//TraceManager.addDev("AvatarSpec:" + avatarspec.toString() + "\n\n");
-		tmState = 3;
-
-		listE = adpt.getCorrespondanceTGElement();
-		checkingErrors = adpt.getErrors();
-		warnings = adpt.getWarnings();
-		if ((checkingErrors != null) && (checkingErrors.size() >0)){
-			return false;
-		}
-		return true;
-
-		// Modeling is built
-		// Now check it !
-		/*if (!overideSyntaxChecking) {
-			TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE);
-	
-			checkingErrors = tmc.syntaxAnalysisChecking();
-			warnings.addAll(tmc.getWarnings());
-	
-			if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-				analyzeErrors();
-				return false;
-			} else {
-				return true;
-			}
-		}
-		
-		return true;*/
-	}
-	
-	// Return values
-	// -1: error
-	// -2: no mutex
-	// -3: invariant for mutex not found
-	// else: invariant found! -> invariant index
-	public int computeMutex() {
-		if (avatarspec == null) {
-			return -1;
-		}
-		
-		AvatarDesignPanel adp = null;
-		
-		try {
-			 adp = (AvatarDesignPanel)(avatarspec.getInformationSource());
-		} catch (Exception e) {
-			TraceManager.addDev("Exception gtm: " + e.getMessage());
-			return -1;
-		}
-		
-		// Building the list of all states in the mutex
-		LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex();
-		TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size());
-		
-		if (compInMutex.size() ==0) {
-			return -2;
-		}
-		
-		LinkedList<TGComponent> comps;
-		boolean found;
-		int nbOfFound;
-		int cpt = 0;
-		// Go thru invariants, and see whether one contains
-		for(Invariant inv: invariants) {
-			comps = inv.getComponents();
-			nbOfFound = 0;
-			for(TGComponent tgc_mutex: compInMutex) {
-				found = false;
-				for(TGComponent tgc_inv: comps) {
-					if (tgc_mutex == tgc_inv) {
-						found = true;
-						break;
-					}
-				}
-				if (!found) {
-					break;
-				}
-				nbOfFound ++;
-			}
-			if (nbOfFound == compInMutex.size()) {
-				TraceManager.addDev("Mutex found in inv:" + cpt);
-				for(TGComponent tgc: compInMutex) {
-					tgc.setMutexResult(TGComponent.MUTEX_OK);
-				}
-				return cpt;
-			}
-			cpt ++;
-		}
-		
-		
-		for(TGComponent tgc: compInMutex) {
-			tgc.setMutexResult(TGComponent.MUTEX_UNKNOWN);
-		}
-				
-		return -3;
-		
-		
-    }
-    
+        if (pointerOperation <0) {
+            mgui.setMode(MainGUI.NO_BACKWARD);
+            mgui.setMode(MainGUI.NO_FORWARD);
+        } else {
+
+            // forward
+            if (pointerOperation < savedOperations.size() - 1) {
+                mgui.setMode(MainGUI.FORWARD);
+            }  else {
+                mgui.setMode(MainGUI.NO_FORWARD);
+            }
+
+            // backward
+            if (pointerOperation > 0) {
+                mgui.setMode(MainGUI.BACKWARD);
+            } else {
+                mgui.setMode(MainGUI.NO_BACKWARD);
+            }
+        }
+    }
+
+
+    public void forward() {
+        if ((pointerOperation < 0) || (pointerOperation >       savedOperations.size() - 2)) {
+            return;
+        }
+
+        undoRunning = true;
+        removeAllComponents();
+        mgui.reinitMainTabbedPane();
+
+        try {
+            pointerOperation ++;
+            loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation)));
+        } catch (Exception e) {
+            TraceManager.addError("Exception in forward: " + e.getMessage());
+        }
+
+        Point p = (Point)(savedPanels.elementAt(pointerOperation));
+        if (p != null) {
+            TDiagramPanel tdp = mgui.selectTab(p);
+            tdp.mode = TDiagramPanel.NORMAL;
+            tdp.setDraw(true);
+            tdp.repaint();
+        }
+
+        selectBackwardMode();
+        undoRunning = false;
+    }
+
+
+    // BUILDING A TURTLE MODELING AND CHECKING IT
+    public boolean checkTURTLEModeling(Vector tclasses, DesignPanel dp, boolean overideSyntaxChecking) {
+        // Builds a TURTLE modeling from diagrams
+        //warnings = new Vector();
+        //checkingErrors = null;
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+        //tm = new TURTLEModeling();
+        //listE = new CorrespondanceTGElement();
+        mgui.reinitCountOfPanels();
+
+        DesignPanelTranslator dpt = new DesignPanelTranslator(dp);
+        tm = dpt.generateTURTLEModeling(tclasses, "");
+        tmState = 0;
+
+        listE = dpt.getCorrespondanceTGElement();
+        checkingErrors = dpt.getErrors();
+        warnings = dpt.getWarnings();
+        if ((checkingErrors != null) && (checkingErrors.size() >0)){
+            return false;
+        }
+
+        // modeling is built
+        // Now check it !
+        if (!overideSyntaxChecking) {
+            TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE);
+
+            checkingErrors = tmc.syntaxAnalysisChecking();
+            warnings.addAll(tmc.getWarnings());
+
+            if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+                analyzeErrors();
+                return false;
+            } else {
+                return true;
+            }
+        }
+
+        return true;
+    }
+
+    // BUILDING An AVATAR Design AND CHECKING IT
+    public boolean checkAvatarDesign(Vector blocks, AvatarDesignPanel adp, boolean _optimize) {
+        // Builds a TURTLE modeling from diagrams
+        //warnings = new Vector();
+        //checkingErrors = null;
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+        //tm = new TURTLEModeling();
+        //listE = new CorrespondanceTGElement();
+        mgui.reinitCountOfPanels();
+
+        //avatarspec = new AvatarSpecification("avatarspecification", adp);
+
+        AvatarDesignPanelTranslator adpt = new AvatarDesignPanelTranslator(adp);
+        avatarspec = adpt.generateAvatarSpecification(blocks);
+        avatarspec.setInformationSource(adp);
+        optimizeAvatar = _optimize;
+        //TraceManager.addDev("AvatarSpec:" + avatarspec.toString() + "\n\n");
+        tmState = 3;
+
+        listE = adpt.getCorrespondanceTGElement();
+        checkingErrors = adpt.getErrors();
+        warnings = adpt.getWarnings();
+        if ((checkingErrors != null) && (checkingErrors.size() >0)){
+            return false;
+        }
+        return true;
+
+        // Modeling is built
+        // Now check it !
+        /*if (!overideSyntaxChecking) {
+          TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE);
+
+          checkingErrors = tmc.syntaxAnalysisChecking();
+          warnings.addAll(tmc.getWarnings());
+
+          if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+          analyzeErrors();
+          return false;
+          } else {
+          return true;
+          }
+          }
+
+          return true;*/
+    }
+
+    // Return values
+    // -1: error
+    // -2: no mutex
+    // -3: invariant for mutex not found
+    // else: invariant found! -> invariant index
+    public int computeMutex() {
+        if (avatarspec == null) {
+            return -1;
+        }
+
+        AvatarDesignPanel adp = null;
+
+        try {
+            adp = (AvatarDesignPanel)(avatarspec.getInformationSource());
+        } catch (Exception e) {
+            TraceManager.addDev("Exception gtm: " + e.getMessage());
+            return -1;
+        }
+
+        // Building the list of all states in the mutex
+        LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex();
+        TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size());
+
+        if (compInMutex.size() ==0) {
+            return -2;
+        }
+
+        LinkedList<TGComponent> comps;
+        boolean found;
+        int nbOfFound;
+        int cpt = 0;
+        // Go thru invariants, and see whether one contains
+        for(Invariant inv: invariants) {
+            comps = inv.getComponents();
+            nbOfFound = 0;
+            for(TGComponent tgc_mutex: compInMutex) {
+                found = false;
+                for(TGComponent tgc_inv: comps) {
+                    if (tgc_mutex == tgc_inv) {
+                        found = true;
+                        break;
+                    }
+                }
+                if (!found) {
+                    break;
+                }
+                nbOfFound ++;
+            }
+            if (nbOfFound == compInMutex.size()) {
+                TraceManager.addDev("Mutex found in inv:" + cpt);
+                for(TGComponent tgc: compInMutex) {
+                    tgc.setMutexResult(TGComponent.MUTEX_OK);
+                }
+                return cpt;
+            }
+            cpt ++;
+        }
+
+
+        for(TGComponent tgc: compInMutex) {
+            tgc.setMutexResult(TGComponent.MUTEX_UNKNOWN);
+        }
+
+        return -3;
+
+
+    }
+
     public void clearGraphicalInfoOnInvariants() {
-    	if (avatarspec == null) {
-			return;
-		}
-		
-		AvatarDesignPanel adp = null;
-		
-		try {
-			 adp = (AvatarDesignPanel)(avatarspec.getInformationSource());
-		} catch (Exception e) {
-			TraceManager.addDev("Exception gtm: " + e.getMessage());
-			return;
-		}
-		
-		adp.removeAllMutualExclusionWithMasterMutex();
-		
-		
-		
-    }
-    
-    
+        if (avatarspec == null) {
+            return;
+        }
+
+        AvatarDesignPanel adp = null;
+
+        try {
+            adp = (AvatarDesignPanel)(avatarspec.getInformationSource());
+        } catch (Exception e) {
+            TraceManager.addDev("Exception gtm: " + e.getMessage());
+            return;
+        }
+
+        adp.removeAllMutualExclusionWithMasterMutex();
+
+
+
+    }
+
+
     // Returns the number of states found
     // Returns -1 in case of error
     public int computeMutexStatesWith(AvatarSMDState state) {
-    	Vector<TGComponent> list = new Vector<TGComponent>();
-    	
-    	if (state == null) {
-    		state.setMutexWith(TGComponent.MUTEX_UNKNOWN);
-    		return -1;
-    	}
-    	
-    	for(Invariant inv: invariants) {
-    		if (inv.containsComponent(state)) {
-    			// All other states are in mutual exclusion
-    			for(TGComponent tgc: inv.getComponents()) {
-    				if ((tgc instanceof AvatarSMDState) && (tgc != state)) {
-    					if (tgc.getTDiagramPanel() != state.getTDiagramPanel()) {
-    					if (!(list.contains(tgc))) {
-    						tgc.setMutualExclusionWithMasterMutex(state.getTDiagramPanel().getName() + "/" + state.getStateName());
-    						list.add(tgc);
-    						
-    					}
-    					}
-    				}
-    			}
-    		}
-    	}
-    	
-    	if (list.size() > 0) {
-    	  state.setMutexWith(TGComponent.MUTEX_OK);
-    	} else {
-    		state.setMutexWith(TGComponent.MUTEX_UNKNOWN);
-    	}
-    	
-    	return list.size();
-    	
-    }
-    
-    
+        Vector<TGComponent> list = new Vector<TGComponent>();
+
+        if (state == null) {
+            state.setMutexWith(TGComponent.MUTEX_UNKNOWN);
+            return -1;
+        }
+
+        for(Invariant inv: invariants) {
+            if (inv.containsComponent(state)) {
+                // All other states are in mutual exclusion
+                for(TGComponent tgc: inv.getComponents()) {
+                    if ((tgc instanceof AvatarSMDState) && (tgc != state)) {
+                        if (tgc.getTDiagramPanel() != state.getTDiagramPanel()) {
+                            if (!(list.contains(tgc))) {
+                                tgc.setMutualExclusionWithMasterMutex(state.getTDiagramPanel().getName() + "/" + state.getStateName());
+                                list.add(tgc);
+
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        if (list.size() > 0) {
+            state.setMutexWith(TGComponent.MUTEX_OK);
+        } else {
+            state.setMutexWith(TGComponent.MUTEX_UNKNOWN);
+        }
+
+        return list.size();
+
+    }
+
+
     public void computeAllMutualExclusions() {
-    	TURTLEPanel tp = mgui.getCurrentTURTLEPanel();
-    	
-    	if (tp == null) {
-    		return;
-    	}
-    	
-    	if (!(tp instanceof AvatarDesignPanel)) {
-    		return;
-    	}
-    	
-    	AvatarDesignPanel adp = (AvatarDesignPanel)(tp);
-    	adp.reinitMutualExclusionStates();
-    	
-    	// First step: build a list of all states being in invariants
-    	Vector<AvatarSMDState> v = new Vector<AvatarSMDState>();
-    	for(Invariant inv: invariants) {
-    		for(TGComponent tgc: inv.getComponents()) {
-    			if (tgc instanceof AvatarSMDState) {
-    				if (!(v.contains(tgc))) {
-    					v.add((AvatarSMDState)tgc);
-    				}
-    			}
-    		}
-    	}
-    	
-    	// Then, add to all states its list of mutually exclusive states
-    	
-    	for(AvatarSMDState s: v) {
-    		Vector<AvatarSMDState> v0 = new Vector<AvatarSMDState>();
-    		for(Invariant inv: invariants) {
-    			if (inv.containsComponent(s)) {
-					for(TGComponent tgc: inv.getComponents()) {
-						if ((tgc instanceof AvatarSMDState) && (tgc != s)) {
-							if (tgc.getTDiagramPanel() != s.getTDiagramPanel()) {
-								if (!(v0.contains(tgc))) {
-									v0.add((AvatarSMDState)tgc);
-								}
-							}
-						}
-					}
-    			}
-    		}
-    		TraceManager.addDev("State " + s.getStateName() + " has " + v0.size() + " mutually eclusive states");
-    		
-    		for(AvatarSMDState s0: v0) {
-    			s.addMutexState(s0);
-    		}
-    	}
-    	
-    	
-    }
-	
-	// From AVATAR to TURTLEModeling
-	public boolean translateAvatarSpecificationToTIF() {
-		AVATAR2TURTLE att = new AVATAR2TURTLE(avatarspec);
-		tm = att.generateTURTLEModeling();
-		
-		TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE);
-		
-		checkingErrors = tmc.syntaxAnalysisChecking();
-		warnings.addAll(tmc.getWarnings());
-		
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			analyzeErrors();
-			return false;
-		} else {
-			return true;
-		}
-		
-	}
-
-	public Vector getCheckingErrors() {
-		return checkingErrors;
-	}
-
-	public Vector getCheckingWarnings() {
-		return warnings;
-	}
-
-
-	// SAVING AND LOADING IN XML
-	public static String transformString(String s) {
-		if (s != null) {
-			s = Conversion.replaceAllChar(s, '&', "&amp;");
-			s = Conversion.replaceAllChar(s, '<', "&lt;");
-			s = Conversion.replaceAllChar(s, '>', "&gt;");
-			s = Conversion.replaceAllChar(s, '"', "&quot;");
-			s = Conversion.replaceAllChar(s, '\'', "&apos;");
-		}
-		return s;
-	}
-
-	public static String encodeString(String s) {
-		return s;
-	}
-
-	public static String decodeString(String s) throws MalformedModelingException {
-		if (s == null)
-			return s;
-		byte b[] = null;
-		try {
-			b = s.getBytes("ISO-8859-1");
-			return new String(b);
-		} catch (Exception e) {
-			throw new MalformedModelingException();
-		}
-	}
-	
-	public String mergeTURTLEGModeling(String modeling1, String modeling2) {
-		int index1 = modeling1.indexOf("</TURTLEGMODELING");
-		int index2 = modeling2.indexOf("<TURTLEGMODELING");
-		if ((index1 == -1) || (index2 == -1)) {
-			return null;
-		}
-		
-		String modeling = modeling1.substring(0, index1);
-		String tmp = modeling2.substring(index2, modeling2.length());
-		index2 = modeling2.indexOf('<');
-		if (index2 == -1) {
-			return null;
-		}
-		
-		tmp = tmp.substring(index2+1, tmp.length());
-		
-		return modeling + tmp;
-	}
-
-	public String makeXMLFromComponentOfADiagram(TDiagramPanel tdp, TGComponent tgc, int copyMaxId, int _decX, int _decY) {
-		StringBuffer sb = new StringBuffer();
-
-		//sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
-		sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS ");
-		sb.append("version=\"" + DefaultText.getVersion());
-		sb.append("\" copyMaxId=\"" + copyMaxId);
-		sb.append("\" decX=\"" + _decX);
-		sb.append("\" decY=\"" + _decY);
-		sb.append("\" >\n\n");
-
-		StringBuffer s;
-		String str;
-
-		s = tdp.saveComponentInXML(tgc);
-		
-		if (tgc instanceof AvatarBDBlock) {
-			AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
-			s.append(asmdp.saveInXML());
-			LinkedList<AvatarBDBlock> list = ((AvatarBDBlock)tgc).getFullBlockList();
-			for(AvatarBDBlock b:list) {
-				asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue());
-				s.append(asmdp.saveInXML());
-			}
-			
-		}
-
-		if (tgc instanceof TCDTClass) {
-			TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
-			s.append(tadp.saveInXML());
-		}
-
-		if (tgc instanceof TOSClass) {
-			TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
-			s.append(tosadp.saveInXML());
-		}
-
-		if (tgc instanceof TMLTaskOperator) {
-			TMLActivityDiagramPanel tmladp1 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
-			s.append(tmladp1.saveInXML());
-		}
-		
-		if (tgc instanceof TMLCPrimitiveComponent) {
-			TMLActivityDiagramPanel tmladp2 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
-			s.append(tmladp2.saveInXML());
-		}
-		
-		if (tgc instanceof TMLCCompositeComponent) {
-			TMLActivityDiagramPanel tmladp3;
-			ArrayList<TMLCPrimitiveComponent> list =  ((TMLCCompositeComponent)tgc).getAllPrimitiveComponents();
-			for (TMLCPrimitiveComponent comp: list) {
-				tmladp3 =  mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), comp.getValue());
-				s.append(tmladp3.saveInXML());
-			}
-		}
-
-		if (s == null) {
-			return null;
-		}
-		sb.append(s);
-		sb.append("\n\n");
-		sb.append("</TURTLEGSELECTEDCOMPONENTS>");
-
-		str = new String(sb);
-		str = encodeString(str);
-
-		return str;
-	}
-
-
-	public String makeXMLFromSelectedComponentOfADiagram(TDiagramPanel tdp, int copyMaxId, int _decX, int _decY) {
-		StringBuffer sb = new StringBuffer();
-		//TraceManager.addDev("Making copy");
-
-		//sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
-		sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS ");
-		sb.append("version=\"" + DefaultText.getVersion());
-		sb.append("\" copyMaxId=\"" + copyMaxId);
-		sb.append("\" decX=\"" + _decX);
-		sb.append("\" decY=\"" + _decY);
-		sb.append("\" >\n\n");
-
-		StringBuffer s;
-		String str;
-
-		s = tdp.saveSelectedInXML();
-
-		Vector v = tdp.selectedTclasses();
-
-		if ((v != null) && (v.size() > 0)) {
-			TCDTClass t;
-			TActivityDiagramPanel tadp;
-			for(int i=0; i<v.size(); i++) {
-				t = (TCDTClass)(v.elementAt(i));
-				tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue());
-				s.append(tadp.saveInXML());
-			}
-		}
-
-		//Added by Solange
-		//bug removed by Emil
-		if (tdp instanceof ProactiveCSDPanel)
-		{
-			v=((ProactiveCSDPanel)tdp).selectedProCSDComponent(null);
-			if ((v != null) && (v.size() > 0)) {
-				ProCSDComponent t;
-				ProactiveSMDPanel psmd;
-				for(int i=0; i<v.size(); i++) {
-					t = (ProCSDComponent)(v.elementAt(i));
-					psmd = mgui.getSMDPanel(mgui.getCurrentSelectedIndex(), t.getValue());
-					if (psmd!=null)
-						s.append(psmd.saveInXML());
-				}
-			}
-		}
-		//until here
-
-
-		v = tdp.selectedTURTLEOSClasses();
-		if ((v != null) && (v.size() > 0)) {
-			//TraceManager.addDev("Saving TURTLEOS activity diagram Panel...");
-			TOSClass t;
-			TURTLEOSActivityDiagramPanel tosadp;
-			for(int i=0; i<v.size(); i++) {
-				t = (TOSClass)(v.elementAt(i));
-				tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue());
-				s.append(tosadp.saveInXML());
-			}
-		}
-
-		v = tdp.selectedTMLTasks();
-		if ((v != null) && (v.size() > 0)) {
-			//TraceManager.addDev("Saving TML activity diagram Panel...");
-			TMLTaskOperator t;
-			TMLActivityDiagramPanel tmladp;
-			for(int i=0; i<v.size(); i++) {
-				t = (TMLTaskOperator)(v.elementAt(i));
-				tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue());
-				s.append(tmladp.saveInXML());
-			}
-		}
-		
-		v = tdp.selectedAvatarBDBlocks();
-		if ((v != null) && (v.size() > 0)) {
-			//TraceManager.addDev("Saving TML activity diagram Panel...");
-			AvatarBDBlock abdb;
-			AvatarSMDPanel asmdp;
-			for(int i=0; i<v.size(); i++) {
-				abdb = (AvatarBDBlock)(v.elementAt(i));
-				asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), abdb.getBlockName());
-				s.append(asmdp.saveInXML());
-				
-			}
-		}
-		
-		v = tdp.selectedCPrimitiveComponent();
-		if ((v != null) && (v.size() > 0)) {
-			//TraceManager.addDev("Saving TML activity diagram Panel...");
-			TMLCPrimitiveComponent ct;
-			TMLActivityDiagramPanel tmladp;
-			for(int i=0; i<v.size(); i++) {
-				ct = (TMLCPrimitiveComponent)(v.elementAt(i));
-				tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), ct.getValue());
-				s.append(tmladp.saveInXML());
-			}
-		}
-
-		if (s == null) {
-			return null;
-		}
-		sb.append(s);
-		sb.append("\n\n");
-		sb.append("</TURTLEGSELECTEDCOMPONENTS>");
-
-		str = new String(sb);
-		str = encodeString(str);
-
-		TraceManager.addDev("Copy done");
-		//TraceManager.addDev(str);
-
-		return str;
-	}
-	
-	public String makeOneDiagramXMLFromGraphicalModel(TURTLEPanel tp, int indexOfDiagram) {
-		StringBuffer sb = new StringBuffer();
-		//sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
-		sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n");
-
-		StringBuffer s;
-		String str;
-
-		
-		s = tp.saveInXML(indexOfDiagram);
-		
-		sb.append(s);
-		sb.append("\n\n");
-	
-
-		sb.append("</TURTLEGMODELING>");
-
-		str = new String(sb);
-		str = encodeString(str);
-
-		return str;
-	}
-
-	public String makeXMLFromTurtleModeling(int index) {
-		StringBuffer sb = new StringBuffer();
-		//sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
-		sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n");
-
-		StringBuffer s;
-		String str;
-
-		TURTLEPanel tp;
-		int i;
-		// search for diagram panels (Design)
-		for(i=0; i<panels.size(); i++) {
-			if ((index == -1) || (i == index)) {
-				tp = (TURTLEPanel)(panels.elementAt(i));
-				s = tp.saveInXML();
-				if (s == null) {
-					return null;
-				}
-				sb.append(s);
-				sb.append("\n\n");
-			}
-		}
-
-		sb.append("</TURTLEGMODELING>");
-
-		str = new String(sb);
-		str = encodeString(str);
-
-		return str;
-	}
-
-	public void removeAllComponents() {
-		TDiagramPanel tdp;
-		int i, j;
-		Vector panelss;
-		// search for diagram panels
-		for(i=0; i<panels.size(); i++) {
-			panelss = (Vector)(((TURTLEPanel)(panels.elementAt(i))).panels);
-			for(j=0; j<panelss.size(); j++) {
-				tdp = (TDiagramPanel)(panelss.elementAt(j));
-				tdp.removeAll();
-			}
-		}
-	}
-
-	public void copyModelingFromXML(TDiagramPanel tdp, String s, int X, int Y) throws MalformedModelingException {
-		//TraceManager.addDev("copyModelingFromXML: " + s);
-		//TraceManager.addDev("tdp: " + tdp);
-		
-		//TraceManager.addDev(s);
-		//TraceManager.addDev("copyModelingFromXML:");
-		//LinkedList ComponentsList=tdp.getComponentList();
-		int beginIndex = tdp.getComponentList().size();
-
-		//Added by Solange
-		int cuenta=1;
-
-		s = decodeString(s);
-		
-		//TraceManager.addDev("copy=" + s);
-		
-		ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes());
-		if ((dbf == null) || (db == null)) {
-			throw new MalformedModelingException();
-		}
-
-		int i;
-		//int copyMaxId;
-		int _decX = 0, _decY = 0;
-
-		try {
-			// building nodes from xml String
-			Document doc = db.parse(bais);
-			NodeList nl;
-
-			decId = tdp.getMaxId() + 1;
-			TGComponent.setGeneralId(TGComponent.getGeneralId() + decId + 2);
-			nl = doc.getElementsByTagName("TURTLEGSELECTEDCOMPONENTS");
-
-			if (nl == null) {
-				return;
-			}
-
-			Node adn;
-			Element elt;
-
-			for(i=0; i<nl.getLength(); i++) {
-				adn = nl.item(i);
-				if (adn.getNodeType() == Node.ELEMENT_NODE) {
-					elt = (Element) adn;
-					_decX = X - Integer.decode(elt.getAttribute("decX")).intValue();
-					_decY = Y - Integer.decode(elt.getAttribute("decY")).intValue();
-					//copyMaxId = Integer.decode(elt.getAttribute("copyMaxId")).intValue();
-				}
-			}
-
-			// Managing diagrams
-			if (tdp instanceof TClassDiagramPanel) {
-				TraceManager.addDev("TClassDiagramPanel copy");
-				
-				nl = doc.getElementsByTagName("TClassDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-
-				TClassDiagramPanel tcdp = (TClassDiagramPanel)tdp;
-
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tcdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						tcdp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Class diagram : " + tcdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tcdp);
-						makePostProcessing(tcdp);
-						//TraceManager.addDev("Class diagram : " + tcdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tcdp);
-						//TraceManager.addDev("Class diagram : " + tcdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tcdp);
-						//TraceManager.addDev("Class diagram : " + tcdp.getName() + " real points");
-						connectConnectorsToRealPoints(tcdp);
-						tcdp.structureChanged();
-						//TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading " + beginIndex);
-						makePostLoading(tcdp, beginIndex);
-						//TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading done");
-					}
-				}
-				docCopy = null;
-
-			} else if (tdp instanceof TActivityDiagramPanel) {
-				TraceManager.addDev("TActivityDiagramPanel copy");
-				nl = doc.getElementsByTagName("TActivityDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tadp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						tadp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(tadp);
-						tadp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(tadp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof InteractionOverviewDiagramPanel) {
-
-				nl = doc.getElementsByTagName("InteractionOverviewDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				InteractionOverviewDiagramPanel iodp = (InteractionOverviewDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (iodp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), iodp);
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), iodp);
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), iodp);
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " real points");
-						connectConnectorsToRealPoints(iodp);
-						iodp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
-						makePostLoading(iodp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof SequenceDiagramPanel) {
-				//TraceManager.addDev("Sequence diagram!");
-				nl = doc.getElementsByTagName("SequenceDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				SequenceDiagramPanel sdp = (SequenceDiagramPanel)tdp;
-				
-				//TraceManager.addDev("Sequence diagram!");
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (sdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//TraceManager.addDev("Sequence diagram: " + sdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), sdp);
-						//TraceManager.addDev("Sequence diagram: " + sdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), sdp);
-						//TraceManager.addDev("Sequence diagram: " + sdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), sdp);
-						//TraceManager.addDev("Sequence diagram: " + sdp.getName() + " real points");
-						connectConnectorsToRealPoints(sdp);
-						sdp.structureChanged();
-						//TraceManager.addDev("Sequence diagram: " + sdp.getName() + " post loading");
-						makePostLoading(sdp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof UseCaseDiagramPanel) {
-				nl = doc.getElementsByTagName("UseCaseDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				UseCaseDiagramPanel ucdp = (UseCaseDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (ucdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ucdp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ucdp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ucdp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points");
-						connectConnectorsToRealPoints(ucdp);
-						ucdp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
-						makePostLoading(ucdp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof TDeploymentDiagramPanel) {
-				nl = doc.getElementsByTagName("TDeploymentDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				TDeploymentDiagramPanel tddp = (TDeploymentDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tddp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tddp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tddp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tddp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points");
-						connectConnectorsToRealPoints(tddp);
-						tddp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
-						makePostLoading(tddp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof NCDiagramPanel) {
-				nl = doc.getElementsByTagName("NCDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				NCDiagramPanel ncdp = (NCDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (ncdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ncdp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ncdp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ncdp);
-						//TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points");
-						connectConnectorsToRealPoints(ncdp);
-						ncdp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
-						makePostLoading(ncdp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof RequirementDiagramPanel) {
-				nl = doc.getElementsByTagName("TRequirementDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				RequirementDiagramPanel rdp = (RequirementDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (rdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), rdp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), rdp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), rdp);
-						connectConnectorsToRealPoints(rdp);
-						rdp.structureChanged();
-						makePostLoading(rdp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof EBRDDPanel) {
-				nl = doc.getElementsByTagName("EBRDDPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				EBRDDPanel ebrddp = (EBRDDPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (ebrddp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ebrddp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ebrddp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ebrddp);
-						connectConnectorsToRealPoints(ebrddp);
-						ebrddp.structureChanged();
-						makePostLoading(ebrddp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof AttackTreeDiagramPanel) {
-				nl = doc.getElementsByTagName("AttackTreeDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				AttackTreeDiagramPanel atdp = (AttackTreeDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (atdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), atdp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), atdp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), atdp);
-						connectConnectorsToRealPoints(atdp);
-						atdp.structureChanged();
-						makePostLoading(atdp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof TMLTaskDiagramPanel) {
-				nl = doc.getElementsByTagName("TMLTaskDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-
-				TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
-
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tmltdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						tmltdp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(tmltdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(tmltdp);
-						tmltdp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(tmltdp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-			}else if (tdp instanceof DiplodocusMethodologyDiagramPanel) {
-				nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-
-				DiplodocusMethodologyDiagramPanel tmltdp = (DiplodocusMethodologyDiagramPanel)tdp;
-
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tmltdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						tmltdp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(tmltdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(tmltdp);
-						tmltdp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(tmltdp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-				
-				
-			}else if (tdp instanceof AvatarMethodologyDiagramPanel) {
-				nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-
-				AvatarMethodologyDiagramPanel amdp = (AvatarMethodologyDiagramPanel)tdp;
-
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (amdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						amdp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(amdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(amdp);
-						amdp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(amdp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-			}  else if (tdp instanceof TMLComponentTaskDiagramPanel) {
-				nl = doc.getElementsByTagName("TMLComponentTaskDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-
-				TMLComponentTaskDiagramPanel tmlctdp = (TMLComponentTaskDiagramPanel)tdp;
-				//tmlctdp.updateReferences();
-
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tmlctdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						tmlctdp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlctdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(tmlctdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlctdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlctdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(tmlctdp);
-						tmlctdp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(tmlctdp, beginIndex);
-						tmlctdp.hideConnectors();
-						tmlctdp.updatePorts();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-				tmlctdp.updatePorts();
-			} else if (tdp instanceof TMLActivityDiagramPanel) {
-				nl = doc.getElementsByTagName("TMLActivityDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				TMLActivityDiagramPanel tmladp = (TMLActivityDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tmladp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//tmladp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp);
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp);
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(tmladp);
-						tmladp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(tmladp, beginIndex);
-					}
-				}
-			}  else if (tdp instanceof TMLCPPanel) {
-				nl = doc.getElementsByTagName("CommunicationPatternDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-				TMLCPPanel tmlcpp = (TMLCPPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tmlcpp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//tmlcpp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlcpp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(tmlcpp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlcpp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlcpp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(tmlcpp);
-						tmlcpp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(tmlcpp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-			} else if (tdp instanceof TMLSDPanel) {
-				nl = doc.getElementsByTagName("TMLSDPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-				TMLSDPanel tmlsdp = (TMLSDPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tmlsdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//tmlcpp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlsdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(tmlsdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlsdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlsdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(tmlsdp);
-						tmlsdp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(tmlsdp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-			} else if (tdp instanceof TMLArchiDiagramPanel) {
-				nl = doc.getElementsByTagName("TMLArchiDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-				TMLArchiDiagramPanel tmadp = (TMLArchiDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tmadp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						tmadp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmadp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(tmadp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmadp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmadp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(tmadp);
-						tmadp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(tmadp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-			} else if (tdp instanceof TURTLEOSClassDiagramPanel) {
-				nl = doc.getElementsByTagName("TURTLEOSClassDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				TURTLEOSClassDiagramPanel toscdp = (TURTLEOSClassDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (toscdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//toscdp.loadExtraParameters(elt);
-						//TraceManager.addDev("Toto 2");
-						//TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), toscdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(toscdp);
-						//TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), toscdp);
-						//TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), toscdp);
-						//TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " real points");
-						connectConnectorsToRealPoints(toscdp);
-						toscdp.structureChanged();
-						//TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading " + beginIndex);
-						makePostLoading(toscdp, beginIndex);
-						//TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading done");
-					}
-				}
-			} else if (tdp instanceof TURTLEOSActivityDiagramPanel) {
-				nl = doc.getElementsByTagName("TURTLEOSActivityDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				TURTLEOSActivityDiagramPanel tosadp = (TURTLEOSActivityDiagramPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (tosadp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//tmladp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tosadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tosadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tosadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(tosadp);
-						tosadp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(tosadp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof ProactiveCSDPanel) {
-				//cuenta=beginIndex+1;
-				cuenta=mgui.tabs.size()-1;
-				nl = doc.getElementsByTagName("ProactiveCSDPanelCopy");
-				if (nl.getLength()==0) 
-				{
-					nl=doc.getElementsByTagName("ProactiveCSDPanel");
-				}
-				docCopy = doc;
-				if (nl == null)
-				{
-					return;
-				}
-				ProactiveCSDPanel pcsdp = (ProactiveCSDPanel)tdp;
-				for(i=0; i<nl.getLength(); i++)
-				{
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE)
-					{
-						elt = (Element) adn;
-						if (pcsdp == null)
-						{
-							throw new MalformedModelingException();
-						}
-
-
-//						int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//pcsdp.loadExtraParameters(elt);
-						//TraceManager.addDev("Toto 2");
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), pcsdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(pcsdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), pcsdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), pcsdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(pcsdp);
-						pcsdp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(pcsdp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-				// Added by Solange
-				nl = doc.getElementsByTagName("ProactiveSMDPanel");
-				if (nl == null)
-				{
-					return;
-				}
-				String name="";
-				ProactiveSMDPanel psmdp;
-				for(i=0; i<nl.getLength(); i++) //Erased cuenta++ by Solange at the end condition of the for
-				{
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE)
-					{
-						elt = (Element) adn;
-						name=elt.getAttribute("name");
-						//Added by Solange name at the beginning and cuenta
-						name=mgui.createProActiveSMD(cuenta,name);
-						psmdp=mgui.getSMDPanel(cuenta, name);
-						if (psmdp == null)
-						{
-							throw new MalformedModelingException();
-						}
-
-//						int xSel = Integer.decode(elt.getAttribute("minX")).intValue();
-//int ySel = Integer.decode(elt.getAttribute("maxX")).intValue(); // - mgui.getCurrentTDiagramPanel().currentX;
-//						int widthSel = Integer.decode(elt.getAttribute("minY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;;
-//						int heightSel = Integer.decode(elt.getAttribute("maxY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;;
-
-						decX = _decX;
-						decY = _decY;
-
-						//tmladp.loadExtraParameters(elt);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(psmdp);
-						psmdp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(psmdp, beginIndex);
-						//until here
-					}
-				}
-			} else if (tdp instanceof ProactiveSMDPanel) {
-				//Changed by Solange, before it was like the first line
-				//nl = doc.getElementsByTagName("ProactiveSMDPanelCopy");
-				nl = doc.getElementsByTagName("ProactiveSMDPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				ProactiveSMDPanel psmdp = (ProactiveSMDPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (psmdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//tmladp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(psmdp);
-						psmdp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(psmdp, beginIndex);
-					}
-				}
-				
-			// AVATAR
-			} else if (tdp instanceof AvatarBDPanel) {
-				nl = doc.getElementsByTagName("AVATARBlockDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-
-				AvatarBDPanel abdp = (AvatarBDPanel)tdp;
-
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (abdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						abdp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), abdp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(abdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), abdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), abdp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(abdp);
-						abdp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(abdp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-				
-				
-			} else if (tdp instanceof ADDDiagramPanel) {
-				nl = doc.getElementsByTagName("ADDDiagramPanelCopy");
-				docCopy = doc;
-
-				if (nl == null) {
-					return;
-				}
-
-				//TraceManager.addDev("Toto 1");
-
-
-				ADDDiagramPanel addp = (ADDDiagramPanel)tdp;
-
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (addp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						addp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Toto 2");
-
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), addp);
-						//TraceManager.addDev("Toto 3");
-						makePostProcessing(addp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), addp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), addp);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
-						connectConnectorsToRealPoints(addp);
-						addp.structureChanged();
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
-						makePostLoading(addp, beginIndex);
-						//TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
-					}
-				}
-				
-			} else if (tdp instanceof AvatarSMDPanel) {
-				nl = doc.getElementsByTagName("AVATARStateMachineDiagramPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				AvatarSMDPanel asmdp = (AvatarSMDPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (asmdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						//tmladp.loadExtraParameters(elt);
-
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp);
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp);
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(asmdp);
-						asmdp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(asmdp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof AvatarRDPanel) {
-				nl = doc.getElementsByTagName("AvatarRDPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				AvatarRDPanel ardp = (AvatarRDPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (ardp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ardp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ardp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ardp);
-						connectConnectorsToRealPoints(ardp);
-						ardp.structureChanged();
-						makePostLoading(ardp, beginIndex);
-					}
-				}
-				
-			} else if (tdp instanceof AvatarMADPanel) {
-				nl = doc.getElementsByTagName("AvatarMADPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				AvatarMADPanel amadp = (AvatarMADPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (amadp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amadp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amadp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amadp);
-						connectConnectorsToRealPoints(amadp);
-						amadp.structureChanged();
-						makePostLoading(amadp, beginIndex);
-					}
-				}
-				
-			} else if (tdp instanceof AvatarPDPanel) {
-				nl = doc.getElementsByTagName("AvatarPDPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				AvatarPDPanel apdp = (AvatarPDPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (apdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), apdp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), apdp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), apdp);
-						connectConnectorsToRealPoints(apdp);
-						apdp.structureChanged();
-						makePostLoading(apdp, beginIndex);
-					}
-				}
-			
-			} else if (tdp instanceof AvatarCDPanel) {
-				nl = doc.getElementsByTagName("AvatarCDPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				AvatarCDPanel acdp = (AvatarCDPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (acdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), acdp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), acdp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), acdp);
-						connectConnectorsToRealPoints(acdp);
-						acdp.structureChanged();
-						makePostLoading(acdp, beginIndex);
-					}
-				}
-			} else if (tdp instanceof AvatarADPanel) {
-				nl = doc.getElementsByTagName("AvatarADPanelCopy");
-
-				if (nl == null) {
-					return;
-				}
-
-				AvatarADPanel aadp = (AvatarADPanel)tdp;
-
-				for(i=0; i<nl.getLength(); i++) {
-					adn = nl.item(i);
-					if (adn.getNodeType() == Node.ELEMENT_NODE) {
-						elt = (Element) adn;
-
-						if (aadp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
-						//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
-						//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
-						//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
-
-						decX = _decX;
-						decY = _decY;
-
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), aadp);
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), aadp);
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), aadp);
-						connectConnectorsToRealPoints(aadp);
-						aadp.structureChanged();
-						makePostLoading(aadp, beginIndex);
-					}
-				}
-			}
-			
-		} catch (IOException e) {
-			TraceManager.addError("Loading 500: " + e.getMessage());
-			throw new MalformedModelingException();
-		} catch (SAXException saxe) {
-			TraceManager.addError("Loading 501 " + saxe.getMessage());
-			throw new MalformedModelingException();
-		}
-	}
-
-	// Returns null if s is not a saved TURTLE modeling of an older format
-	public String upgradeSaved(String s) {
-		int index1, index2, index3;
-		StringBuffer sb = new StringBuffer("");;
-		//String tmp;
-
-		index1 = s.indexOf("<TClassDiagramPanel");
-		index2 = s.indexOf("<InteractionOverviewDiagramPanel ");
-		index3 = s.indexOf("</TURTLEGMODELING>");
-
-		if ((index1 <0) ||(index3 < 0)){
-			return null;
-		}
-
-		sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n");
-
-		if (index2 > -1) {
-			sb.append("<Modeling type=\"Analysis\" nameTab=\"Analysis\" >\n");
-			sb.append(s.substring(index2, index3));
-			sb.append("</Modeling>\n\n");
-		}
-
-		if (index2 < 0) {
-			index2 = index3;
-		}
-		sb.append("<Modeling type=\"Design\" nameTab=\"Design\" >\n");
-		sb.append(s.substring(index1, index2));
-		sb.append("</Modeling>\n\n");
-
-		sb.append(s.substring(index3, s.length()));
-
-		//TraceManager.addDev("Got:" + sb);
-
-		return sb.toString();
-	}
-
-	public void loadModelingFromXML(String s) throws MalformedModelingException {
-		
-		if (s == null) {
-			return;
-		}
-
-		s = decodeString(s);
-
-		decX = 0;
-		decY = 0;
-		decId = 0;
-		TGComponent.setGeneralId(100000);
-
-		ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes());
-
-		if ((dbf == null) || (db == null)) {
-			throw new MalformedModelingException();
-		}
-
-		try {
-			// building nodes from xml String
-			Document doc = db.parse(bais);
-			NodeList panelNl;
-			//NodeList designPanelNl; 
-			//NodeList analysisNl;
-
-			int i;
-			//Element elt;
-			Node node;
-
-			// Managing design panels
-			panelNl = doc.getElementsByTagName("Modeling");
-
-			if (panelNl.getLength() == 0) {
-				// Modeling saved in old format?
-				s = upgradeSaved(s);
-				if (s != null) {
-					JOptionPane.showMessageDialog(mgui.frame, "The modeling has been converted to this new version of TTool", "Loading information", JOptionPane.INFORMATION_MESSAGE);
-				}
-				loadModelingFromXML(s);
-				return;
-
-			}
-			//designPanelNl = doc.getElementsByTagName("Design");
-			//analysisNl = doc.getElementsByTagName("Analysis");
-
-			pendingConnectors = new ArrayList<TGConnectorInfo>();
-			
-			//TraceManager.addDev("nb de design=" + designPanelNl.getLength() + " nb d'analyse=" + analysisNl.getLength());
-			boolean error = false;
-			for(i=0; i<panelNl.getLength(); i++) {
-				node = panelNl.item(i);
-				//TraceManager.addDev("Node = " + dnd);
-				
-				if (node.getNodeType() == Node.ELEMENT_NODE) {
-					// create design, and get an index for it
-					try {
-						loadModeling(node);
-					} catch (MalformedModelingException mme) {
-						Element elt = (Element) node;
-						String type = elt.getAttribute("type");
-						TraceManager.addDev("Error when loading diagram: " + type);
-						error = true;
-					}
-				}
-			}
-			if (error == true) {
-				throw new MalformedModelingException();
-			}
-
-		} catch (NumberFormatException nfe) {
-			TraceManager.addError("Loading 400 " + nfe.getMessage());
-			throw new MalformedModelingException();
-		} catch (IOException e) {
-			TraceManager.addError("Loading 600 " + e.getMessage());
-			throw new MalformedModelingException();
-		} catch (SAXException saxe) {
-			TraceManager.addError("Loading 601 " + saxe.getMessage());
-			throw new MalformedModelingException();
-		}
-		//TraceManager.addDev("making IDs");
-		makeLastLoad();
-		makeLovelyIds();
-		//TraceManager.addDev("IDs done");
-	}
-
-	public void loadModeling(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String type = elt.getAttribute("type");
-		// AVATAR
-		if (type.compareTo("ADD") == 0) {
-			loadAvatarDeployment(node);
-		} else if (type.compareTo("AVATAR Design") == 0) {
-			loadAvatarDesign(node);
-		} else if (type.compareTo("Avatar Requirement") == 0) {
-			loadAvatarRequirement(node);
-		} else if (type.compareTo("Avatar MAD") == 0) {
-			loadAvatarMADs(node);
-		} else if (type.compareTo("Avatar Analysis") == 0) {
-			loadAvatarAnalysis(node);
-			
-			
-		// TURTLE 
-		} else if (type.compareTo("Design") == 0) {
-			loadDesign(node);
-		} else if (type.compareTo("Analysis") == 0) {
-			loadAnalysis(node);
-		} else if (type.compareTo("Deployment") == 0) {
-			loadDeployment(node);
-		} else if (type.compareTo("NC diagram") == 0) {
-			loadNC(node);
-		} else if (type.compareTo("Requirement") == 0) {
-			loadRequirement(node);
-		} else if (type.compareTo("AttackTree") == 0) {
-			loadAttackTree(node);
-		} else if (type.compareTo("Diplodocus Methodology") == 0) {
-			loadDiplodocusMethodology(node);
-		} else if (type.compareTo("Avatar Methodology") == 0) {
-			loadAvatarMethodology(node);
-		} else if (type.compareTo("TML Design") == 0) {
-			loadTMLDesign(node);
-		} else if (type.compareTo("TML Component Design") == 0) {
-			loadTMLComponentDesign(node);
-		} else if (type.compareTo("TML CP") == 0) {
-			loadTMLCP(node);
-		} else if (type.compareTo("TML Architecture") == 0) {
-			loadTMLArchitecture(node);
-		} else if (type.compareTo("TURTLE-OS Design") == 0) {
-			loadTURTLEOSDesign(node);
-		} else if (type.compareTo("ProActive Design") == 0) {
-			loadProActiveDesign(node);
-		} else {
-			throw new MalformedModelingException();
-		}
-	}
-	
-	public void loadAvatarDesign(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createAvatarDesign(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("AVATARBlockDiagramPanel") == 0) {
-					// Class diagram
-					loadAvatarBD(elt, indexDesign);
-				} else { // Managing activity diagrams
-					if (elt.getTagName().compareTo("AVATARStateMachineDiagramPanel") == 0) {
-						// Managing activity diagrams
-						loadAvatarSMD(elt, indexDesign);
-					}
-				}
-			}
-		}
-	}
-	
-	public void loadAvatarDeployment(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexReq;
-		int cpt_req = 0;
-
-		TraceManager.addDev("Loading ADD 0");
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexReq = mgui.createADD(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Deployment nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("ADDDiagramPanel") == 0) {
-						TraceManager.addDev("Loading ADD 1");
-					loadADDDiagram(elt, indexReq, cpt_req);
-					cpt_req ++;
-				} 
-			}
-		}
-	}
-	
-	public void loadAvatarRequirement(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexReq;
-		int cpt_req = 0;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexReq = mgui.createAvatarRequirement(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Deployment nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("AvatarRDPanel") == 0) {
-					loadAvatarRD(elt, indexReq, cpt_req);
-					cpt_req ++;
-				} else if (elt.getTagName().compareTo("AvatarPDPanel") == 0) {
-					loadAvatarPD(elt, indexReq, cpt_req);
-					cpt_req ++;
-				}
-			}
-		}
-	}
-	
-	public void loadAvatarMADs(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexReq;
-		int cpt_req = 0;
-
-
-		nameTab = elt.getAttribute("nameTab");
-		
-		TraceManager.addDev("Creating MAD panel ");
-
-		indexReq = mgui.createAvatarMADs(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			TraceManager.addDev("MADs nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("AvatarMADPanel") == 0) {
-					loadAvatarMAD(elt, indexReq, cpt_req);
-					cpt_req ++;
-				} 
-			}
-		}
-	}
-
-	public void loadDesign(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createDesign(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("TClassDiagramPanel") == 0) {
-					// Class diagram
-					loadTClassDiagram(elt, indexDesign);
-				} else { // Managing activity diagrams
-					if (elt.getTagName().compareTo("TActivityDiagramPanel") == 0) {
-						// Managing activity diagrams
-						loadTActivityDiagram(elt, indexDesign);
-					}
-				}
-			}
-		}
-	}
-
-	public void loadAnalysis(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexAnalysis;
-		int cpt = 0;
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexAnalysis = mgui.createAnalysis(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("InteractionOverviewDiagramPanel") == 0) {
-					// IOD
-					loadIODiagram(elt, indexAnalysis);
-					cpt ++;
-				} else { // Managing sequence diagrams
-					if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) {
-						loadSequenceDiagram(elt, indexAnalysis);
-						cpt ++;
-					} else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) {
-						// Managing use case diagrams
-						loadUseCaseDiagram(elt, indexAnalysis, cpt);
-						cpt ++;
-					} /*else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) {
-						// Managing use case diagrams
-						loadAvatarCD(elt, indexAnalysis, cpt);
-						cpt ++;
-					} else if (elt.getTagName().compareTo("AvatarADPanel") == 0) {
-						// Managing use case diagrams
-						loadAvatarAD(elt, indexAnalysis, cpt);
-						cpt ++;
-					}*/
-				}
-			}
-		}
-	}
-	
-	public void loadTMLCP(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexTMLCP;
-		int cpt = 0;
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexTMLCP = mgui.createTMLCP(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("CommunicationPatternDiagramPanel") == 0) {
-					// CP
-					loadTMLCPDiagram(elt, indexTMLCP);
-					cpt ++;
-				} else { // Managing sequence diagrams
-					if (elt.getTagName().compareTo("TMLSDPanel") == 0) {
-						loadTMLSDDiagram(elt, indexTMLCP);
-						cpt ++;
-					} 
-				}
-			}
-		}
-	}
-	
-	public void loadAvatarAnalysis(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexAnalysis;
-		int cpt = 0;
-		
-		//TraceManager.addDev("Loading Avatar analysis");
-		
-		nameTab = elt.getAttribute("nameTab");
-		
-		indexAnalysis = mgui.createAvatarAnalysis(nameTab);
-		
-		diagramNl = node.getChildNodes();
-		
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				
-				if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) {
-					//TraceManager.addDev("Loading seq diag");
-					loadSequenceDiagram(elt, indexAnalysis);
-					//TraceManager.addDev("Loading seq diag done");
-					cpt ++;
-				} else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) {
-					// Managing use case diagrams
-					//TraceManager.addDev("Loading ucd diag");
-					loadUseCaseDiagram(elt, indexAnalysis, cpt);
-					//TraceManager.addDev("Loading ucd diag done");
-					
-					cpt ++;
-				} else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) {
-					// Managing use case diagrams
-					//TraceManager.addDev("Loading cd diag");
-					loadAvatarCD(elt, indexAnalysis, cpt);
-					//TraceManager.addDev("Loading cd diag done");
-					cpt ++;
-				} else if (elt.getTagName().compareTo("AvatarADPanel") == 0) {
-					// Managing use case diagrams
-					//TraceManager.addDev("Loading ad diag");
-					loadAvatarAD(elt, indexAnalysis, cpt);
-					//TraceManager.addDev("Loading ad diag done");
-					cpt ++;
-				}
-				
-			}
-		}
-	}
-
-	public void loadDeployment(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexAnalysis;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexAnalysis = mgui.createDeployment(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Deployment nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("TDeploymentDiagramPanel") == 0) {
-					// IOD
-					loadTDeploymentDiagram(elt, indexAnalysis);
-				}
-			}
-		}
-	}
-	
-	public void loadNC(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexAnalysis;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexAnalysis = mgui.createNC(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Deployment nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("NCDiagramPanel") == 0) {
-					// IOD
-					loadNCDiagram(elt, indexAnalysis);
-				}
-			}
-		}
-	}
-
-	public void loadRequirement(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexReq;
-		int cpt_req = 0;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexReq = mgui.createRequirement(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Deployment nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("TRequirementDiagramPanel") == 0) {
-					loadRequirementDiagram(elt, indexReq, cpt_req);
-					cpt_req ++;
-				} else if (elt.getTagName().compareTo("EBRDDPanel") == 0) {
-					loadEBRDD(elt, indexReq, cpt_req);
-					cpt_req ++;
-				}
-			}
-		}
-	}
-	
-	public void loadAttackTree(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexTree;
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexTree = mgui.createAttackTree(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Deployment nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("AttackTreeDiagramPanel") == 0) {
-					loadAttackTreeDiagram(elt, indexTree);
-				}
-			}
-		}
-	}
-	
-	public void loadDiplodocusMethodology(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createDiplodocusMethodology(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("DiplodocusMethodologyDiagramPanel") == 0) {
-					// Class diagram
-					//TraceManager.addDev("Loading TML CD");
-					loadDiplodocusMethodologyDiagram(elt, indexDesign);
-					//TraceManager.addDev("End loading TML CD");
-				}
-			}
-		}
-	}
-	
-	public void loadAvatarMethodology(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createAvatarMethodology(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("AvatarMethodologyDiagramPanel") == 0) {
-					// Class diagram
-					//TraceManager.addDev("Loading TML CD");
-					loadAvatarMethodologyDiagram(elt, indexDesign);
-					//TraceManager.addDev("End loading TML CD");
-				}
-			}
-		}
-	}
-
-	public void loadTMLDesign(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createTMLDesign(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("TMLTaskDiagramPanel") == 0) {
-					// Class diagram
-					//TraceManager.addDev("Loading TML CD");
-					loadTMLTaskDiagram(elt, indexDesign);
-					//TraceManager.addDev("End loading TML CD");
-				} else { // Managing activity diagrams
-					if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) {
-						// Managing activity diagrams
-						//TraceManager.addDev("Loading TML AD");
-						loadTMLActivityDiagram(elt, indexDesign);
-					}
-				}
-			}
-		}
-	}
-	
-	public void loadTMLComponentDesign(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createTMLComponentDesign(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("TMLComponentTaskDiagramPanel") == 0) {
-					// Component diagram
-					//TraceManager.addDev("Loading TML Component diagram");
-					loadTMLComponentTaskDiagram(elt, indexDesign);
-					//TraceManager.addDev("End loading TML CD");
-				} else { // Managing activity diagrams
-					if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) {
-						// Managing activity diagrams
-						//TraceManager.addDev("Loading TML AD");
-						loadTMLActivityDiagram(elt, indexDesign);
-					}
-				}
-			}
-		}
-	}
-	
-	public void loadTMLArchitecture(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createTMLArchitecture(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			TraceManager.addDev("TML Architecture nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("TMLArchiDiagramPanel") == 0) {
-					TraceManager.addDev("Loading TML DD" + elt.getTagName() );
-					loadTMLArchitectureDiagram(elt, indexDesign);
-					TraceManager.addDev("End loading TML DD");
-				}
-			}
-		}
-	}
-
-	public void loadTURTLEOSDesign(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createTURTLEOSDesign(nameTab);
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("TURTLEOSClassDiagramPanel") == 0) {
-					// Class diagram
-					//TraceManager.addDev("Loading TURTLEOS CD");
-					loadTURTLEOSClassDiagram(elt, indexDesign);
-					//TraceManager.addDev("End loading TML CD");
-				} else { // Managing activity diagrams
-					if (elt.getTagName().compareTo("TURTLEOSActivityDiagramPanel") == 0) {
-						// Managing activity diagrams
-						//TraceManager.addDev("Loading TURTLEOS AD");
-						loadTURTLEOSActivityDiagram(elt, indexDesign);
-					}
-				}
-			}
-		}
-	}
-
-	public void loadProActiveDesign(Node node) throws  MalformedModelingException, SAXException {
-		Element elt = (Element) node;
-		String nameTab;
-		NodeList diagramNl;
-		int indexDesign;
-
-
-		nameTab = elt.getAttribute("nameTab");
-
-		indexDesign = mgui.createProActiveDesign(nameTab);
-
-
-		diagramNl = node.getChildNodes();
-
-		for(int j=0; j<diagramNl.getLength(); j++) {
-			//TraceManager.addDev("Design nodes: " + j);
-			node = diagramNl.item(j);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				elt = (Element)node;
-				if (elt.getTagName().compareTo("ProactiveCSDPanel") == 0) {
-					// Class diagram
-					//TraceManager.addDev("Loading TML CD");
-					loadProactiveCSD(elt, indexDesign);
-					//TraceManager.addDev("End loading TML CD");
-				} else { // Managing activity diagrams
-					if (elt.getTagName().compareTo("ProactiveSMDPanel") == 0) {
-						// Managing activity diagrams
-						//TraceManager.addDev("Loading TML AD");
-						loadProactiveSMD(elt, indexDesign);
-					}
-				}
-			}
-		}
-	}
-
-	public void loadDiagram(Element elt, TDiagramPanel tdp) throws  MalformedModelingException, SAXException {
-		int x, y;
-		double zoom = 0;
-		try {
-			x = Integer.decode(elt.getAttribute("minX")).intValue();
-			tdp.setMinX(x);
-			x = Integer.decode(elt.getAttribute("maxX")).intValue();
-			tdp.setMaxX(x);
-			y = Integer.decode(elt.getAttribute("minY")).intValue();
-			tdp.setMinY(y);
-			y = Integer.decode(elt.getAttribute("maxY")).intValue();
-			tdp.setMaxY(y);
-			tdp.updateSize();
-			zoom = Double.parseDouble(elt.getAttribute("zoom"));
-			if (zoom != 0) {
-				tdp.setZoom(zoom);
-				mgui.updateZoomInfo();
-			}
-		} catch (Exception e) {
-			// Model was saved in an older version of TTool
-		}
-
-		// for TClassdiagram Panel
-		if (tdp instanceof TClassDiagramPanel) {
-			((TClassDiagramPanel)tdp).loadExtraParameters(elt);
-		}
-
-		if (tdp instanceof TActivityDiagramPanel) {
-			((TActivityDiagramPanel)tdp).loadExtraParameters(elt);
-		}
-
-		if (tdp instanceof TMLTaskDiagramPanel) {
-			((TMLTaskDiagramPanel)tdp).loadExtraParameters(elt);
-		}
-		
-		if (tdp instanceof TMLComponentTaskDiagramPanel) {
-			((TMLComponentTaskDiagramPanel)tdp).loadExtraParameters(elt);
-		}
-		
-		if (tdp instanceof TMLArchiDiagramPanel) {
-			((TMLArchiDiagramPanel)tdp).loadExtraParameters(elt);
-		}
-		
-		
-		if (tdp instanceof AvatarBDPanel) {
-			((AvatarBDPanel)tdp).loadExtraParameters(elt);
-		}
-
-		//TraceManager.addDev("Element" + elt.toString());
-		// Loads components of the class diagram
-		//TraceManager.addDev("Components");
-		makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tdp);
-		//TraceManager.addDev("Post processing");
-		makePostProcessing(tdp);
-		//TraceManager.addDev("Connectors");
-		makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tdp);
-		//TraceManager.addDev("Subcomponents");
-		makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tdp);
-		//TraceManager.addDev("RealPoints");
-		connectConnectorsToRealPoints(tdp);
-		//TraceManager.addDev("Structure changed");
-		tdp.structureChanged();
-		//TraceManager.addDev("Post loading");
-		makePostLoading(tdp, 0);
-		
-		//TraceManager.addDev("Test connectors");
-		if (tdp instanceof TMLComponentTaskDiagramPanel) {
-			//TraceManager.addDev("Connectors...");
-			((TMLComponentTaskDiagramPanel)tdp).setConnectorsToFront();
-		}
-		
-		if (tdp instanceof EBRDDPanel) {
-			//TraceManager.addDev("Connectors...");
-			((EBRDDPanel)tdp).setConnectorsToFront();
-		}
-		
-		if (tdp instanceof AttackTreeDiagramPanel) {
-			//TraceManager.addDev("Connectors...");
-			((AttackTreeDiagramPanel)tdp).setConnectorsToFront();
-		}
-		
-		if (tdp instanceof AvatarBDPanel) {
-			//TraceManager.addDev("Connectors...");
-			((AvatarBDPanel)tdp).setConnectorsToFront();
-		}
-		
-		if (tdp instanceof AvatarSMDPanel) {
-			//TraceManager.addDev("Connectors...");
-			((AvatarSMDPanel)tdp).setConnectorsToFront();
-		}
-		
-		if (tdp instanceof AvatarPDPanel) {
-			//TraceManager.addDev("Connectors...");
-			((AvatarPDPanel)tdp).setConnectorsToFront();
-		}
-		
-		if (tdp instanceof AvatarCDPanel) {
-			//TraceManager.addDev("Connectors...");
-			((AvatarCDPanel)tdp).setConnectorsToFront();
-		}
-		
-		if (tdp instanceof AvatarADPanel) {
-			//TraceManager.addDev("Connectors...");
-			((AvatarADPanel)tdp).setConnectorsToFront();
-		}
-	}
-
-	// AVATAR
-	public void loadAvatarBD(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
-
-		String name;
-		TDiagramPanel tdp;
-
-		// class diagram name
-		name = elt.getAttribute("name");
-		mgui.setAvatarBDName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
-
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadAvatarSMD(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		//TraceManager.addDev("Loading SMD of:" + name);
-		AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(indexDesign, name);
-
-		if (asmdp == null) {
-			throw new MalformedModelingException();
-		}
-
-		asmdp.removeAll();
-
-		loadDiagram(elt, asmdp);
-	}
-	
-	public void loadAvatarRD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		mgui.createAvatarRD(indexAnalysis, name);
-
-
-		TDiagramPanel tdp = mgui.getAvatarRDPanel(indexAnalysis, indexTab, name);
-
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
-
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadAvatarMAD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		mgui.createAvatarMAD(indexAnalysis, name);
-
-
-		TDiagramPanel tdp = mgui.getAvatarMADPanel(indexAnalysis, indexTab, name);
-
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
-
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadADDDiagram(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		
-		TraceManager.addDev("ADD 2");
-		mgui.createAvatarPD(indexAnalysis, name);
-
-		TraceManager.addDev("ADD 3");
-		TDiagramPanel tdp = mgui.getAvatarADDPanel(indexAnalysis, indexTab, name);
-		
-		TraceManager.addDev("ADD 3.1");
-
-		if (tdp == null) {
-				TraceManager.addDev("ADD 3.2");
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
-		TraceManager.addDev("ADD 4");
-
-		loadDiagram(elt, tdp);
-		TraceManager.addDev("ADD 5");
-	}
-	
-	public void loadAvatarPD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
+        TURTLEPanel tp = mgui.getCurrentTURTLEPanel();
+
+        if (tp == null) {
+            return;
+        }
+
+        if (!(tp instanceof AvatarDesignPanel)) {
+            return;
+        }
+
+        AvatarDesignPanel adp = (AvatarDesignPanel)(tp);
+        adp.reinitMutualExclusionStates();
+
+        // First step: build a list of all states being in invariants
+        Vector<AvatarSMDState> v = new Vector<AvatarSMDState>();
+        for(Invariant inv: invariants) {
+            for(TGComponent tgc: inv.getComponents()) {
+                if (tgc instanceof AvatarSMDState) {
+                    if (!(v.contains(tgc))) {
+                        v.add((AvatarSMDState)tgc);
+                    }
+                }
+            }
+        }
+
+        // Then, add to all states its list of mutually exclusive states
+
+        for(AvatarSMDState s: v) {
+            Vector<AvatarSMDState> v0 = new Vector<AvatarSMDState>();
+            for(Invariant inv: invariants) {
+                if (inv.containsComponent(s)) {
+                    for(TGComponent tgc: inv.getComponents()) {
+                        if ((tgc instanceof AvatarSMDState) && (tgc != s)) {
+                            if (tgc.getTDiagramPanel() != s.getTDiagramPanel()) {
+                                if (!(v0.contains(tgc))) {
+                                    v0.add((AvatarSMDState)tgc);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            TraceManager.addDev("State " + s.getStateName() + " has " + v0.size() + " mutually eclusive states");
+
+            for(AvatarSMDState s0: v0) {
+                s.addMutexState(s0);
+            }
+        }
+
+
+    }
+
+    // From AVATAR to TURTLEModeling
+    public boolean translateAvatarSpecificationToTIF() {
+        AVATAR2TURTLE att = new AVATAR2TURTLE(avatarspec);
+        tm = att.generateTURTLEModeling();
+
+        TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE);
+
+        checkingErrors = tmc.syntaxAnalysisChecking();
+        warnings.addAll(tmc.getWarnings());
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            analyzeErrors();
+            return false;
+        } else {
+            return true;
+        }
+
+    }
+
+    public Vector getCheckingErrors() {
+        return checkingErrors;
+    }
+
+    public Vector getCheckingWarnings() {
+        return warnings;
+    }
+
+
+    // SAVING AND LOADING IN XML
+    public static String transformString(String s) {
+        if (s != null) {
+            s = Conversion.replaceAllChar(s, '&', "&amp;");
+            s = Conversion.replaceAllChar(s, '<', "&lt;");
+            s = Conversion.replaceAllChar(s, '>', "&gt;");
+            s = Conversion.replaceAllChar(s, '"', "&quot;");
+            s = Conversion.replaceAllChar(s, '\'', "&apos;");
+        }
+        return s;
+    }
+
+    public static String encodeString(String s) {
+        return s;
+    }
+
+    public static String decodeString(String s) throws MalformedModelingException {
+        if (s == null)
+            return s;
+        byte b[] = null;
+        try {
+            b = s.getBytes("ISO-8859-1");
+            return new String(b);
+        } catch (Exception e) {
+            throw new MalformedModelingException();
+        }
+    }
+
+    public String mergeTURTLEGModeling(String modeling1, String modeling2) {
+        int index1 = modeling1.indexOf("</TURTLEGMODELING");
+        int index2 = modeling2.indexOf("<TURTLEGMODELING");
+        if ((index1 == -1) || (index2 == -1)) {
+            return null;
+        }
+
+        String modeling = modeling1.substring(0, index1);
+        String tmp = modeling2.substring(index2, modeling2.length());
+        index2 = modeling2.indexOf('<');
+        if (index2 == -1) {
+            return null;
+        }
+
+        tmp = tmp.substring(index2+1, tmp.length());
+
+        return modeling + tmp;
+    }
+
+    public String makeXMLFromComponentOfADiagram(TDiagramPanel tdp, TGComponent tgc, int copyMaxId, int _decX, int _decY) {
+        StringBuffer sb = new StringBuffer();
+
+        //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
+        sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS ");
+        sb.append("version=\"" + DefaultText.getVersion());
+        sb.append("\" copyMaxId=\"" + copyMaxId);
+        sb.append("\" decX=\"" + _decX);
+        sb.append("\" decY=\"" + _decY);
+        sb.append("\" >\n\n");
+
+        StringBuffer s;
+        String str;
+
+        s = tdp.saveComponentInXML(tgc);
+
+        if (tgc instanceof AvatarBDBlock) {
+            AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
+            s.append(asmdp.saveInXML());
+            LinkedList<AvatarBDBlock> list = ((AvatarBDBlock)tgc).getFullBlockList();
+            for(AvatarBDBlock b:list) {
+                asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue());
+                s.append(asmdp.saveInXML());
+            }
+
+        }
+
+        if (tgc instanceof TCDTClass) {
+            TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
+            s.append(tadp.saveInXML());
+        }
+
+        if (tgc instanceof TOSClass) {
+            TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
+            s.append(tosadp.saveInXML());
+        }
+
+        if (tgc instanceof TMLTaskOperator) {
+            TMLActivityDiagramPanel tmladp1 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
+            s.append(tmladp1.saveInXML());
+        }
+
+        if (tgc instanceof TMLCPrimitiveComponent) {
+            TMLActivityDiagramPanel tmladp2 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
+            s.append(tmladp2.saveInXML());
+        }
+
+        if (tgc instanceof TMLCCompositeComponent) {
+            TMLActivityDiagramPanel tmladp3;
+            ArrayList<TMLCPrimitiveComponent> list =  ((TMLCCompositeComponent)tgc).getAllPrimitiveComponents();
+            for (TMLCPrimitiveComponent comp: list) {
+                tmladp3 =  mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), comp.getValue());
+                s.append(tmladp3.saveInXML());
+            }
+        }
+
+        if (s == null) {
+            return null;
+        }
+        sb.append(s);
+        sb.append("\n\n");
+        sb.append("</TURTLEGSELECTEDCOMPONENTS>");
+
+        str = new String(sb);
+        str = encodeString(str);
+
+        return str;
+    }
+
+
+    public String makeXMLFromSelectedComponentOfADiagram(TDiagramPanel tdp, int copyMaxId, int _decX, int _decY) {
+        StringBuffer sb = new StringBuffer();
+        //TraceManager.addDev("Making copy");
+
+        //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
+        sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS ");
+        sb.append("version=\"" + DefaultText.getVersion());
+        sb.append("\" copyMaxId=\"" + copyMaxId);
+        sb.append("\" decX=\"" + _decX);
+        sb.append("\" decY=\"" + _decY);
+        sb.append("\" >\n\n");
+
+        StringBuffer s;
+        String str;
+
+        s = tdp.saveSelectedInXML();
+
+        Vector v = tdp.selectedTclasses();
+
+        if ((v != null) && (v.size() > 0)) {
+            TCDTClass t;
+            TActivityDiagramPanel tadp;
+            for(int i=0; i<v.size(); i++) {
+                t = (TCDTClass)(v.elementAt(i));
+                tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue());
+                s.append(tadp.saveInXML());
+            }
+        }
+
+        //Added by Solange
+        //bug removed by Emil
+        if (tdp instanceof ProactiveCSDPanel)
+            {
+                v=((ProactiveCSDPanel)tdp).selectedProCSDComponent(null);
+                if ((v != null) && (v.size() > 0)) {
+                    ProCSDComponent t;
+                    ProactiveSMDPanel psmd;
+                    for(int i=0; i<v.size(); i++) {
+                        t = (ProCSDComponent)(v.elementAt(i));
+                        psmd = mgui.getSMDPanel(mgui.getCurrentSelectedIndex(), t.getValue());
+                        if (psmd!=null)
+                            s.append(psmd.saveInXML());
+                    }
+                }
+            }
+        //until here
+
+
+        v = tdp.selectedTURTLEOSClasses();
+        if ((v != null) && (v.size() > 0)) {
+            //TraceManager.addDev("Saving TURTLEOS activity diagram Panel...");
+            TOSClass t;
+            TURTLEOSActivityDiagramPanel tosadp;
+            for(int i=0; i<v.size(); i++) {
+                t = (TOSClass)(v.elementAt(i));
+                tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue());
+                s.append(tosadp.saveInXML());
+            }
+        }
+
+        v = tdp.selectedTMLTasks();
+        if ((v != null) && (v.size() > 0)) {
+            //TraceManager.addDev("Saving TML activity diagram Panel...");
+            TMLTaskOperator t;
+            TMLActivityDiagramPanel tmladp;
+            for(int i=0; i<v.size(); i++) {
+                t = (TMLTaskOperator)(v.elementAt(i));
+                tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue());
+                s.append(tmladp.saveInXML());
+            }
+        }
+
+        v = tdp.selectedAvatarBDBlocks();
+        if ((v != null) && (v.size() > 0)) {
+            //TraceManager.addDev("Saving TML activity diagram Panel...");
+            AvatarBDBlock abdb;
+            AvatarSMDPanel asmdp;
+            for(int i=0; i<v.size(); i++) {
+                abdb = (AvatarBDBlock)(v.elementAt(i));
+                asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), abdb.getBlockName());
+                s.append(asmdp.saveInXML());
+
+            }
+        }
+
+        v = tdp.selectedCPrimitiveComponent();
+        if ((v != null) && (v.size() > 0)) {
+            //TraceManager.addDev("Saving TML activity diagram Panel...");
+            TMLCPrimitiveComponent ct;
+            TMLActivityDiagramPanel tmladp;
+            for(int i=0; i<v.size(); i++) {
+                ct = (TMLCPrimitiveComponent)(v.elementAt(i));
+                tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), ct.getValue());
+                s.append(tmladp.saveInXML());
+            }
+        }
+
+        if (s == null) {
+            return null;
+        }
+        sb.append(s);
+        sb.append("\n\n");
+        sb.append("</TURTLEGSELECTEDCOMPONENTS>");
+
+        str = new String(sb);
+        str = encodeString(str);
+
+        TraceManager.addDev("Copy done");
+        //TraceManager.addDev(str);
+
+        return str;
+    }
+
+    public String makeOneDiagramXMLFromGraphicalModel(TURTLEPanel tp, int indexOfDiagram) {
+        StringBuffer sb = new StringBuffer();
+        //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
+        sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n");
+
+        StringBuffer s;
+        String str;
+
+
+        s = tp.saveInXML(indexOfDiagram);
+
+        sb.append(s);
+        sb.append("\n\n");
+
+
+        sb.append("</TURTLEGMODELING>");
+
+        str = new String(sb);
+        str = encodeString(str);
+
+        return str;
+    }
+
+    public String makeXMLFromTurtleModeling(int index) {
+        StringBuffer sb = new StringBuffer();
+        //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n");
+        sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n");
+
+        StringBuffer s;
+        String str;
+
+        TURTLEPanel tp;
+        int i;
+        // search for diagram panels (Design)
+        for(i=0; i<panels.size(); i++) {
+            if ((index == -1) || (i == index)) {
+                tp = (TURTLEPanel)(panels.elementAt(i));
+                s = tp.saveInXML();
+                if (s == null) {
+                    return null;
+                }
+                sb.append(s);
+                sb.append("\n\n");
+            }
+        }
+
+        sb.append("</TURTLEGMODELING>");
+
+        str = new String(sb);
+        str = encodeString(str);
+
+        return str;
+    }
+
+    public void removeAllComponents() {
+        TDiagramPanel tdp;
+        int i, j;
+        Vector panelss;
+        // search for diagram panels
+        for(i=0; i<panels.size(); i++) {
+            panelss = (Vector)(((TURTLEPanel)(panels.elementAt(i))).panels);
+            for(j=0; j<panelss.size(); j++) {
+                tdp = (TDiagramPanel)(panelss.elementAt(j));
+                tdp.removeAll();
+            }
+        }
+    }
+
+    public void copyModelingFromXML(TDiagramPanel tdp, String s, int X, int Y) throws MalformedModelingException {
+        //TraceManager.addDev("copyModelingFromXML: " + s);
+        //TraceManager.addDev("tdp: " + tdp);
+
+        //TraceManager.addDev(s);
+        //TraceManager.addDev("copyModelingFromXML:");
+        //LinkedList ComponentsList=tdp.getComponentList();
+        int beginIndex = tdp.getComponentList().size();
+
+        //Added by Solange
+        int cuenta=1;
+
+        s = decodeString(s);
+
+        //TraceManager.addDev("copy=" + s);
+
+        ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes());
+        if ((dbf == null) || (db == null)) {
+            throw new MalformedModelingException();
+        }
+
+        int i;
+        //int copyMaxId;
+        int _decX = 0, _decY = 0;
+
+        try {
+            // building nodes from xml String
+            Document doc = db.parse(bais);
+            NodeList nl;
+
+            decId = tdp.getMaxId() + 1;
+            TGComponent.setGeneralId(TGComponent.getGeneralId() + decId + 2);
+            nl = doc.getElementsByTagName("TURTLEGSELECTEDCOMPONENTS");
+
+            if (nl == null) {
+                return;
+            }
+
+            Node adn;
+            Element elt;
+
+            for(i=0; i<nl.getLength(); i++) {
+                adn = nl.item(i);
+                if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                    elt = (Element) adn;
+                    _decX = X - Integer.decode(elt.getAttribute("decX")).intValue();
+                    _decY = Y - Integer.decode(elt.getAttribute("decY")).intValue();
+                    //copyMaxId = Integer.decode(elt.getAttribute("copyMaxId")).intValue();
+                }
+            }
+
+            // Managing diagrams
+            if (tdp instanceof TClassDiagramPanel) {
+                TraceManager.addDev("TClassDiagramPanel copy");
+
+                nl = doc.getElementsByTagName("TClassDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+
+                TClassDiagramPanel tcdp = (TClassDiagramPanel)tdp;
+
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tcdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        tcdp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Class diagram : " + tcdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tcdp);
+                        makePostProcessing(tcdp);
+                        //TraceManager.addDev("Class diagram : " + tcdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tcdp);
+                        //TraceManager.addDev("Class diagram : " + tcdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tcdp);
+                        //TraceManager.addDev("Class diagram : " + tcdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tcdp);
+                        tcdp.structureChanged();
+                        //TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(tcdp, beginIndex);
+                        //TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading done");
+                    }
+                }
+                docCopy = null;
+
+            } else if (tdp instanceof TActivityDiagramPanel) {
+                TraceManager.addDev("TActivityDiagramPanel copy");
+                nl = doc.getElementsByTagName("TActivityDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tadp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        tadp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                        connectConnectorsToRealPoints(tadp);
+                        tadp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                        makePostLoading(tadp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof InteractionOverviewDiagramPanel) {
+
+                nl = doc.getElementsByTagName("InteractionOverviewDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                InteractionOverviewDiagramPanel iodp = (InteractionOverviewDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (iodp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), iodp);
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), iodp);
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), iodp);
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " real points");
+                        connectConnectorsToRealPoints(iodp);
+                        iodp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
+                        makePostLoading(iodp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof SequenceDiagramPanel) {
+                //TraceManager.addDev("Sequence diagram!");
+                nl = doc.getElementsByTagName("SequenceDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                SequenceDiagramPanel sdp = (SequenceDiagramPanel)tdp;
+
+                //TraceManager.addDev("Sequence diagram!");
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (sdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), sdp);
+                        //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), sdp);
+                        //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), sdp);
+                        //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " real points");
+                        connectConnectorsToRealPoints(sdp);
+                        sdp.structureChanged();
+                        //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " post loading");
+                        makePostLoading(sdp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof UseCaseDiagramPanel) {
+                nl = doc.getElementsByTagName("UseCaseDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                UseCaseDiagramPanel ucdp = (UseCaseDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (ucdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ucdp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ucdp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ucdp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points");
+                        connectConnectorsToRealPoints(ucdp);
+                        ucdp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
+                        makePostLoading(ucdp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof TDeploymentDiagramPanel) {
+                nl = doc.getElementsByTagName("TDeploymentDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                TDeploymentDiagramPanel tddp = (TDeploymentDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tddp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tddp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tddp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tddp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tddp);
+                        tddp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
+                        makePostLoading(tddp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof NCDiagramPanel) {
+                nl = doc.getElementsByTagName("NCDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                NCDiagramPanel ncdp = (NCDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (ncdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ncdp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ncdp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ncdp);
+                        //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points");
+                        connectConnectorsToRealPoints(ncdp);
+                        ncdp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading");
+                        makePostLoading(ncdp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof RequirementDiagramPanel) {
+                nl = doc.getElementsByTagName("TRequirementDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                RequirementDiagramPanel rdp = (RequirementDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (rdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), rdp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), rdp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), rdp);
+                        connectConnectorsToRealPoints(rdp);
+                        rdp.structureChanged();
+                        makePostLoading(rdp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof EBRDDPanel) {
+                nl = doc.getElementsByTagName("EBRDDPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                EBRDDPanel ebrddp = (EBRDDPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (ebrddp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ebrddp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ebrddp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ebrddp);
+                        connectConnectorsToRealPoints(ebrddp);
+                        ebrddp.structureChanged();
+                        makePostLoading(ebrddp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof AttackTreeDiagramPanel) {
+                nl = doc.getElementsByTagName("AttackTreeDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                AttackTreeDiagramPanel atdp = (AttackTreeDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (atdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), atdp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), atdp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), atdp);
+                        connectConnectorsToRealPoints(atdp);
+                        atdp.structureChanged();
+                        makePostLoading(atdp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof TMLTaskDiagramPanel) {
+                nl = doc.getElementsByTagName("TMLTaskDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+
+                TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
+
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tmltdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        tmltdp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(tmltdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmltdp);
+                        tmltdp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(tmltdp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+            }else if (tdp instanceof DiplodocusMethodologyDiagramPanel) {
+                nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+
+                DiplodocusMethodologyDiagramPanel tmltdp = (DiplodocusMethodologyDiagramPanel)tdp;
+
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tmltdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        tmltdp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(tmltdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmltdp);
+                        tmltdp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(tmltdp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+
+
+            }else if (tdp instanceof AvatarMethodologyDiagramPanel) {
+                nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+
+                AvatarMethodologyDiagramPanel amdp = (AvatarMethodologyDiagramPanel)tdp;
+
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (amdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        amdp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amdp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(amdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(amdp);
+                        amdp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(amdp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+            }  else if (tdp instanceof TMLComponentTaskDiagramPanel) {
+                nl = doc.getElementsByTagName("TMLComponentTaskDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+
+                TMLComponentTaskDiagramPanel tmlctdp = (TMLComponentTaskDiagramPanel)tdp;
+                //tmlctdp.updateReferences();
+
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tmlctdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        tmlctdp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlctdp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(tmlctdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlctdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlctdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmlctdp);
+                        tmlctdp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(tmlctdp, beginIndex);
+                        tmlctdp.hideConnectors();
+                        tmlctdp.updatePorts();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+                tmlctdp.updatePorts();
+            } else if (tdp instanceof TMLActivityDiagramPanel) {
+                nl = doc.getElementsByTagName("TMLActivityDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                TMLActivityDiagramPanel tmladp = (TMLActivityDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tmladp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //tmladp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp);
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp);
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmladp);
+                        tmladp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                        makePostLoading(tmladp, beginIndex);
+                    }
+                }
+            }  else if (tdp instanceof TMLCPPanel) {
+                nl = doc.getElementsByTagName("CommunicationPatternDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+                TMLCPPanel tmlcpp = (TMLCPPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tmlcpp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //tmlcpp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlcpp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(tmlcpp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlcpp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlcpp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmlcpp);
+                        tmlcpp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(tmlcpp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+            } else if (tdp instanceof TMLSDPanel) {
+                nl = doc.getElementsByTagName("TMLSDPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+                TMLSDPanel tmlsdp = (TMLSDPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tmlsdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //tmlcpp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlsdp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(tmlsdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlsdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlsdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmlsdp);
+                        tmlsdp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(tmlsdp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+            } else if (tdp instanceof TMLArchiDiagramPanel) {
+                nl = doc.getElementsByTagName("TMLArchiDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+                TMLArchiDiagramPanel tmadp = (TMLArchiDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tmadp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        tmadp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmadp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(tmadp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmadp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmadp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmadp);
+                        tmadp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(tmadp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+            } else if (tdp instanceof TURTLEOSClassDiagramPanel) {
+                nl = doc.getElementsByTagName("TURTLEOSClassDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                TURTLEOSClassDiagramPanel toscdp = (TURTLEOSClassDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (toscdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //toscdp.loadExtraParameters(elt);
+                        //TraceManager.addDev("Toto 2");
+                        //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), toscdp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(toscdp);
+                        //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), toscdp);
+                        //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), toscdp);
+                        //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " real points");
+                        connectConnectorsToRealPoints(toscdp);
+                        toscdp.structureChanged();
+                        //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(toscdp, beginIndex);
+                        //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading done");
+                    }
+                }
+            } else if (tdp instanceof TURTLEOSActivityDiagramPanel) {
+                nl = doc.getElementsByTagName("TURTLEOSActivityDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                TURTLEOSActivityDiagramPanel tosadp = (TURTLEOSActivityDiagramPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (tosadp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //tmladp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tosadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tosadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tosadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                        connectConnectorsToRealPoints(tosadp);
+                        tosadp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                        makePostLoading(tosadp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof ProactiveCSDPanel) {
+                //cuenta=beginIndex+1;
+                cuenta=mgui.tabs.size()-1;
+                nl = doc.getElementsByTagName("ProactiveCSDPanelCopy");
+                if (nl.getLength()==0)
+                    {
+                        nl=doc.getElementsByTagName("ProactiveCSDPanel");
+                    }
+                docCopy = doc;
+                if (nl == null)
+                    {
+                        return;
+                    }
+                ProactiveCSDPanel pcsdp = (ProactiveCSDPanel)tdp;
+                for(i=0; i<nl.getLength(); i++)
+                    {
+                        adn = nl.item(i);
+                        if (adn.getNodeType() == Node.ELEMENT_NODE)
+                            {
+                                elt = (Element) adn;
+                                if (pcsdp == null)
+                                    {
+                                        throw new MalformedModelingException();
+                                    }
+
+
+                                //                                              int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                                //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                                //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                                //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                                decX = _decX;
+                                decY = _decY;
+
+                                //pcsdp.loadExtraParameters(elt);
+                                //TraceManager.addDev("Toto 2");
+                                //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                                makeXMLComponents(elt.getElementsByTagName("COMPONENT"), pcsdp);
+                                //TraceManager.addDev("Toto 3");
+                                makePostProcessing(pcsdp);
+                                //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                                makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), pcsdp);
+                                //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                                makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), pcsdp);
+                                //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                                connectConnectorsToRealPoints(pcsdp);
+                                pcsdp.structureChanged();
+                                //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                                makePostLoading(pcsdp, beginIndex);
+                                //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                            }
+                    }
+                // Added by Solange
+                nl = doc.getElementsByTagName("ProactiveSMDPanel");
+                if (nl == null)
+                    {
+                        return;
+                    }
+                String name="";
+                ProactiveSMDPanel psmdp;
+                for(i=0; i<nl.getLength(); i++) //Erased cuenta++ by Solange at the end condition of the for
+                    {
+                        adn = nl.item(i);
+                        if (adn.getNodeType() == Node.ELEMENT_NODE)
+                            {
+                                elt = (Element) adn;
+                                name=elt.getAttribute("name");
+                                //Added by Solange name at the beginning and cuenta
+                                name=mgui.createProActiveSMD(cuenta,name);
+                                psmdp=mgui.getSMDPanel(cuenta, name);
+                                if (psmdp == null)
+                                    {
+                                        throw new MalformedModelingException();
+                                    }
+
+                                //                                              int xSel = Integer.decode(elt.getAttribute("minX")).intValue();
+                                //int ySel = Integer.decode(elt.getAttribute("maxX")).intValue(); // - mgui.getCurrentTDiagramPanel().currentX;
+                                //                                              int widthSel = Integer.decode(elt.getAttribute("minY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;;
+                                //                                              int heightSel = Integer.decode(elt.getAttribute("maxY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;;
+
+                                decX = _decX;
+                                decY = _decY;
+
+                                //tmladp.loadExtraParameters(elt);
+                                //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
+                                makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp);
+                                //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
+                                makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp);
+                                //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
+                                makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp);
+                                //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                                connectConnectorsToRealPoints(psmdp);
+                                psmdp.structureChanged();
+                                //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                                makePostLoading(psmdp, beginIndex);
+                                //until here
+                            }
+                    }
+            } else if (tdp instanceof ProactiveSMDPanel) {
+                //Changed by Solange, before it was like the first line
+                //nl = doc.getElementsByTagName("ProactiveSMDPanelCopy");
+                nl = doc.getElementsByTagName("ProactiveSMDPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                ProactiveSMDPanel psmdp = (ProactiveSMDPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (psmdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //tmladp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                        connectConnectorsToRealPoints(psmdp);
+                        psmdp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                        makePostLoading(psmdp, beginIndex);
+                    }
+                }
+
+                // AVATAR
+            } else if (tdp instanceof AvatarBDPanel) {
+                nl = doc.getElementsByTagName("AVATARBlockDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+
+                AvatarBDPanel abdp = (AvatarBDPanel)tdp;
+
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (abdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        abdp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), abdp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(abdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), abdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), abdp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(abdp);
+                        abdp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(abdp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+
+
+            } else if (tdp instanceof ADDDiagramPanel) {
+                nl = doc.getElementsByTagName("ADDDiagramPanelCopy");
+                docCopy = doc;
+
+                if (nl == null) {
+                    return;
+                }
+
+                //TraceManager.addDev("Toto 1");
+
+
+                ADDDiagramPanel addp = (ADDDiagramPanel)tdp;
+
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (addp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        addp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Toto 2");
+
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), addp);
+                        //TraceManager.addDev("Toto 3");
+                        makePostProcessing(addp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), addp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), addp);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points");
+                        connectConnectorsToRealPoints(addp);
+                        addp.structureChanged();
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex);
+                        makePostLoading(addp, beginIndex);
+                        //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done");
+                    }
+                }
+
+            } else if (tdp instanceof AvatarSMDPanel) {
+                nl = doc.getElementsByTagName("AVATARStateMachineDiagramPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                AvatarSMDPanel asmdp = (AvatarSMDPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (asmdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        //tmladp.loadExtraParameters(elt);
+
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp);
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp);
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                        connectConnectorsToRealPoints(asmdp);
+                        asmdp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                        makePostLoading(asmdp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof AvatarRDPanel) {
+                nl = doc.getElementsByTagName("AvatarRDPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                AvatarRDPanel ardp = (AvatarRDPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (ardp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ardp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ardp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ardp);
+                        connectConnectorsToRealPoints(ardp);
+                        ardp.structureChanged();
+                        makePostLoading(ardp, beginIndex);
+                    }
+                }
+
+            } else if (tdp instanceof AvatarMADPanel) {
+                nl = doc.getElementsByTagName("AvatarMADPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                AvatarMADPanel amadp = (AvatarMADPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (amadp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amadp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amadp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amadp);
+                        connectConnectorsToRealPoints(amadp);
+                        amadp.structureChanged();
+                        makePostLoading(amadp, beginIndex);
+                    }
+                }
+
+            } else if (tdp instanceof AvatarPDPanel) {
+                nl = doc.getElementsByTagName("AvatarPDPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                AvatarPDPanel apdp = (AvatarPDPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (apdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), apdp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), apdp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), apdp);
+                        connectConnectorsToRealPoints(apdp);
+                        apdp.structureChanged();
+                        makePostLoading(apdp, beginIndex);
+                    }
+                }
+
+            } else if (tdp instanceof AvatarCDPanel) {
+                nl = doc.getElementsByTagName("AvatarCDPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                AvatarCDPanel acdp = (AvatarCDPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (acdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), acdp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), acdp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), acdp);
+                        connectConnectorsToRealPoints(acdp);
+                        acdp.structureChanged();
+                        makePostLoading(acdp, beginIndex);
+                    }
+                }
+            } else if (tdp instanceof AvatarADPanel) {
+                nl = doc.getElementsByTagName("AvatarADPanelCopy");
+
+                if (nl == null) {
+                    return;
+                }
+
+                AvatarADPanel aadp = (AvatarADPanel)tdp;
+
+                for(i=0; i<nl.getLength(); i++) {
+                    adn = nl.item(i);
+                    if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                        elt = (Element) adn;
+
+                        if (aadp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue();
+                        //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue();
+                        //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue();
+                        //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue();
+
+                        decX = _decX;
+                        decY = _decY;
+
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), aadp);
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), aadp);
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), aadp);
+                        connectConnectorsToRealPoints(aadp);
+                        aadp.structureChanged();
+                        makePostLoading(aadp, beginIndex);
+                    }
+                }
+            }
+
+        } catch (IOException e) {
+            TraceManager.addError("Loading 500: " + e.getMessage());
+            throw new MalformedModelingException();
+        } catch (SAXException saxe) {
+            TraceManager.addError("Loading 501 " + saxe.getMessage());
+            throw new MalformedModelingException();
+        }
+    }
+
+    // Returns null if s is not a saved TURTLE modeling of an older format
+    public String upgradeSaved(String s) {
+        int index1, index2, index3;
+        StringBuffer sb = new StringBuffer("");;
+        //String tmp;
+
+        index1 = s.indexOf("<TClassDiagramPanel");
+        index2 = s.indexOf("<InteractionOverviewDiagramPanel ");
+        index3 = s.indexOf("</TURTLEGMODELING>");
+
+        if ((index1 <0) ||(index3 < 0)){
+            return null;
+        }
+
+        sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n");
+
+        if (index2 > -1) {
+            sb.append("<Modeling type=\"Analysis\" nameTab=\"Analysis\" >\n");
+            sb.append(s.substring(index2, index3));
+            sb.append("</Modeling>\n\n");
+        }
+
+        if (index2 < 0) {
+            index2 = index3;
+        }
+        sb.append("<Modeling type=\"Design\" nameTab=\"Design\" >\n");
+        sb.append(s.substring(index1, index2));
+        sb.append("</Modeling>\n\n");
+
+        sb.append(s.substring(index3, s.length()));
+
+        //TraceManager.addDev("Got:" + sb);
+
+        return sb.toString();
+    }
+
+    public void loadModelingFromXML(String s) throws MalformedModelingException {
+
+        if (s == null) {
+            return;
+        }
+
+        s = decodeString(s);
+
+        decX = 0;
+        decY = 0;
+        decId = 0;
+        TGComponent.setGeneralId(100000);
+
+        ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes());
+
+        if ((dbf == null) || (db == null)) {
+            throw new MalformedModelingException();
+        }
+
+        try {
+            // building nodes from xml String
+            Document doc = db.parse(bais);
+            NodeList panelNl;
+            //NodeList designPanelNl;
+            //NodeList analysisNl;
+
+            int i;
+            //Element elt;
+            Node node;
+
+            // Managing design panels
+            panelNl = doc.getElementsByTagName("Modeling");
+
+            if (panelNl.getLength() == 0) {
+                // Modeling saved in old format?
+                s = upgradeSaved(s);
+                if (s != null) {
+                    JOptionPane.showMessageDialog(mgui.frame, "The modeling has been converted to this new version of TTool", "Loading information", JOptionPane.INFORMATION_MESSAGE);
+                }
+                loadModelingFromXML(s);
+                return;
+
+            }
+            //designPanelNl = doc.getElementsByTagName("Design");
+            //analysisNl = doc.getElementsByTagName("Analysis");
+
+            pendingConnectors = new ArrayList<TGConnectorInfo>();
+
+            //TraceManager.addDev("nb de design=" + designPanelNl.getLength() + " nb d'analyse=" + analysisNl.getLength());
+            boolean error = false;
+            for(i=0; i<panelNl.getLength(); i++) {
+                node = panelNl.item(i);
+                //TraceManager.addDev("Node = " + dnd);
+
+                if (node.getNodeType() == Node.ELEMENT_NODE) {
+                    // create design, and get an index for it
+                    try {
+                        loadModeling(node);
+                    } catch (MalformedModelingException mme) {
+                        Element elt = (Element) node;
+                        String type = elt.getAttribute("type");
+                        TraceManager.addDev("Error when loading diagram: " + type);
+                        error = true;
+                    }
+                }
+            }
+            if (error == true) {
+                throw new MalformedModelingException();
+            }
+
+        } catch (NumberFormatException nfe) {
+            TraceManager.addError("Loading 400 " + nfe.getMessage());
+            throw new MalformedModelingException();
+        } catch (IOException e) {
+            TraceManager.addError("Loading 600 " + e.getMessage());
+            throw new MalformedModelingException();
+        } catch (SAXException saxe) {
+            TraceManager.addError("Loading 601 " + saxe.getMessage());
+            throw new MalformedModelingException();
+        }
+        //TraceManager.addDev("making IDs");
+        makeLastLoad();
+        makeLovelyIds();
+        //TraceManager.addDev("IDs done");
+    }
+
+    public void loadModeling(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String type = elt.getAttribute("type");
+        // AVATAR
+        if (type.compareTo("ADD") == 0) {
+            loadAvatarDeployment(node);
+        } else if (type.compareTo("AVATAR Design") == 0) {
+            loadAvatarDesign(node);
+        } else if (type.compareTo("Avatar Requirement") == 0) {
+            loadAvatarRequirement(node);
+        } else if (type.compareTo("Avatar MAD") == 0) {
+            loadAvatarMADs(node);
+        } else if (type.compareTo("Avatar Analysis") == 0) {
+            loadAvatarAnalysis(node);
+
+
+            // TURTLE
+        } else if (type.compareTo("Design") == 0) {
+            loadDesign(node);
+        } else if (type.compareTo("Analysis") == 0) {
+            loadAnalysis(node);
+        } else if (type.compareTo("Deployment") == 0) {
+            loadDeployment(node);
+        } else if (type.compareTo("NC diagram") == 0) {
+            loadNC(node);
+        } else if (type.compareTo("Requirement") == 0) {
+            loadRequirement(node);
+        } else if (type.compareTo("AttackTree") == 0) {
+            loadAttackTree(node);
+        } else if (type.compareTo("Diplodocus Methodology") == 0) {
+            loadDiplodocusMethodology(node);
+        } else if (type.compareTo("Avatar Methodology") == 0) {
+            loadAvatarMethodology(node);
+        } else if (type.compareTo("TML Design") == 0) {
+            loadTMLDesign(node);
+        } else if (type.compareTo("TML Component Design") == 0) {
+            loadTMLComponentDesign(node);
+        } else if (type.compareTo("TML CP") == 0) {
+            loadTMLCP(node);
+        } else if (type.compareTo("TML Architecture") == 0) {
+            loadTMLArchitecture(node);
+        } else if (type.compareTo("TURTLE-OS Design") == 0) {
+            loadTURTLEOSDesign(node);
+        } else if (type.compareTo("ProActive Design") == 0) {
+            loadProActiveDesign(node);
+        } else {
+            throw new MalformedModelingException();
+        }
+    }
+
+    public void loadAvatarDesign(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createAvatarDesign(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("AVATARBlockDiagramPanel") == 0) {
+                    // Class diagram
+                    loadAvatarBD(elt, indexDesign);
+                } else { // Managing activity diagrams
+                    if (elt.getTagName().compareTo("AVATARStateMachineDiagramPanel") == 0) {
+                        // Managing activity diagrams
+                        loadAvatarSMD(elt, indexDesign);
+                    }
+                }
+            }
+        }
+    }
+
+    public void loadAvatarDeployment(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexReq;
+        int cpt_req = 0;
+
+        TraceManager.addDev("Loading ADD 0");
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexReq = mgui.createADD(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Deployment nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("ADDDiagramPanel") == 0) {
+                    TraceManager.addDev("Loading ADD 1");
+                    loadADDDiagram(elt, indexReq, cpt_req);
+                    cpt_req ++;
+                }
+            }
+        }
+    }
+
+    public void loadAvatarRequirement(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexReq;
+        int cpt_req = 0;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexReq = mgui.createAvatarRequirement(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Deployment nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("AvatarRDPanel") == 0) {
+                    loadAvatarRD(elt, indexReq, cpt_req);
+                    cpt_req ++;
+                } else if (elt.getTagName().compareTo("AvatarPDPanel") == 0) {
+                    loadAvatarPD(elt, indexReq, cpt_req);
+                    cpt_req ++;
+                }
+            }
+        }
+    }
+
+    public void loadAvatarMADs(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexReq;
+        int cpt_req = 0;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        TraceManager.addDev("Creating MAD panel ");
+
+        indexReq = mgui.createAvatarMADs(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            TraceManager.addDev("MADs nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("AvatarMADPanel") == 0) {
+                    loadAvatarMAD(elt, indexReq, cpt_req);
+                    cpt_req ++;
+                }
+            }
+        }
+    }
+
+    public void loadDesign(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createDesign(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("TClassDiagramPanel") == 0) {
+                    // Class diagram
+                    loadTClassDiagram(elt, indexDesign);
+                } else { // Managing activity diagrams
+                    if (elt.getTagName().compareTo("TActivityDiagramPanel") == 0) {
+                        // Managing activity diagrams
+                        loadTActivityDiagram(elt, indexDesign);
+                    }
+                }
+            }
+        }
+    }
+
+    public void loadAnalysis(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexAnalysis;
+        int cpt = 0;
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexAnalysis = mgui.createAnalysis(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("InteractionOverviewDiagramPanel") == 0) {
+                    // IOD
+                    loadIODiagram(elt, indexAnalysis);
+                    cpt ++;
+                } else { // Managing sequence diagrams
+                    if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) {
+                        loadSequenceDiagram(elt, indexAnalysis);
+                        cpt ++;
+                    } else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) {
+                        // Managing use case diagrams
+                        loadUseCaseDiagram(elt, indexAnalysis, cpt);
+                        cpt ++;
+                    } /*else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) {
+                      // Managing use case diagrams
+                      loadAvatarCD(elt, indexAnalysis, cpt);
+                      cpt ++;
+                      } else if (elt.getTagName().compareTo("AvatarADPanel") == 0) {
+                      // Managing use case diagrams
+                      loadAvatarAD(elt, indexAnalysis, cpt);
+                      cpt ++;
+                      }*/
+                }
+            }
+        }
+    }
+
+    public void loadTMLCP(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexTMLCP;
+        int cpt = 0;
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexTMLCP = mgui.createTMLCP(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("CommunicationPatternDiagramPanel") == 0) {
+                    // CP
+                    loadTMLCPDiagram(elt, indexTMLCP);
+                    cpt ++;
+                } else { // Managing sequence diagrams
+                    if (elt.getTagName().compareTo("TMLSDPanel") == 0) {
+                        loadTMLSDDiagram(elt, indexTMLCP);
+                        cpt ++;
+                    }
+                }
+            }
+        }
+    }
+
+    public void loadAvatarAnalysis(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexAnalysis;
+        int cpt = 0;
+
+        //TraceManager.addDev("Loading Avatar analysis");
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexAnalysis = mgui.createAvatarAnalysis(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+
+                if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) {
+                    //TraceManager.addDev("Loading seq diag");
+                    loadSequenceDiagram(elt, indexAnalysis);
+                    //TraceManager.addDev("Loading seq diag done");
+                    cpt ++;
+                } else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) {
+                    // Managing use case diagrams
+                    //TraceManager.addDev("Loading ucd diag");
+                    loadUseCaseDiagram(elt, indexAnalysis, cpt);
+                    //TraceManager.addDev("Loading ucd diag done");
+
+                    cpt ++;
+                } else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) {
+                    // Managing use case diagrams
+                    //TraceManager.addDev("Loading cd diag");
+                    loadAvatarCD(elt, indexAnalysis, cpt);
+                    //TraceManager.addDev("Loading cd diag done");
+                    cpt ++;
+                } else if (elt.getTagName().compareTo("AvatarADPanel") == 0) {
+                    // Managing use case diagrams
+                    //TraceManager.addDev("Loading ad diag");
+                    loadAvatarAD(elt, indexAnalysis, cpt);
+                    //TraceManager.addDev("Loading ad diag done");
+                    cpt ++;
+                }
+
+            }
+        }
+    }
+
+    public void loadDeployment(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexAnalysis;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexAnalysis = mgui.createDeployment(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Deployment nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("TDeploymentDiagramPanel") == 0) {
+                    // IOD
+                    loadTDeploymentDiagram(elt, indexAnalysis);
+                }
+            }
+        }
+    }
+
+    public void loadNC(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexAnalysis;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexAnalysis = mgui.createNC(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Deployment nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("NCDiagramPanel") == 0) {
+                    // IOD
+                    loadNCDiagram(elt, indexAnalysis);
+                }
+            }
+        }
+    }
+
+    public void loadRequirement(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexReq;
+        int cpt_req = 0;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexReq = mgui.createRequirement(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Deployment nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("TRequirementDiagramPanel") == 0) {
+                    loadRequirementDiagram(elt, indexReq, cpt_req);
+                    cpt_req ++;
+                } else if (elt.getTagName().compareTo("EBRDDPanel") == 0) {
+                    loadEBRDD(elt, indexReq, cpt_req);
+                    cpt_req ++;
+                }
+            }
+        }
+    }
+
+    public void loadAttackTree(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexTree;
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexTree = mgui.createAttackTree(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Deployment nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("AttackTreeDiagramPanel") == 0) {
+                    loadAttackTreeDiagram(elt, indexTree);
+                }
+            }
+        }
+    }
+
+    public void loadDiplodocusMethodology(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
 
-		name = elt.getAttribute("name");
-		mgui.createAvatarPD(indexAnalysis, name);
+        nameTab = elt.getAttribute("nameTab");
 
-		TDiagramPanel tdp = mgui.getAvatarPDPanel(indexAnalysis, indexTab, name);
+        indexDesign = mgui.createDiplodocusMethodology(nameTab);
 
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
+        diagramNl = node.getChildNodes();
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadAvatarCD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("DiplodocusMethodologyDiagramPanel") == 0) {
+                    // Class diagram
+                    //TraceManager.addDev("Loading TML CD");
+                    loadDiplodocusMethodologyDiagram(elt, indexDesign);
+                    //TraceManager.addDev("End loading TML CD");
+                }
+            }
+        }
+    }
+
+    public void loadAvatarMethodology(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createAvatarMethodology(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("AvatarMethodologyDiagramPanel") == 0) {
+                    // Class diagram
+                    //TraceManager.addDev("Loading TML CD");
+                    loadAvatarMethodologyDiagram(elt, indexDesign);
+                    //TraceManager.addDev("End loading TML CD");
+                }
+            }
+        }
+    }
+
+    public void loadTMLDesign(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createTMLDesign(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("TMLTaskDiagramPanel") == 0) {
+                    // Class diagram
+                    //TraceManager.addDev("Loading TML CD");
+                    loadTMLTaskDiagram(elt, indexDesign);
+                    //TraceManager.addDev("End loading TML CD");
+                } else { // Managing activity diagrams
+                    if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) {
+                        // Managing activity diagrams
+                        //TraceManager.addDev("Loading TML AD");
+                        loadTMLActivityDiagram(elt, indexDesign);
+                    }
+                }
+            }
+        }
+    }
+
+    public void loadTMLComponentDesign(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createTMLComponentDesign(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("TMLComponentTaskDiagramPanel") == 0) {
+                    // Component diagram
+                    //TraceManager.addDev("Loading TML Component diagram");
+                    loadTMLComponentTaskDiagram(elt, indexDesign);
+                    //TraceManager.addDev("End loading TML CD");
+                } else { // Managing activity diagrams
+                    if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) {
+                        // Managing activity diagrams
+                        //TraceManager.addDev("Loading TML AD");
+                        loadTMLActivityDiagram(elt, indexDesign);
+                    }
+                }
+            }
+        }
+    }
+
+    public void loadTMLArchitecture(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createTMLArchitecture(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            TraceManager.addDev("TML Architecture nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("TMLArchiDiagramPanel") == 0) {
+                    TraceManager.addDev("Loading TML DD" + elt.getTagName() );
+                    loadTMLArchitectureDiagram(elt, indexDesign);
+                    TraceManager.addDev("End loading TML DD");
+                }
+            }
+        }
+    }
+
+    public void loadTURTLEOSDesign(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createTURTLEOSDesign(nameTab);
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("TURTLEOSClassDiagramPanel") == 0) {
+                    // Class diagram
+                    //TraceManager.addDev("Loading TURTLEOS CD");
+                    loadTURTLEOSClassDiagram(elt, indexDesign);
+                    //TraceManager.addDev("End loading TML CD");
+                } else { // Managing activity diagrams
+                    if (elt.getTagName().compareTo("TURTLEOSActivityDiagramPanel") == 0) {
+                        // Managing activity diagrams
+                        //TraceManager.addDev("Loading TURTLEOS AD");
+                        loadTURTLEOSActivityDiagram(elt, indexDesign);
+                    }
+                }
+            }
+        }
+    }
+
+    public void loadProActiveDesign(Node node) throws  MalformedModelingException, SAXException {
+        Element elt = (Element) node;
+        String nameTab;
+        NodeList diagramNl;
+        int indexDesign;
+
+
+        nameTab = elt.getAttribute("nameTab");
+
+        indexDesign = mgui.createProActiveDesign(nameTab);
+
+
+        diagramNl = node.getChildNodes();
+
+        for(int j=0; j<diagramNl.getLength(); j++) {
+            //TraceManager.addDev("Design nodes: " + j);
+            node = diagramNl.item(j);
+            if (node.getNodeType() == Node.ELEMENT_NODE) {
+                elt = (Element)node;
+                if (elt.getTagName().compareTo("ProactiveCSDPanel") == 0) {
+                    // Class diagram
+                    //TraceManager.addDev("Loading TML CD");
+                    loadProactiveCSD(elt, indexDesign);
+                    //TraceManager.addDev("End loading TML CD");
+                } else { // Managing activity diagrams
+                    if (elt.getTagName().compareTo("ProactiveSMDPanel") == 0) {
+                        // Managing activity diagrams
+                        //TraceManager.addDev("Loading TML AD");
+                        loadProactiveSMD(elt, indexDesign);
+                    }
+                }
+            }
+        }
+    }
+
+    public void loadDiagram(Element elt, TDiagramPanel tdp) throws  MalformedModelingException, SAXException {
+        int x, y;
+        double zoom = 0;
+        try {
+            x = Integer.decode(elt.getAttribute("minX")).intValue();
+            tdp.setMinX(x);
+            x = Integer.decode(elt.getAttribute("maxX")).intValue();
+            tdp.setMaxX(x);
+            y = Integer.decode(elt.getAttribute("minY")).intValue();
+            tdp.setMinY(y);
+            y = Integer.decode(elt.getAttribute("maxY")).intValue();
+            tdp.setMaxY(y);
+            tdp.updateSize();
+            zoom = Double.parseDouble(elt.getAttribute("zoom"));
+            if (zoom != 0) {
+                tdp.setZoom(zoom);
+                mgui.updateZoomInfo();
+            }
+        } catch (Exception e) {
+            // Model was saved in an older version of TTool
+        }
+
+        // for TClassdiagram Panel
+        if (tdp instanceof TClassDiagramPanel) {
+            ((TClassDiagramPanel)tdp).loadExtraParameters(elt);
+        }
+
+        if (tdp instanceof TActivityDiagramPanel) {
+            ((TActivityDiagramPanel)tdp).loadExtraParameters(elt);
+        }
+
+        if (tdp instanceof TMLTaskDiagramPanel) {
+            ((TMLTaskDiagramPanel)tdp).loadExtraParameters(elt);
+        }
+
+        if (tdp instanceof TMLComponentTaskDiagramPanel) {
+            ((TMLComponentTaskDiagramPanel)tdp).loadExtraParameters(elt);
+        }
+
+        if (tdp instanceof TMLArchiDiagramPanel) {
+            ((TMLArchiDiagramPanel)tdp).loadExtraParameters(elt);
+        }
+
+
+        if (tdp instanceof AvatarBDPanel) {
+            ((AvatarBDPanel)tdp).loadExtraParameters(elt);
+        }
+
+        //TraceManager.addDev("Element" + elt.toString());
+        // Loads components of the class diagram
+        //TraceManager.addDev("Components");
+        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tdp);
+        //TraceManager.addDev("Post processing");
+        makePostProcessing(tdp);
+        //TraceManager.addDev("Connectors");
+        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tdp);
+        //TraceManager.addDev("Subcomponents");
+        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tdp);
+        //TraceManager.addDev("RealPoints");
+        connectConnectorsToRealPoints(tdp);
+        //TraceManager.addDev("Structure changed");
+        tdp.structureChanged();
+        //TraceManager.addDev("Post loading");
+        makePostLoading(tdp, 0);
+
+        //TraceManager.addDev("Test connectors");
+        if (tdp instanceof TMLComponentTaskDiagramPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((TMLComponentTaskDiagramPanel)tdp).setConnectorsToFront();
+        }
+
+        if (tdp instanceof EBRDDPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((EBRDDPanel)tdp).setConnectorsToFront();
+        }
+
+        if (tdp instanceof AttackTreeDiagramPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((AttackTreeDiagramPanel)tdp).setConnectorsToFront();
+        }
+
+        if (tdp instanceof AvatarBDPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((AvatarBDPanel)tdp).setConnectorsToFront();
+        }
+
+        if (tdp instanceof AvatarSMDPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((AvatarSMDPanel)tdp).setConnectorsToFront();
+        }
+
+        if (tdp instanceof AvatarPDPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((AvatarPDPanel)tdp).setConnectorsToFront();
+        }
+
+        if (tdp instanceof AvatarCDPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((AvatarCDPanel)tdp).setConnectorsToFront();
+        }
+
+        if (tdp instanceof AvatarADPanel) {
+            //TraceManager.addDev("Connectors...");
+            ((AvatarADPanel)tdp).setConnectorsToFront();
+        }
+    }
+
+    // AVATAR
+    public void loadAvatarBD(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+
+        String name;
+        TDiagramPanel tdp;
+
+        // class diagram name
+        name = elt.getAttribute("name");
+        mgui.setAvatarBDName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadAvatarSMD(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        //TraceManager.addDev("Loading SMD of:" + name);
+        AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(indexDesign, name);
+
+        if (asmdp == null) {
+            throw new MalformedModelingException();
+        }
+
+        asmdp.removeAll();
+
+        loadDiagram(elt, asmdp);
+    }
+
+    public void loadAvatarRD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.createAvatarRD(indexAnalysis, name);
+
+
+        TDiagramPanel tdp = mgui.getAvatarRDPanel(indexAnalysis, indexTab, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadAvatarMAD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.createAvatarMAD(indexAnalysis, name);
+
+
+        TDiagramPanel tdp = mgui.getAvatarMADPanel(indexAnalysis, indexTab, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadADDDiagram(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+
+        TraceManager.addDev("ADD 2");
+        mgui.createAvatarPD(indexAnalysis, name);
+
+        TraceManager.addDev("ADD 3");
+        TDiagramPanel tdp = mgui.getAvatarADDPanel(indexAnalysis, indexTab, name);
+
+        TraceManager.addDev("ADD 3.1");
 
-		name = elt.getAttribute("name");
-		mgui.createAvatarCD(indexAnalysis, name);
+        if (tdp == null) {
+            TraceManager.addDev("ADD 3.2");
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+        TraceManager.addDev("ADD 4");
 
-		TDiagramPanel tdp = mgui.getAvatarCDPanel(indexAnalysis, indexTab, name);
+        loadDiagram(elt, tdp);
+        TraceManager.addDev("ADD 5");
+    }
+
+    public void loadAvatarPD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.createAvatarPD(indexAnalysis, name);
+
+        TDiagramPanel tdp = mgui.getAvatarPDPanel(indexAnalysis, indexTab, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadAvatarCD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.createAvatarCD(indexAnalysis, name);
+
+        TDiagramPanel tdp = mgui.getAvatarCDPanel(indexAnalysis, indexTab, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadAvatarAD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
 
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
+        name = elt.getAttribute("name");
+        mgui.createAvatarAD(indexAnalysis, name);
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadAvatarAD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
+        TDiagramPanel tdp = mgui.getAvatarADPanel(indexAnalysis, indexTab, name);
 
-		name = elt.getAttribute("name");
-		mgui.createAvatarAD(indexAnalysis, name);
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
 
-		TDiagramPanel tdp = mgui.getAvatarADPanel(indexAnalysis, indexTab, name);
+        loadDiagram(elt, tdp);
+    }
 
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
+    // TURTLE Design
+    public void loadTClassDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-		loadDiagram(elt, tdp);
-	}
+        String name;
+        TDiagramPanel tdp;
 
-	// TURTLE Design
-	public void loadTClassDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        // class diagram name
+        name = elt.getAttribute("name");
+        mgui.setClassDiagramName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
 
-		String name;
-		TDiagramPanel tdp;
+        loadDiagram(elt, tdp);
+    }
 
-		// class diagram name
-		name = elt.getAttribute("name");
-		mgui.setClassDiagramName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
+    public void loadTActivityDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        String name;
 
-		loadDiagram(elt, tdp);
-	}
+        name = elt.getAttribute("name");
+        TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(indexDesign, name);
 
-	public void loadTActivityDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
-		String name;
+        if (tadp == null) {
+            throw new MalformedModelingException();
+        }
 
-		name = elt.getAttribute("name");
-		TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(indexDesign, name);
+        tadp.removeAll();
 
-		if (tadp == null) {
-			throw new MalformedModelingException();
-		}
+        loadDiagram(elt, tadp);
+    }
 
-		tadp.removeAll();
+    public void loadDiplodocusMethodologyDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-		loadDiagram(elt, tadp);
-	}
+        String name;
+        TDiagramPanel tdp;
 
-	public void loadDiplodocusMethodologyDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        // Diagram name
+        name = elt.getAttribute("name");
+        mgui.setDiplodocusMethodologyDiagramName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
+        tdp.setName(name);
 
-		String name;
-		TDiagramPanel tdp;
+        TraceManager.addDev("tdp=" + tdp.getName());
 
-		// Diagram name
-		name = elt.getAttribute("name");
-		mgui.setDiplodocusMethodologyDiagramName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
-		tdp.setName(name);
+        loadDiagram(elt, tdp);
+    }
 
-		TraceManager.addDev("tdp=" + tdp.getName());
+    public void loadAvatarMethodologyDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadAvatarMethodologyDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        String name;
+        TDiagramPanel tdp;
 
-		String name;
-		TDiagramPanel tdp;
+        // class diagram name
+        name = elt.getAttribute("name");
+        mgui.setAvatarMethodologyDiagramName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
+        tdp.setName(name);
 
-		// class diagram name
-		name = elt.getAttribute("name");
-		mgui.setAvatarMethodologyDiagramName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
-		tdp.setName(name);
+        //TraceManager.addDev("tdp=" + tdp.getName());
 
-		//TraceManager.addDev("tdp=" + tdp.getName());
+        loadDiagram(elt, tdp);
+    }
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadTMLTaskDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+    public void loadTMLTaskDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-		String name;
-		TDiagramPanel tdp;
+        String name;
+        TDiagramPanel tdp;
 
-		// class diagram name
-		name = elt.getAttribute("name");
-		mgui.setTMLTaskDiagramName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
+        // class diagram name
+        name = elt.getAttribute("name");
+        mgui.setTMLTaskDiagramName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
 
-		//TraceManager.addDev("tdp=" + tdp.getName());
+        //TraceManager.addDev("tdp=" + tdp.getName());
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadTMLComponentTaskDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        loadDiagram(elt, tdp);
+    }
 
-		String name;
-		TDiagramPanel tdp;
+    public void loadTMLComponentTaskDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-		// Diagram name
-		name = elt.getAttribute("name");
-		mgui.setTMLComponentTaskDiagramName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
+        String name;
+        TDiagramPanel tdp;
 
-		//TraceManager.addDev("tdp=" + tdp.getName());
+        // Diagram name
+        name = elt.getAttribute("name");
+        mgui.setTMLComponentTaskDiagramName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
 
-		loadDiagram(elt, tdp);
-		
-		((TMLComponentTaskDiagramPanel)tdp).hideConnectors();
-		((TMLComponentTaskDiagramPanel)tdp).updatePorts();
-	}
-	
-	public void loadTMLArchitectureDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        //TraceManager.addDev("tdp=" + tdp.getName());
 
-		String name;
-		TDiagramPanel tdp;
+        loadDiagram(elt, tdp);
 
-		// Diagram name
-		name = elt.getAttribute("name");
-		mgui.setTMLArchitectureDiagramName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
+        ((TMLComponentTaskDiagramPanel)tdp).hideConnectors();
+        ((TMLComponentTaskDiagramPanel)tdp).updatePorts();
+    }
 
-		//TraceManager.addDev("tdp=" + tdp.getName());
+    public void loadTMLArchitectureDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-		loadDiagram(elt, tdp);
-	}
+        String name;
+        TDiagramPanel tdp;
 
-	public void loadTMLActivityDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
-		String name;
+        // Diagram name
+        name = elt.getAttribute("name");
+        mgui.setTMLArchitectureDiagramName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
 
-		name = elt.getAttribute("name");
-		
-		//TraceManager.addDev("getting tmladp: " + name);
-		TMLActivityDiagramPanel tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, name);
-		//TraceManager.addDev("Got tmladp");
-		
-		
-		if (tmladp == null) {
-			//TraceManager.addDev("null tmladp");
-			throw new MalformedModelingException();
-		}
+        //TraceManager.addDev("tdp=" + tdp.getName());
 
-		tmladp.removeAll();
+        loadDiagram(elt, tdp);
+    }
 
-		loadDiagram(elt, tmladp);
-	}
+    public void loadTMLActivityDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        String name;
 
-	public void loadTURTLEOSClassDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        name = elt.getAttribute("name");
 
-		String name;
-		TDiagramPanel tdp;
+        //TraceManager.addDev("getting tmladp: " + name);
+        TMLActivityDiagramPanel tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, name);
+        //TraceManager.addDev("Got tmladp");
 
-		// class diagram name
-		name = elt.getAttribute("name");
-		mgui.setTMLTaskDiagramName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
-		loadDiagram(elt, tdp);
-	}
 
-	public void loadTURTLEOSActivityDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
-		String name;
+        if (tmladp == null) {
+            //TraceManager.addDev("null tmladp");
+            throw new MalformedModelingException();
+        }
 
-		name = elt.getAttribute("name");
-		TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(indexDesign, name);
+        tmladp.removeAll();
 
-		if (tosadp == null) {
-			throw new MalformedModelingException();
-		}
+        loadDiagram(elt, tmladp);
+    }
 
-		tosadp.removeAll();
+    public void loadTURTLEOSClassDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-		loadDiagram(elt, tosadp);
-	}
+        String name;
+        TDiagramPanel tdp;
 
-	public void loadProactiveCSD(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        // class diagram name
+        name = elt.getAttribute("name");
+        mgui.setTMLTaskDiagramName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
+        loadDiagram(elt, tdp);
+    }
 
-		String name;
-		TDiagramPanel tdp;
+    public void loadTURTLEOSActivityDiagram(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
+        String name;
 
-		// class diagram name
-		name = elt.getAttribute("name");
-		//  mgui.setProacticeCSDName(indexDesign, name);
-		tdp = mgui.getMainTDiagramPanel(indexDesign);
-		//ProactiveDesignPanel pdp=(ProactiveDesignPanel) mgui.getCurrentTURTLEPanel();
-		ProactiveDesignPanel pdp=(ProactiveDesignPanel) tdp.tp;
-		if (!tdp.getName().equals(name))
-		{
+        name = elt.getAttribute("name");
+        TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(indexDesign, name);
 
-			//tdp=pdp.addCompositeStructureDiagram(name);
-			tdp=pdp.addProActiveCompSpecificationPanel(name);
-		}
+        if (tosadp == null) {
+            throw new MalformedModelingException();
+        }
 
-		//TraceManager.addDev("tdp=" + tdp.getName());
+        tosadp.removeAll();
 
-		loadDiagram(elt, tdp);
+        loadDiagram(elt, tosadp);
+    }
 
-	}
+    public void loadProactiveCSD(Element elt, int indexDesign) throws  MalformedModelingException, SAXException {
 
-	public void loadProactiveSMD(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
-		String name;
+        String name;
+        TDiagramPanel tdp;
 
-		name = elt.getAttribute("name");
-		if (!(mgui.isProActiveSMDCreated(indexAnalysis, name))) {
-			mgui.createProActiveSMD(indexAnalysis, name);
-		}
-		ProactiveSMDPanel smd = mgui.getSMDPanel(indexAnalysis, name);
+        // class diagram name
+        name = elt.getAttribute("name");
+        //  mgui.setProacticeCSDName(indexDesign, name);
+        tdp = mgui.getMainTDiagramPanel(indexDesign);
+        //ProactiveDesignPanel pdp=(ProactiveDesignPanel) mgui.getCurrentTURTLEPanel();
+        ProactiveDesignPanel pdp=(ProactiveDesignPanel) tdp.tp;
+        if (!tdp.getName().equals(name))
+            {
 
-		if (smd == null) {
-			throw new MalformedModelingException();
-		}
+                //tdp=pdp.addCompositeStructureDiagram(name);
+                tdp=pdp.addProActiveCompSpecificationPanel(name);
+            }
 
-		smd.removeAll();
+        //TraceManager.addDev("tdp=" + tdp.getName());
 
-		loadDiagram(elt, smd);
-	}
+        loadDiagram(elt, tdp);
 
-	public void loadIODiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
-		String name;
+    }
 
-		name = elt.getAttribute("name");
-		//mgui.setIODName(indexAnalysis, name);
-		if (!(mgui.isIODCreated(indexAnalysis, name))) {
-			mgui.createIODiagram(indexAnalysis, name);
-		}
+    public void loadProactiveSMD(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
+        String name;
 
-		TDiagramPanel tdp = mgui.getIODiagramPanel(indexAnalysis, name);
+        name = elt.getAttribute("name");
+        if (!(mgui.isProActiveSMDCreated(indexAnalysis, name))) {
+            mgui.createProActiveSMD(indexAnalysis, name);
+        }
+        ProactiveSMDPanel smd = mgui.getSMDPanel(indexAnalysis, name);
 
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
+        if (smd == null) {
+            throw new MalformedModelingException();
+        }
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadTMLCPDiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
-		String name;
+        smd.removeAll();
 
-		name = elt.getAttribute("name");
-		if (!(mgui.isTMLCPCreated(indexAnalysis, name))) {
-			mgui.createTMLCPDiagram(indexAnalysis, name);
-		}
+        loadDiagram(elt, smd);
+    }
 
-		TDiagramPanel tdp = mgui.getTMLCPDiagramPanel(indexAnalysis, name);
+    public void loadIODiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
+        String name;
 
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
+        name = elt.getAttribute("name");
+        //mgui.setIODName(indexAnalysis, name);
+        if (!(mgui.isIODCreated(indexAnalysis, name))) {
+            mgui.createIODiagram(indexAnalysis, name);
+        }
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadTMLSDDiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
-		String name;
+        TDiagramPanel tdp = mgui.getIODiagramPanel(indexAnalysis, name);
 
-		name = elt.getAttribute("name");
-		if (!(mgui.isTMLCPSDCreated(indexAnalysis, name))) {
-			mgui.createTMLCPSequenceDiagram(indexAnalysis, name);
-		}
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
 
-		TDiagramPanel tdp = mgui.getTMLCPSDDiagramPanel(indexAnalysis, name);
+        loadDiagram(elt, tdp);
+    }
 
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
+    public void loadTMLCPDiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
+        String name;
 
-		loadDiagram(elt, tdp);
-	}
+        name = elt.getAttribute("name");
+        if (!(mgui.isTMLCPCreated(indexAnalysis, name))) {
+            mgui.createTMLCPDiagram(indexAnalysis, name);
+        }
 
-	public void loadRequirementDiagram(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
+        TDiagramPanel tdp = mgui.getTMLCPDiagramPanel(indexAnalysis, name);
 
-		name = elt.getAttribute("name");
-		mgui.createRequirementDiagram(indexAnalysis, name);
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
 
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadTMLSDDiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        if (!(mgui.isTMLCPSDCreated(indexAnalysis, name))) {
+            mgui.createTMLCPSequenceDiagram(indexAnalysis, name);
+        }
+
+        TDiagramPanel tdp = mgui.getTMLCPSDDiagramPanel(indexAnalysis, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadRequirementDiagram(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.createRequirementDiagram(indexAnalysis, name);
+
+
+        TDiagramPanel tdp = mgui.getRequirementDiagramPanel(indexAnalysis, indexTab, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadEBRDD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.createEBRDD(indexAnalysis, name);
+
+
+        TDiagramPanel tdp = mgui.getEBRDDPanel(indexAnalysis, indexTab, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadAttackTreeDiagram(Element elt, int indexDiag) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.createAttackTreeDiagram(indexDiag, name);
+
+        TDiagramPanel tdp = mgui.getAttackTreeDiagramPanel(indexDiag, name);
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        tdp.removeAll();
+
+        loadDiagram(elt, tdp);
+    }
 
-		TDiagramPanel tdp = mgui.getRequirementDiagramPanel(indexAnalysis, indexTab, name);
+    public void loadSequenceDiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
+        String name;
 
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
+        name = elt.getAttribute("name");
+        if (!(mgui.isSDCreated(indexAnalysis, name))) {
+            mgui.createSequenceDiagram(indexAnalysis, name);
+        }
+        //TraceManager.addDev("Loading seq diag1");
+        SequenceDiagramPanel sdp = mgui.getSequenceDiagramPanel(indexAnalysis, name);
+        //TraceManager.addDev("Loading seq diag2");
 
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadEBRDD(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
+        if (sdp == null) {
+            throw new MalformedModelingException();
+        }
+        //TraceManager.addDev("Loading seq diag3");
 
-		name = elt.getAttribute("name");
-		mgui.createEBRDD(indexAnalysis, name);
+        sdp.removeAll();
+        //TraceManager.addDev("Loading seq diag4");
 
-
-		TDiagramPanel tdp = mgui.getEBRDDPanel(indexAnalysis, indexTab, name);
-
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
-
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadAttackTreeDiagram(Element elt, int indexDiag) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		mgui.createAttackTreeDiagram(indexDiag, name);
-		
-		TDiagramPanel tdp = mgui.getAttackTreeDiagramPanel(indexDiag, name);
-
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		tdp.removeAll();
-
-		loadDiagram(elt, tdp);
-	}
-
-	public void loadSequenceDiagram(Element elt, int indexAnalysis) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		if (!(mgui.isSDCreated(indexAnalysis, name))) {
-			mgui.createSequenceDiagram(indexAnalysis, name);
-		}
-		//TraceManager.addDev("Loading seq diag1");
-		SequenceDiagramPanel sdp = mgui.getSequenceDiagramPanel(indexAnalysis, name);
-		//TraceManager.addDev("Loading seq diag2");
-
-		if (sdp == null) {
-			throw new MalformedModelingException();
-		}
-		//TraceManager.addDev("Loading seq diag3");
-
-		sdp.removeAll();
-		//TraceManager.addDev("Loading seq diag4");
-
-		loadDiagram(elt, sdp);
-		//TraceManager.addDev("Loading seq diag5");
-	}
-
-	public void loadUseCaseDiagram(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		/*if (!(mgui.isUCDCreated(indexAnalysis, name))) {*/
-		mgui.createUseCaseDiagram(indexAnalysis, name);
-		//}
-		UseCaseDiagramPanel ucdp = mgui.getUseCaseDiagramPanel(indexAnalysis, indexTab, name);
-
-		if (ucdp == null) {
-			throw new MalformedModelingException();
-		}
-
-		ucdp.removeAll();
-
-		loadDiagram(elt, ucdp);
-	}
-
-	public void loadTDeploymentDiagram(Element elt, int indexDeployment) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		mgui.setDeploymentName(indexDeployment, name);
-		TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexDeployment);
-
-		loadDiagram(elt, tdp);
-	}
-	
-	public void loadNCDiagram(Element elt, int indexNC) throws  MalformedModelingException, SAXException {
-		String name;
-
-		name = elt.getAttribute("name");
-		mgui.setNCName(indexNC, name);
-		TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexNC);
-
-		loadDiagram(elt, tdp);
-	}
-
-	// reinit the id of all components
-	public void makeLovelyIds() {
-		TDiagramPanel tdp;
-		int id = 1;
-		int i, j;
-		TURTLEPanel tp;
-		// search for diagram panels
-		for(i=0; i<panels.size(); i++) {
-			tp = (TURTLEPanel)(panels.elementAt(i));
-			for(j=0; j<tp.panels.size(); j++) {
-				tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-				id = tdp.makeLovelyIds(id);
-				//TraceManager.addDev("Lovely id =" + id);
-			}
-		}
-
-		TGComponent.setGeneralId(id + 1);
-	}
-	
-	public void loadDiagramInformation(Element elt, TDiagramPanel tdp) throws  MalformedModelingException {
-		int x, y;
-		double zoom = 0;
-		try {
-			x = Integer.decode(elt.getAttribute("minX")).intValue();
-			tdp.setMinX(x);
-			x = Integer.decode(elt.getAttribute("maxX")).intValue();
-			tdp.setMaxX(x);
-			y = Integer.decode(elt.getAttribute("minY")).intValue();
-			tdp.setMinY(y);
-			y = Integer.decode(elt.getAttribute("maxY")).intValue();
-			tdp.setMaxY(y);
-			tdp.updateSize();
-			zoom = Double.parseDouble(elt.getAttribute("zoom"));
-			if (zoom != 0) {
-				tdp.setZoom(zoom);
-				mgui.updateZoomInfo();
-			}
-		} catch (Exception e) {
-			// Model was saved in an older version of TTool
-		}
-		
-		if (tdp instanceof TActivityDiagramPanel) {
-			((TActivityDiagramPanel)tdp).loadExtraParameters(elt);
-		}
-	}
-
-	public void loadActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException {
-		//TraceManager.addDev("---> Load activity diagram");
-		try {
-			NodeList activityDiagramNl = docCopy.getElementsByTagName("TActivityDiagramPanel");
-
-			TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue);
-			TraceManager.addDev(""+docCopy);
-
-			if (activityDiagramNl == null) {
-				throw new MalformedModelingException();
-			}
-
-			Node adn;
-			Element elt;
-			TActivityDiagramPanel tadp;
-			String name;
-			int decXTmp = decX;
-			int decYTmp = decY;
-			int decIdTmp = decId;
-
-			for(int i=0; i<activityDiagramNl.getLength(); i++) {
-				adn = activityDiagramNl.item(i);
-				if (adn.getNodeType() == Node.ELEMENT_NODE) {
-					elt = (Element) adn;
-					// class diagram name
-					name = elt.getAttribute("name");
-					//TraceManager.addDev("Name of activity diagram=" + name);
-
-					if (name.equals(oldValue)) {
-						int indexDesign = mgui.getMajorIndexOf(tdp);
-
-						if (indexDesign < 0) {
-							throw new MalformedModelingException();
-						}
-
-						tadp = mgui.getActivityDiagramPanel(indexDesign, newValue);
-
-						//TraceManager.addDev("Searching panel");
-
-						if (tadp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//TraceManager.addDev("Panel ok");
-
-						decX = 0; decY = 0; decId = 0;
-						
-						
-
-						tadp.removeAll();
-						
-						loadDiagramInformation(elt, tadp);
-						
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(tadp);
-						tadp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(tadp, 0);
-					}
-				}
-			}
-			decX = decXTmp;
-			decY = decYTmp;
-			decId = decIdTmp;
-		} catch (SAXException saxe) {
-			TraceManager.addError("Loading 701 " + saxe.getMessage());
-			throw new MalformedModelingException();
-		}
-	}
-	
-	public void loadAvatarSMD(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException {
-		TraceManager.addDev("---> Load activity diagram of old=" + oldValue + " new=" + newValue);
-		try {
-			NodeList smdNl = docCopy.getElementsByTagName("AVATARStateMachineDiagramPanel");
-
-			//TraceManager.addDev("Loading state machine diagram of " + newValue + " Before : " + oldValue);
-			//TraceManager.addDev("smdNL: " + smdNl);
-
-			if (smdNl == null) {
-				TraceManager.addDev("AVATAR: null doc");
-				throw new MalformedModelingException();
-			}
-
-			Node adn;
-			Element elt;
-			AvatarSMDPanel asmdp;
-			String name;
-			int decXTmp = decX;
-			int decYTmp = decY;
-			int decIdTmp = decId;
-
-			for(int i=0; i<smdNl.getLength(); i++) {
-				adn = smdNl.item(i);
-				if (adn.getNodeType() == Node.ELEMENT_NODE) {
-					elt = (Element) adn;
-					// class diagram name
-					name = elt.getAttribute("name");
-					TraceManager.addDev("Name of activity diagram=" + name);
-
-					if (name.equals(oldValue)) {
-						int indexDesign = mgui.getMajorIndexOf(tdp);
-
-						if (indexDesign < 0) {
-							throw new MalformedModelingException();
-						}
-
-						asmdp = mgui.getAvatarSMDPanel(indexDesign, newValue);
-
-						TraceManager.addDev("Searching panel: " + newValue);
-
-						if (asmdp == null) {
-							throw new MalformedModelingException();
-						}
-
-						TraceManager.addDev("Panel ok");
-
-						decX = 0; decY = 0; decId = 0;
-						
-						
-						asmdp.removeAll();
-						
-						loadDiagramInformation(elt, asmdp);
-						
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp);
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
-						connectConnectorsToRealPoints(asmdp);
-						asmdp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
-						makePostLoading(asmdp, 0);
-					}
-				}
-			}
-			decX = decXTmp;
-			decY = decYTmp;
-			decId = decIdTmp;
-		} catch (SAXException saxe) {
-			TraceManager.addError("Loading 801 " + saxe.getMessage());
-			throw new MalformedModelingException();
-		}
-	}
-
-	public void loadTMLActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException {
-		//TraceManager.addDev("---> Load TML activity diagram");
-		try {
-			if (docCopy == null) {
-				TraceManager.addDev("Null doc copy");
-			}
-			NodeList activityDiagramNl = docCopy.getElementsByTagName("TMLActivityDiagramPanel");
-
-			//TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue);
-
-			if (activityDiagramNl == null) {
-				//TraceManager.addDev("Null");
-				throw new MalformedModelingException();
-			}
-
-			Node adn;
-			Element elt;
-			TMLActivityDiagramPanel tmladp;
-			String name;
-			int decXTmp = decX;
-			int decYTmp = decY;
-			int decIdTmp = decId;
-
-			for(int i=0; i<activityDiagramNl.getLength(); i++) {
-				adn = activityDiagramNl.item(i);
-				if (adn.getNodeType() == Node.ELEMENT_NODE) {
-					elt = (Element) adn;
-					// class diagram name
-					name = elt.getAttribute("name");
-					//TraceManager.addDev("Name of activity diagram=" + name);
-
-					if (name.equals(oldValue)) {
-						int indexDesign = mgui.getMajorIndexOf(tdp);
-
-						if (indexDesign < 0) {
-							throw new MalformedModelingException();
-						}
-
-						tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, newValue);
-
-						//TraceManager.addDev("Searching panel");
-
-						if (tmladp == null) {
-							throw new MalformedModelingException();
-						}
-
-						//TraceManager.addDev("Panel ok");
-
-						decX = 0; decY = 0; decId = 0;
-
-						tmladp.removeAll();
-						
-						loadDiagramInformation(elt, tmladp);
-						
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components");
-						makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp);
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors");
-						makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp);
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents");
-						makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp);
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " real points");
-						connectConnectorsToRealPoints(tmladp);
-						tmladp.structureChanged();
-						//TraceManager.addDev("Activity diagram : " + tmladp.getName() + " post loading");
-						makePostLoading(tmladp, 0);
-					}
-				}
-			}
-			decX = decXTmp;
-			decY = decYTmp;
-			decId = decIdTmp;
-		} catch (SAXException saxe) {
-			TraceManager.addError("Loading 901 " + saxe.getMessage());
-			throw new MalformedModelingException();
-		}
-	}
-
-	public void makePostLoading(TDiagramPanel tdp, int beginIndex) throws MalformedModelingException{
-		TGComponent tgc;
-
-		//TraceManager.addDev("Post loading of diagram " + tdp.toString());
-
-		LinkedList list = tdp.getComponentList();
-
-		for(int i=0; i<list.size()-beginIndex; i++) {
-			tgc = (TGComponent)(list.get(i));
-			//TraceManager.addDev(tgc.getName());
-			//TraceManager.addDev(tgc.getValue());
-			tgc.makePostLoading(decId);
-		}
-
-		//TraceManager.addDev("Post loading of diagram " + tdp.toString() + " achieved");
-	}
-
-	public void makeXMLComponents(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
-		Node n;
-		//Element elt;
-		TGComponent tgc;
-
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-		boolean error = false;
-		
-		for(int i=0; i<nl.getLength(); i++) {
-			n = nl.item(i);
-			if (n.getNodeType() == Node.ELEMENT_NODE) {
-				try {
-					tgc = makeXMLComponent(n, tdp);
-					//TraceManager.addDev("About to add component= " + tgc);
-					if ((tgc != null) && (tgc.getFather() == null)) {
-						//TraceManager.addDev("Component added to diagram tgc=" + tgc);
-						tdp.addBuiltComponent(tgc);
-					} else {
-						//TraceManager.addDev("Component not added to diagram");
-					}
-				} catch (MalformedModelingException mme) {
-					error = true;
-				}
-			}
-		}
-		
-		if (error) {
-			throw new MalformedModelingException();
-		}
-	}
-
-
-	public TGComponent makeXMLComponent(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
-		Element elt;
-		Element elt1;
-		//TraceManager.addDev(n.toString());
-		TGComponent tgc = null;
-		TGComponent father;
-
-		//
-		try {
-
-			NodeList nl = n.getChildNodes();
-			elt = (Element)n;
-			elt1 = elt;
-			//TraceManager.addDev("elt=" + elt);
-
-			int myType = Integer.decode(elt.getAttribute("type")).intValue();
-			int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId;
-
-			int myX = -1, myY = -1, myWidth = -1, myHeight =-1;
-			int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1;
-			int myMinX = -1, myMaxX = -1, myMinY = -1, myMaxY = -1;
-			String myName = null, myValue = null;
-			Vector tgcpList = new Vector();
-			Point p;
-			int i, x, y;
-			int fatherId = -1, fatherNum = -1;
-			String pre = "", post = "";
-			String internalComment = "";
-			boolean accessibility = false;
-			boolean invariant = false;
-			boolean breakpoint = false;
-			boolean hidden = false;
-			boolean masterMutex = false;
-
-			for(i=0; i<nl.getLength(); i++) {
-				n = nl.item(i);
-				if (n.getNodeType() == Node.ELEMENT_NODE) {
-					elt = (Element) n;
-					if (elt.getTagName().equals("cdparam")) {
-						myX = Integer.decode(elt.getAttribute("x")).intValue() + decX;
-						myY = Integer.decode(elt.getAttribute("y")).intValue() + decY;
-					} else if (elt.getTagName().equals("sizeparam")) {
-						myWidth = Integer.decode(elt.getAttribute("width")).intValue();
-						myHeight = Integer.decode(elt.getAttribute("height")).intValue();
-						myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue();
-						myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue();
-						myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue();
-						myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue();
-					} else if (elt.getTagName().equals("cdrectangleparam")) {
-						myMinX = Integer.decode(elt.getAttribute("minX")).intValue();
-						myMaxX = Integer.decode(elt.getAttribute("maxX")).intValue();
-						myMinY = Integer.decode(elt.getAttribute("minY")).intValue();
-						myMaxY = Integer.decode(elt.getAttribute("maxY")).intValue();
-					} else if (elt.getTagName().equals("infoparam")) {
-						myName = elt.getAttribute("name");
-						myValue = elt.getAttribute("value");
-					} else if (elt.getTagName().equals("hidden")) {
-						hidden = elt.getAttribute("value").equals("true");
-					} else if (elt.getTagName().equals("TGConnectingPoint")) {
-						x = Integer.decode(elt.getAttribute("num")).intValue();
-						y = Integer.decode(elt.getAttribute("id")).intValue() + decId;
-						tgcpList.add(new Point(x, y));
-					} else if (elt.getTagName().equals("father")) {
-						fatherId = Integer.decode(elt.getAttribute("id")).intValue();
-						fatherNum = Integer.decode(elt.getAttribute("num")).intValue();
-					} else if (elt.getTagName().equals("prejavacode")) {
-						pre += elt.getAttribute("value") + "\n";
-					} else if (elt.getTagName().equals("postjavacode")) {
-						post += elt.getAttribute("value") + "\n";
-					} else if (elt.getTagName().equals("InternalComment")) {
-						internalComment += elt.getAttribute("value") + "\n";
-					} else if (elt.getTagName().equals("accessibility")) {
-						accessibility = true;
-					} else if (elt.getTagName().equals("invariant")) {
-						invariant = true;
-					} else if (elt.getTagName().equals("mastermutex")) {
-						masterMutex = true;
-					} else if (elt.getTagName().equals("breakpoint")) {
-						breakpoint = true;
-					}
-				}
-			}
-
-			if ((myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1)) {
-				throw new MalformedModelingException();
-			}
-
-			//TraceManager.addDev("Making TGComponent of type " + myType + " and of name " + myName);
-			//TGComponent is ready to be built
-			if(fatherId != -1) {
-				fatherId += decId;
-				// internal component
-				//TraceManager.addDev("I am " + myName);
-				//TraceManager.addDev("Searching for component with id " + fatherId);
-				father = tdp.findComponentWithId(fatherId);
-				if (father == null) {
-					throw new MalformedModelingException();
-				}
-
-				//TraceManager.addDev("Done");
-				//TraceManager.addDev("Father My value is " + father.getValue());
-				//TraceManager.addDev("My class is " + father.getClass());
-
-				//TraceManager.addDev("Searching for component " + fatherNum + " at " + tgc.getName());
-				tgc = father.getInternalTGComponent(fatherNum);
-
-				if (tgc == null) {
-					// To be added to its father -> swallow component
-					if (father instanceof SwallowTGComponent) {
-						//TraceManager.addDev("1 Must add the component to its father:");
-						tgc = TGComponentManager.addComponent(myX, myY, myType, tdp);
-						//TraceManager.addDev("2 Must add the component to its father:" + tgc);
-						if (tgc instanceof SwallowedTGComponent) {
-							//TraceManager.addDev("3 Must add the component to its father:");
-							((SwallowTGComponent)father).addSwallowedTGComponent(tgc, myX, myY);
-							//TraceManager.addDev("Swallowed to father = " + father.getValue() + ". My name=" + myName + " decId=" + decId);
-						} else {
-							throw new MalformedModelingException();
-						}
-					} else {
-						throw new MalformedModelingException();
-					}
-				}
-
-				if (tgc != null) {
-					tgc.setCdRectangle(myMinX, myMaxX, myMinY, myMaxY);
-					tgc.setCd(myX, myY);
-					//TraceManager.addDev("set cd of " + tgc.getName());
-				}
-			} else {
-				tgc = TGComponentManager.addComponent(myX, myY, myType, tdp);
-			}
-			//TraceManager.addDev("TGComponent built " + myType);
-
-			if (tgc == null) {
-				throw new MalformedModelingException();
-			}
-
-			if (myName != null) {
-				tgc.setName(myName);
-			}
-			
-			tgc.setHidden(hidden);
-
-			/*if (tgc instanceof TCDTObject) {
-                TraceManager.addDev("Loading " + myValue);
-            }*/
-
-			String oldClassName = myValue;
-			//TraceManager.addDev("Old class name=" + oldClassName);
-			//Added by Solange
-			if ((myValue != null) && (!myValue.equals(null))){
-				if (tgc instanceof ProCSDComponent)
-				{
-					//Added by Solange
-					//And removed by emil 
-					//myValue=generateNameIfInUse(myValue); 
-					//  tgc.setValueWithChange(myValue);
-					//TraceManager.addDev("myValue=" + myValue);
-				}
-				//until here            	           	           		
-				if ((tgc instanceof TCDTClass) && (decId >0)){
-					if (tdp.isAlreadyATClassName(myValue)) {
-						myValue = tdp.findTClassName(myValue+"_");
-					}
-				}
-				if ((tgc instanceof TMLTaskOperator) && (decId >0)){
-					if (tdp.isAlreadyATMLTaskName(myValue)) {
-						myValue = tdp.findTMLTaskName(myValue+"_");
-					}
-				}
-				
-				if ((tgc instanceof AvatarBDBlock) && (decId >0)){
-					if (tdp.isAlreadyAnAvatarBDBlockName(myValue)) {
-						myValue = tdp.findAvatarBDBlockName(myValue+"_");
-					}
-				}
-				
-				if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){
-					if (tdp.isAlreadyATMLPrimitiveComponentName(myValue)) {
-						myValue = tdp.findTMLPrimitiveComponentName(myValue+"_");
-					}
-					//TraceManager.addDev("MyValue=" + myValue);
-				}
-				if ((tgc instanceof TOSClass) && (decId >0)){
-					if (tdp.isAlreadyATOSClassName(myValue)) {
-						myValue = tdp.findTOSClassName(myValue+"_");
-					}
-				}
-				//TraceManager.addDev("myValue=" + myValue);
-				tgc.setValueWithChange(myValue);
-				//TraceManager.addDev("value done");
-				if ((tgc instanceof TCDTClass) && (decId >0)){
-					loadActivityDiagram(tdp, oldClassName, myValue);
-				}
-
-				if ((tgc instanceof AvatarBDBlock) && (decId >0)){
-					//TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue);
-					loadAvatarSMD(tdp, oldClassName, myValue);
-				}
-				
-				if ((tgc instanceof TMLTaskOperator) && (decId >0)){
-					//TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue);
-					loadTMLActivityDiagram(tdp, oldClassName, myValue);
-				}
-				
-				if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){
-					//TraceManager.addDev("Going to load ad of component " + oldClassName + " myValue=" + myValue);
-					loadTMLActivityDiagram(tdp, oldClassName, myValue);
-				}
-			}
-
-			tgc.forceId(myId);
-			tgc.setLoaded(true);
-			tgc.setInternalLoaded(false);
-			tgc.setMinSize(myMinWidth, myMinHeight);
-			tgc.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight);
-			tgc.resize(myWidth, myHeight);
-			tgc.hasBeenResized();
-			
-			//TraceManager.addDev("Options set");
-
-			if (pre.compareTo("") != 0) {
-				tgc.setPreJavaCode(pre);
-			}
-			if (post.compareTo("") != 0) {
-				tgc.setPostJavaCode(post);
-			}
-			
-			if (internalComment.compareTo("") != 0) {
-				tgc.setInternalComment(internalComment);
-			}
-			
-			if (accessibility) {
-				tgc.setCheckableAccessibility(accessibility);
-			
-			}
-			
-			if (invariant) {
-				tgc.setCheckableInvariant(invariant);
-			}
-			
-			if (masterMutex) {
-				tgc.setMasterMutex(true);
-			}
-			
-			if (breakpoint) {
-				tgc.setBreakpoint(breakpoint);
-			}
-
-			//extra param
-			//TraceManager.addDev("Extra params" + tgc.getClass());
-			//TraceManager.addDev("My value = " + tgc.getValue());
-			tgc.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId);
-			//TraceManager.addDev("Extra param ok");
-
-			if ((tgc instanceof TCDTObject) && (decId > 0)) {
-				TCDTObject to = (TCDTObject)tgc;
-				//TraceManager.addDev("Setting TObject name to: " + to.getObjectName());
-				//TraceManager.addDev("Setting TObject name to: " + tdp.findTObjectName(to.getObjectName()));
-				to.setObjectName(tdp.findTObjectName(to.getObjectName()));
-			}
-
-			//TraceManager.addDev(tgc.toString());
-
-			//TraceManager.addDev("Making connecting points " + tgcpList.size());
-			for(i=0; i<tgcpList.size(); i++) {
-				p = (Point)(tgcpList.elementAt(i));
-				if (!tgc.setIdTGConnectingPoint(p.x, p.y)) {
-					//TraceManager.addDev("Warning: a connecting point has been removed");
-					//throw new MalformedModelingException();
-				}
-			}
-
-			//TraceManager.addDev("Not yet except!");
-			if (decId >0) {
-				tdp.bringToFront(tgc);
-			}
-			//TraceManager.addDev("Connecting points done " + myType);
-
-			/*if (tgc instanceof TCDTObject) {
-                TraceManager.addDev("getValue " + tgc.getValue());
-            }*/
-
-		} catch (Exception e) {
-			TraceManager.addError("Exception XML Component "/* + e.getMessage() + "trace=" + e.getStackTrace()*/);
-			throw new MalformedModelingException();
-		}
-		return tgc;
-	}
-
-	//method added by Solange
-	    
-	public String generateNameIfInUse(String myName)
-	{
-		if (!(mgui.getCurrentTURTLEPanel().nameInUse(myName)))
-		{
-			return myName;
-		}
-
-		String other;
-		for(int w=0; w<100000; w++)
-		{
-			other = myName + "_" + w;
-			if (!(mgui.getCurrentTURTLEPanel().nameInUse(other)))
-			{
-				return other;
-			}
-		}
-		return null;
-	}
-	//until here 	
-
-	public void makePostProcessing(TDiagramPanel tdp) throws MalformedModelingException{
-		//TraceManager.addDev("Make post processing!");
-		if (tdp instanceof TClassDiagramPanel) {
-			((TClassDiagramPanel)tdp).makePostLoadingProcessing();
-		}
-		//TraceManager.addDev("Post processing is over");
-	}
-
-	public void makeXMLConnectors(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
-		Node n;
-		//Element elt;
-		TGConnector tgco = null;
-		int i;
-
-		if (tdp == null) {
-			throw new MalformedModelingException();
-		}
-
-		for(i=0; i<nl.getLength(); i++) {
-			n = nl.item(i);
-			if (n.getNodeType() == Node.ELEMENT_NODE) {
-				tgco = makeXMLConnector(n, tdp);
-				if (tgco != null) {
-					tdp.addBuiltConnector(tgco);
-				} else {
-					TraceManager.addDev("Connector error");
-					throw new MalformedModelingException();
-				}
-			}
-		}
-	}
-
-	public void connectConnectorsToRealPoints(TDiagramPanel tdp) throws MalformedModelingException {
-		LinkedList list = tdp.getComponentList();
-		TGConnectingPoint p1, p2, p3, p4;
-		//TGConnectingPointTmp p;
-		int i;
-		TGComponent tgc;
-		//TGComponent tgctmp;
-		TGConnector tgco = null;
-		//boolean error = false;
-		TGConnectorInfo tgcoinfo;
-		
-
-		//connect connectors to their real connecting point
-		//TraceManager.addDev("Valid connectors ?");
-		for(i=0; i<list.size(); i++) {
-			tgc = (TGComponent)(list.get(i));
-			if (tgc instanceof TGConnector) {
-				tgco = (TGConnector)tgc;
-				p1 = tgco.getTGConnectingPointP1();
-				p2 = tgco.getTGConnectingPointP2();
-				if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){
-					//TraceManager.addDev("Searching for id " + p1.getId());
-					p3 = tdp.findConnectingPoint(p1.getId());
-					//TraceManager.addDev("Searching for id " + p2.getId());
-					p4 = tdp.findConnectingPoint(p2.getId());
-					if (((p3 ==null) || (p4 == null)) &&(decId != 0)) {
-						if (list.remove(tgc)) {
-							i --;
-						} else {
-							throw new MalformedModelingException();
-						}
-					} else {
-						if ((p3 == null) ||(p4 == null)) {
-							//warning = true;
-							if (p3 == null) {
-								//TraceManager.addDev("Error on first id");
-							}
-							if (p4 == null) {
-								//TraceManager.addDev("Error on second id");
-							}
-							tgcoinfo = new TGConnectorInfo();
-							tgcoinfo.connector = tgco;
-							pendingConnectors.add(tgcoinfo);
-							TraceManager.addDev("One connector added to pending list");
-						} else {
-							tgco.setP1(p3);
-							p3.setFree(false);
-							tgco.setP2(p4);
-							p4.setFree(false);
-						}
-					}
-				}
-			}
-		}
-		
-		/*for(TGConnector con: connectorsToRemove) {
-			list.remove(con);
-		}*/
-		
-		/*if (error) {
-			TraceManager.addDev("Connecting error: " + connectorsToRemove.size()  + " connectors have been removed");
-			throw new MalformedModelingException();
-		}*/
-	}
-	
-	public void makeLastLoad() {
-		// Update references on all diagrams
-		//TraceManager.addDev("Updating ports");
-		//mgui.updateAllPorts();
-		
-		// Update ports on all diagrams
-		//TraceManager.addDev("Updating references / ports");
-		mgui.updateAllReferences();
-		
-		mgui.updateAllPorts();
-		
-		//TraceManager.addDev("Pending connectors");
-		// Make use of pending connectors
-		TGConnectingPoint p1, p2, p3, p4;
-		TDiagramPanel tdp;
-		TGConnector tgco;
-		for(TGConnectorInfo info: pendingConnectors) {
-			tgco = info.connector;
-			if (tgco != null) {
-				tdp = tgco.getTDiagramPanel();
-				if (tdp != null) {
-					p1 = tgco.getTGConnectingPointP1();
-					p2 = tgco.getTGConnectingPointP2();
-					if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){
-						TraceManager.addDev("Searching for id " + p1.getId());
-						p3 = tdp.findConnectingPoint(p1.getId());
-						TraceManager.addDev("Searching for id " + p2.getId());
-						p4 = tdp.findConnectingPoint(p2.getId());
-						if ((p3 == null) ||(p4 == null)) {
-							//warning = true;
-							if (p3 == null) {
-								TraceManager.addDev("Error on first id");
-							}
-							if (p4 == null) {
-								TraceManager.addDev("Error on second id");
-							}
-							TraceManager.addDev("One connector ignored");
-						} else {
-							tgco.setP1(p3);
-							p3.setFree(false);
-							tgco.setP2(p4);
-							p4.setFree(false);
-						}
-					}
-				}
-			}
-		}
-		pendingConnectors.clear();
-		//TraceManager.addDev("Last load done");
-	}
-
-	public TGConnector makeXMLConnector(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
-		Element elt, elt1;
-		TGConnector tgco = null;
-		//TGComponent tgc = null;
-
-		//TraceManager.addDev(n.toString());
-
-		try {
-
-			NodeList nl = n.getChildNodes();
-			elt = (Element)n;
-			elt1 = elt;
-
-			int myType = Integer.decode(elt.getAttribute("type")).intValue();
-			int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId;
-
-			int myX = -1, myY = -1, myWidth = -1, myHeight =-1;
-			int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1;
-			int myMaxWidth = -1, myMaxHeight = -1;
-			String myName = null, myValue = null;
-			int tmpx, tmpy, tmpid;
-			TGConnectingPoint p1 = null, p2=null;
-			Vector pointList = new Vector();
-
-			Vector tgcpList = new Vector();
-			Point p;
-			int i, x, y;
-			//int fatherId = -1, fatherNum = -1;
-			boolean automaticDrawing = true;
-
-			for(i=0; i<nl.getLength(); i++) {
-				n = nl.item(i);
-				if (n.getNodeType() == Node.ELEMENT_NODE) {
-					elt = (Element) n;
-					if (elt.getTagName().equals("cdparam")) {
-						myX = Integer.decode(elt.getAttribute("x")).intValue() + decX;
-						myY = Integer.decode(elt.getAttribute("y")).intValue() + decY;
-					} else if (elt.getTagName().equals("sizeparam")) {
-						myWidth = Integer.decode(elt.getAttribute("width")).intValue();
-						myHeight = Integer.decode(elt.getAttribute("height")).intValue();
-						myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue();
-						myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue();
-						if ((elt.getAttribute("maxWidth") != null) && (elt.getAttribute("maxWidth").length() > 0)) { // Test is made for compatibility with old versions
-							//TraceManager.addDev("maxWidth = " +  elt.getAttribute("maxWidth"));
-							myMaxWidth = Integer.decode(elt.getAttribute("maxWidth")).intValue();
-							myMaxHeight = Integer.decode(elt.getAttribute("maxHeight")).intValue();
-						}
-						myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue();
-						myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue();
-					} else if (elt.getTagName().equals("infoparam")) {
-						myName = elt.getAttribute("name");
-						myValue = elt.getAttribute("value");
-					} else if (elt.getTagName().equals("P1")) {
-						tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX;
-						tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY;
-						tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId;
-						TGComponent tgc1 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp);
-						p1 = new TGConnectingPointTmp(tgc1, tmpx, tmpy, tmpid);
-						//TraceManager.addDev("P1id = " + tmpid);
-					} else if (elt.getTagName().equals("P2")) {
-						tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX;
-						tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY;
-						tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId;
-						TGComponent tgc2 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp);
-						p2 = new TGConnectingPointTmp(tgc2, tmpx, tmpy, tmpid);
-						//TraceManager.addDev("P2id = " + tmpid);
-					} else if (elt.getTagName().equals("Point")) {
-						tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX;
-						tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY;
-						pointList.add(new Point(tmpx, tmpy));
-					} else if (elt.getTagName().equals("TGConnectingPoint")) {
-						x = Integer.decode(elt.getAttribute("num")).intValue();
-						y = Integer.decode(elt.getAttribute("id")).intValue() + decId;
-						tgcpList.add(new Point(x, y));
-						//TraceManager.addDev(" adding Connecting point !");
-					} else if (elt.getTagName().equals("AutomaticDrawing")) {
-						//TraceManager.addDev("AutomaticDrawing=" + elt.getAttribute("data"));
-						if (elt.getAttribute("data").compareTo("true") == 0) {
-							automaticDrawing = true;
-							//TraceManager.addDev("set to true");
-						} else {
-							automaticDrawing = false;
-						}
-						//automaticDrawing = Boolean.getBoolean(elt.getAttribute("data"));
-					}
-				}
-			}
-
-			if ((myType == -1) || (myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1) || (p1 == null) || (p2 == null)) {
-				throw new MalformedModelingException();
-			}
-
-			//TGConnector is ready to be built
-			//TraceManager.addDev("Making TGConnector of type " + myType);
-			tgco = TGComponentManager.addConnector(myX, myY, myType, tdp, p1, p2, pointList);
-			//TraceManager.addDev("TGConnector built " + myType);
-
-			if (tgco == null) {
-				TraceManager.addDev( "TGCO is null myType: " + myType );
-				throw new MalformedModelingException();
-			}
-
-			tgco.setAutomaticDrawing(automaticDrawing);
-
-			if (myName != null) {
-				tgco.setName(myName);
-			}
-			if ((myValue != null) && (!myValue.equals(null))){
-				tgco.setValueWithChange(myValue);
-			}
-
-			tgco.forceId(myId);
-			tgco.setLoaded(true);
-			tgco.setInternalLoaded(false);
-			tgco.setMinSize(myMinWidth, myMinHeight);
-			tgco.setMaxSize(myMaxWidth, myMaxHeight);
-			tgco.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight);
-			tgco.resize(myWidth, myHeight);
-
-			tgco.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId);
-
-			//TraceManager.addDev("Making connecting points " + myType);
-			for(i=0; i<tgcpList.size(); i++) {
-				p = (Point)(tgcpList.elementAt(i));
-				if (!tgco.setIdTGConnectingPoint(p.x, p.y)) {
-					throw new MalformedModelingException();
-				}
-			}
-
-			if (decId >0) {
-				tdp.bringToFront(tgco);
-			}
-
-			//TraceManager.addDev("Connecting points done " + myType);
-
-		} catch (Exception e) {
-			TraceManager.addError("Exception on connectors: HERE I AM");
-			throw new MalformedModelingException();
-		}
-		return tgco;
-	}
-
-
-
-	public boolean buildTURTLEModelingFromAnalysis(AnalysisPanel ap) throws AnalysisSyntaxException {
-
-		HMSC h;
-		//listE = new CorrespondanceTGElement();
-		checkingErrors = new Vector();
-
-		AnalysisPanelTranslator apt = new AnalysisPanelTranslator(ap, mgui);
-
-		try {
-			h = apt.translateHMSC();
-			listE = apt.getCorrespondanceTGElement();
-			checkingErrors = apt.getErrors();
-			apt.translateMSCs(h);
-			listE = apt.getCorrespondanceTGElement();
-			checkingErrors = apt.getErrors();
-		} catch (AnalysisSyntaxException ase) {
-			CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, ase.getMessage());
-			checkingErrors.add(ce);
-			throw ase;
-		}
-
-		SDTranslator sd = new SDTranslator(h);
-		checkingErrors = null;
-		warnings = new Vector();
-		//TraceManager.addDev("Step 02");
-
-		mgui.setMode(mgui.VIEW_SUGG_DESIGN_KO);
-
-		//TraceManager.addDev("Step 1");
-		try {
-			tm = sd.toTURTLEModeling();
-			tmState = 0;
-		} catch (SDTranslationException e) {
-			checkingErrors = new Vector();
-			CheckingError error = new CheckingError(CheckingError.STRUCTURE_ERROR, e.getMessage());
-			checkingErrors.add(error);
-
-			throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling");
-		}
-
-		//TraceManager.addDev("Step 2");
-
-		if (checkingErrors != null) {
-			return false;
-		}
-
-		// modeling is built
-		// Now check it !
-		//TraceManager.addDev("Step 3");
-		TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
-		checkingErrors = tmc.syntaxAnalysisChecking();
-		//TraceManager.addDev("Step 4");
-
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-			return false;
-		} else {
-			mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_OK);
-			return true;
-		}
-	}
-
-	public void generateDesign() {
-		generateDesign(tm);
-	}
-
-	public void generateDesign(TURTLEModeling tm) {
-		//TURTLEPanel tp = mgui.getCurrentTURTLEPanel();
-		nbSuggestedDesign ++;
-		TURTLEModelingDrawer tmd = new TURTLEModelingDrawer(mgui);
-		tmd.setTURTLEModeling(tm);
-		tmd.draw(nbSuggestedDesign);
-		mgui.changeMade(null, -1);
-	}
-	
-	public void generateIOD(HMSC _hmsc, MSC _msc) {
-		MSCDrawer mscd = new MSCDrawer(mgui);
-		mscd.setHMSC(_hmsc);
-		mscd.setMSC(_msc);
-		mscd.drawFromMSC(nbSuggestedDesign);
-		nbSuggestedDesign ++;
-		mgui.changeMade(null, -1);
-	}
-	
-
-	public boolean translateDeployment(DeploymentPanel dp) {
-		// Builds a TURTLE modeling from a deployment diagram
-		TraceManager.addDev("deployement");
-		checkingErrors = new Vector();
-		warnings = new Vector();
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		tm = new TURTLEModeling();
-		tmState = 0;
-		listE = new CorrespondanceTGElement();
-		mgui.reinitCountOfPanels();
-
-		Vector tclasses;
-
-		LinkedList ll;
-		ListIterator iterator, iterator2;
-
-		// First step: adding all necessary classes + their ad
-		ll = dp.tddp.getListOfNodes();
-		iterator = ll.listIterator();
-		TDDNode node;
-		Vector artifacts;
-		TDDArtifact art;
-		int i;
-		DesignPanel dp2;
-		TGComponent tgc;
-		//TCDTClass tc;
-		String name;
-		TClass t;
-		DesignPanelTranslator dpt;
-
-		// Loop on nodes
-		while(iterator.hasNext()) {
-			node = (TDDNode)(iterator.next());
-
-			// Loop on artifact
-			artifacts = node.getArtifactList();
-			for(i=0; i<artifacts.size(); i++) {
-				art = (TDDArtifact)(artifacts.elementAt(i));
-				dp2 = art.getDesignPanel();
-
-				iterator2 = dp2.tcdp.getComponentList().listIterator();
-				tclasses = new Vector();
-				while(iterator2.hasNext()) {
-					tgc = (TGComponent)(iterator2.next());
-					if (tgc instanceof TClassInterface) {
-						TraceManager.addDev("Found tclass: " + tgc.getValue());
-						tclasses.add(tgc);
-					}
-				}
-				if (tclasses.size() > 0) {
-					name = node.getNodeName() + "__" + art.getValue() + "__";
-					dpt = new DesignPanelTranslator(dp2);
-					dpt.addTClasses(dp2, tclasses, name,tm);
-					dpt.addRelations(dp2, name,tm);
-
-					listE.merge(dpt.getCorrespondanceTGElement());
-					checkingErrors.addAll(dpt.getErrors());
-
-					// Set package name of tclasses
-					for(int j=0; j<tclasses.size(); j++) {
-						tgc = (TGComponent)(tclasses.elementAt(j));
-						t = listE.getTClass(tgc);
-						if (t != null) {
-							TraceManager.addDev("Setting package name of " + t.getName() + " to " + node.getNodeName());
-							t.setPackageName(node.getNodeName()+"_"+art.getValue());
-						}
-					}
-				}
-			}
-		}
-
-		// Second step : dealing with links!
-
-		DDTranslator ddt = new DDTranslator(dp, tm, listE);
-
-		try {
-			TraceManager.addDev("Dealing with links!");
-			ddt.translateLinks();
-		} catch (DDSyntaxException e) {
-			//throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling");
-			TraceManager.addDev("Error during translation: " + e.getMessage());
-			return false;
-		}
-
-		mgui.setMode(MainGUI.GEN_DESIGN_OK);
-
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			return false;
-		}
-
-		// modeling is built
-		// Now check it !
-		TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
-		checkingErrors = tmc.syntaxAnalysisChecking();
-
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			return false;
-		} else {
-			mgui.setMode(MainGUI.GEN_DESIGN_OK);
-			return true;
-		}
-	}
-	
-	public boolean translateNC(NCPanel ncp) {
-		TraceManager.addDev("Translating NC");
-		checkingErrors = new Vector();
-		warnings = new Vector();
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		
-		GNCModeling gncm = new GNCModeling(ncp);
-		ncs = gncm.translateToNCStructure();
-		listE = gncm.getCorrespondanceTable();
-		
-		checkingErrors = gncm.getCheckingErrors();
-		warnings = gncm.getCheckingWarnings();
-		
-		TraceManager.addDev("errors:" + checkingErrors.size() + " warnings:" + warnings.size());
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			return false;
-		} else {
-			// Generate XML file
-			try {
-				String fileName = "network.xml";
-				if (ConfigurationTTool.NCDirectory != null) {
-					fileName = ConfigurationTTool.NCDirectory + fileName;
-				}
-				TraceManager.addDev("Saving in network structure in file: " + fileName);
-				FileUtils.saveFile(fileName, ncs.toISAENetworkXML());
-				fileName = "traffics.xml";
-				if (ConfigurationTTool.NCDirectory != null) {
-					fileName = ConfigurationTTool.NCDirectory + fileName;
-				}
-				TraceManager.addDev("Saving in traffics in file: " + fileName);
-				FileUtils.saveFile(fileName, ncs.toISAETrafficsXML());
-				TraceManager.addDev("Save done");
-			} catch (FileException fe) {
-				TraceManager.addError("Could not save NC in file:" + fe.getMessage());
-			}
-			mgui.setMode(MainGUI.NC_OK);
-			return true;
-		}
-		
-	}
-
-
-	public boolean translateTMLDesign(Vector tasksToTakeIntoAccount, TMLDesignPanel tmldp, boolean optimize) {
-		ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();
-		warnings = new Vector();
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		
-		GTMLModeling gtmlm = new GTMLModeling(tmldp, true);
-		gtmlm.setTasks(tasksToTakeIntoAccount);
-		tmlm = gtmlm.translateToTMLModeling(true);
-		//tmlm.removeAllRandomSequences();
-		TraceManager.addDev("New TML Modeling:" + tmlm.toString());
-		mgui.generateTMLTxt();
-		artificialtmap = tmlm.getDefaultMapping();
-		tmap = null;
-		listE = gtmlm.getCorrespondanceTable();
-
-		//TraceManager.addDev("TML Modeling translated");
-		//TraceManager.addDev("----- TML Modeling -----");
-		//TraceManager.addDev(tmlm.toString());
-		//TraceManager.addDev("------------------------");
-		checkingErrors = gtmlm.getCheckingErrors();
-
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			analyzeErrors();
-			return false;
-		} else {
-			if (optimize) {
-				warningsOptimize = tmlm.optimize();
-			}
-			
-			tmState = 2;
-			mgui.resetAllDIPLOIDs();
-			listE.useDIPLOIDs();
-			return true;
-			//TraceManager.addDev("tm generated:");
-			//tm.print();
-		}
-	}
-	
-	public Vector convertToCheckingErrorTMLErrors(ArrayList<TMLError> warningsOptimize, TDiagramPanel _tdp) {
-		Vector v = new Vector();
-		CheckingError warning;
-		for(TMLError error: warningsOptimize) {
-			warning = new CheckingError(CheckingError.BEHAVIOR_ERROR, error.message);
-			warning.setTDiagramPanel(_tdp);
-			warning.setTMLTask(error.task);
-			v.add(warning);
-		}
-		return v;
-	}
-	
-	public boolean translateTMLComponentDesign(Vector componentsToTakeIntoAccount, TMLComponentDesignPanel tmlcdp, boolean optimize) {
-		ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();
-		warnings = new Vector();
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		
-		GTMLModeling gctmlm = new GTMLModeling(tmlcdp, true);
+        loadDiagram(elt, sdp);
+        //TraceManager.addDev("Loading seq diag5");
+    }
+
+    public void loadUseCaseDiagram(Element elt, int indexAnalysis, int indexTab) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        /*if (!(mgui.isUCDCreated(indexAnalysis, name))) {*/
+        mgui.createUseCaseDiagram(indexAnalysis, name);
+        //}
+        UseCaseDiagramPanel ucdp = mgui.getUseCaseDiagramPanel(indexAnalysis, indexTab, name);
+
+        if (ucdp == null) {
+            throw new MalformedModelingException();
+        }
+
+        ucdp.removeAll();
+
+        loadDiagram(elt, ucdp);
+    }
+
+    public void loadTDeploymentDiagram(Element elt, int indexDeployment) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.setDeploymentName(indexDeployment, name);
+        TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexDeployment);
+
+        loadDiagram(elt, tdp);
+    }
+
+    public void loadNCDiagram(Element elt, int indexNC) throws  MalformedModelingException, SAXException {
+        String name;
+
+        name = elt.getAttribute("name");
+        mgui.setNCName(indexNC, name);
+        TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexNC);
+
+        loadDiagram(elt, tdp);
+    }
+
+    // reinit the id of all components
+    public void makeLovelyIds() {
+        TDiagramPanel tdp;
+        int id = 1;
+        int i, j;
+        TURTLEPanel tp;
+        // search for diagram panels
+        for(i=0; i<panels.size(); i++) {
+            tp = (TURTLEPanel)(panels.elementAt(i));
+            for(j=0; j<tp.panels.size(); j++) {
+                tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                id = tdp.makeLovelyIds(id);
+                //TraceManager.addDev("Lovely id =" + id);
+            }
+        }
+
+        TGComponent.setGeneralId(id + 1);
+    }
+
+    public void loadDiagramInformation(Element elt, TDiagramPanel tdp) throws  MalformedModelingException {
+        int x, y;
+        double zoom = 0;
+        try {
+            x = Integer.decode(elt.getAttribute("minX")).intValue();
+            tdp.setMinX(x);
+            x = Integer.decode(elt.getAttribute("maxX")).intValue();
+            tdp.setMaxX(x);
+            y = Integer.decode(elt.getAttribute("minY")).intValue();
+            tdp.setMinY(y);
+            y = Integer.decode(elt.getAttribute("maxY")).intValue();
+            tdp.setMaxY(y);
+            tdp.updateSize();
+            zoom = Double.parseDouble(elt.getAttribute("zoom"));
+            if (zoom != 0) {
+                tdp.setZoom(zoom);
+                mgui.updateZoomInfo();
+            }
+        } catch (Exception e) {
+            // Model was saved in an older version of TTool
+        }
+
+        if (tdp instanceof TActivityDiagramPanel) {
+            ((TActivityDiagramPanel)tdp).loadExtraParameters(elt);
+        }
+    }
+
+    public void loadActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException {
+        //TraceManager.addDev("---> Load activity diagram");
+        try {
+            NodeList activityDiagramNl = docCopy.getElementsByTagName("TActivityDiagramPanel");
+
+            TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue);
+            TraceManager.addDev(""+docCopy);
+
+            if (activityDiagramNl == null) {
+                throw new MalformedModelingException();
+            }
+
+            Node adn;
+            Element elt;
+            TActivityDiagramPanel tadp;
+            String name;
+            int decXTmp = decX;
+            int decYTmp = decY;
+            int decIdTmp = decId;
+
+            for(int i=0; i<activityDiagramNl.getLength(); i++) {
+                adn = activityDiagramNl.item(i);
+                if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                    elt = (Element) adn;
+                    // class diagram name
+                    name = elt.getAttribute("name");
+                    //TraceManager.addDev("Name of activity diagram=" + name);
+
+                    if (name.equals(oldValue)) {
+                        int indexDesign = mgui.getMajorIndexOf(tdp);
+
+                        if (indexDesign < 0) {
+                            throw new MalformedModelingException();
+                        }
+
+                        tadp = mgui.getActivityDiagramPanel(indexDesign, newValue);
+
+                        //TraceManager.addDev("Searching panel");
+
+                        if (tadp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //TraceManager.addDev("Panel ok");
+
+                        decX = 0; decY = 0; decId = 0;
+
+
+
+                        tadp.removeAll();
+
+                        loadDiagramInformation(elt, tadp);
+
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                        connectConnectorsToRealPoints(tadp);
+                        tadp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                        makePostLoading(tadp, 0);
+                    }
+                }
+            }
+            decX = decXTmp;
+            decY = decYTmp;
+            decId = decIdTmp;
+        } catch (SAXException saxe) {
+            TraceManager.addError("Loading 701 " + saxe.getMessage());
+            throw new MalformedModelingException();
+        }
+    }
+
+    public void loadAvatarSMD(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException {
+        TraceManager.addDev("---> Load activity diagram of old=" + oldValue + " new=" + newValue);
+        try {
+            NodeList smdNl = docCopy.getElementsByTagName("AVATARStateMachineDiagramPanel");
+
+            //TraceManager.addDev("Loading state machine diagram of " + newValue + " Before : " + oldValue);
+            //TraceManager.addDev("smdNL: " + smdNl);
+
+            if (smdNl == null) {
+                TraceManager.addDev("AVATAR: null doc");
+                throw new MalformedModelingException();
+            }
+
+            Node adn;
+            Element elt;
+            AvatarSMDPanel asmdp;
+            String name;
+            int decXTmp = decX;
+            int decYTmp = decY;
+            int decIdTmp = decId;
+
+            for(int i=0; i<smdNl.getLength(); i++) {
+                adn = smdNl.item(i);
+                if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                    elt = (Element) adn;
+                    // class diagram name
+                    name = elt.getAttribute("name");
+                    TraceManager.addDev("Name of activity diagram=" + name);
+
+                    if (name.equals(oldValue)) {
+                        int indexDesign = mgui.getMajorIndexOf(tdp);
+
+                        if (indexDesign < 0) {
+                            throw new MalformedModelingException();
+                        }
+
+                        asmdp = mgui.getAvatarSMDPanel(indexDesign, newValue);
+
+                        TraceManager.addDev("Searching panel: " + newValue);
+
+                        if (asmdp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        TraceManager.addDev("Panel ok");
+
+                        decX = 0; decY = 0; decId = 0;
+
+
+                        asmdp.removeAll();
+
+                        loadDiagramInformation(elt, asmdp);
+
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp);
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points");
+                        connectConnectorsToRealPoints(asmdp);
+                        asmdp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading");
+                        makePostLoading(asmdp, 0);
+                    }
+                }
+            }
+            decX = decXTmp;
+            decY = decYTmp;
+            decId = decIdTmp;
+        } catch (SAXException saxe) {
+            TraceManager.addError("Loading 801 " + saxe.getMessage());
+            throw new MalformedModelingException();
+        }
+    }
+
+    public void loadTMLActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException {
+        //TraceManager.addDev("---> Load TML activity diagram");
+        try {
+            if (docCopy == null) {
+                TraceManager.addDev("Null doc copy");
+            }
+            NodeList activityDiagramNl = docCopy.getElementsByTagName("TMLActivityDiagramPanel");
+
+            //TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue);
+
+            if (activityDiagramNl == null) {
+                //TraceManager.addDev("Null");
+                throw new MalformedModelingException();
+            }
+
+            Node adn;
+            Element elt;
+            TMLActivityDiagramPanel tmladp;
+            String name;
+            int decXTmp = decX;
+            int decYTmp = decY;
+            int decIdTmp = decId;
+
+            for(int i=0; i<activityDiagramNl.getLength(); i++) {
+                adn = activityDiagramNl.item(i);
+                if (adn.getNodeType() == Node.ELEMENT_NODE) {
+                    elt = (Element) adn;
+                    // class diagram name
+                    name = elt.getAttribute("name");
+                    //TraceManager.addDev("Name of activity diagram=" + name);
+
+                    if (name.equals(oldValue)) {
+                        int indexDesign = mgui.getMajorIndexOf(tdp);
+
+                        if (indexDesign < 0) {
+                            throw new MalformedModelingException();
+                        }
+
+                        tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, newValue);
+
+                        //TraceManager.addDev("Searching panel");
+
+                        if (tmladp == null) {
+                            throw new MalformedModelingException();
+                        }
+
+                        //TraceManager.addDev("Panel ok");
+
+                        decX = 0; decY = 0; decId = 0;
+
+                        tmladp.removeAll();
+
+                        loadDiagramInformation(elt, tmladp);
+
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components");
+                        makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp);
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors");
+                        makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp);
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents");
+                        makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp);
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " real points");
+                        connectConnectorsToRealPoints(tmladp);
+                        tmladp.structureChanged();
+                        //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " post loading");
+                        makePostLoading(tmladp, 0);
+                    }
+                }
+            }
+            decX = decXTmp;
+            decY = decYTmp;
+            decId = decIdTmp;
+        } catch (SAXException saxe) {
+            TraceManager.addError("Loading 901 " + saxe.getMessage());
+            throw new MalformedModelingException();
+        }
+    }
+
+    public void makePostLoading(TDiagramPanel tdp, int beginIndex) throws MalformedModelingException{
+        TGComponent tgc;
+
+        //TraceManager.addDev("Post loading of diagram " + tdp.toString());
+
+        LinkedList list = tdp.getComponentList();
+
+        for(int i=0; i<list.size()-beginIndex; i++) {
+            tgc = (TGComponent)(list.get(i));
+            //TraceManager.addDev(tgc.getName());
+            //TraceManager.addDev(tgc.getValue());
+            tgc.makePostLoading(decId);
+        }
+
+        //TraceManager.addDev("Post loading of diagram " + tdp.toString() + " achieved");
+    }
+
+    public void makeXMLComponents(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
+        Node n;
+        //Element elt;
+        TGComponent tgc;
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+        boolean error = false;
+
+        for(int i=0; i<nl.getLength(); i++) {
+            n = nl.item(i);
+            if (n.getNodeType() == Node.ELEMENT_NODE) {
+                try {
+                    tgc = makeXMLComponent(n, tdp);
+                    //TraceManager.addDev("About to add component= " + tgc);
+                    if ((tgc != null) && (tgc.getFather() == null)) {
+                        //TraceManager.addDev("Component added to diagram tgc=" + tgc);
+                        tdp.addBuiltComponent(tgc);
+                    } else {
+                        //TraceManager.addDev("Component not added to diagram");
+                    }
+                } catch (MalformedModelingException mme) {
+                    error = true;
+                }
+            }
+        }
+
+        if (error) {
+            throw new MalformedModelingException();
+        }
+    }
+
+
+    public TGComponent makeXMLComponent(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
+        Element elt;
+        Element elt1;
+        //TraceManager.addDev(n.toString());
+        TGComponent tgc = null;
+        TGComponent father;
+
+        //
+        try {
+
+            NodeList nl = n.getChildNodes();
+            elt = (Element)n;
+            elt1 = elt;
+            //TraceManager.addDev("elt=" + elt);
+
+            int myType = Integer.decode(elt.getAttribute("type")).intValue();
+            int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId;
+
+            int myX = -1, myY = -1, myWidth = -1, myHeight =-1;
+            int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1;
+            int myMinX = -1, myMaxX = -1, myMinY = -1, myMaxY = -1;
+            String myName = null, myValue = null;
+            Vector tgcpList = new Vector();
+            Point p;
+            int i, x, y;
+            int fatherId = -1, fatherNum = -1;
+            String pre = "", post = "";
+            String internalComment = "";
+            boolean accessibility = false;
+            boolean invariant = false;
+            boolean breakpoint = false;
+            boolean hidden = false;
+            boolean masterMutex = false;
+
+            for(i=0; i<nl.getLength(); i++) {
+                n = nl.item(i);
+                if (n.getNodeType() == Node.ELEMENT_NODE) {
+                    elt = (Element) n;
+                    if (elt.getTagName().equals("cdparam")) {
+                        myX = Integer.decode(elt.getAttribute("x")).intValue() + decX;
+                        myY = Integer.decode(elt.getAttribute("y")).intValue() + decY;
+                    } else if (elt.getTagName().equals("sizeparam")) {
+                        myWidth = Integer.decode(elt.getAttribute("width")).intValue();
+                        myHeight = Integer.decode(elt.getAttribute("height")).intValue();
+                        myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue();
+                        myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue();
+                        myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue();
+                        myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue();
+                    } else if (elt.getTagName().equals("cdrectangleparam")) {
+                        myMinX = Integer.decode(elt.getAttribute("minX")).intValue();
+                        myMaxX = Integer.decode(elt.getAttribute("maxX")).intValue();
+                        myMinY = Integer.decode(elt.getAttribute("minY")).intValue();
+                        myMaxY = Integer.decode(elt.getAttribute("maxY")).intValue();
+                    } else if (elt.getTagName().equals("infoparam")) {
+                        myName = elt.getAttribute("name");
+                        myValue = elt.getAttribute("value");
+                    } else if (elt.getTagName().equals("hidden")) {
+                        hidden = elt.getAttribute("value").equals("true");
+                    } else if (elt.getTagName().equals("TGConnectingPoint")) {
+                        x = Integer.decode(elt.getAttribute("num")).intValue();
+                        y = Integer.decode(elt.getAttribute("id")).intValue() + decId;
+                        tgcpList.add(new Point(x, y));
+                    } else if (elt.getTagName().equals("father")) {
+                        fatherId = Integer.decode(elt.getAttribute("id")).intValue();
+                        fatherNum = Integer.decode(elt.getAttribute("num")).intValue();
+                    } else if (elt.getTagName().equals("prejavacode")) {
+                        pre += elt.getAttribute("value") + "\n";
+                    } else if (elt.getTagName().equals("postjavacode")) {
+                        post += elt.getAttribute("value") + "\n";
+                    } else if (elt.getTagName().equals("InternalComment")) {
+                        internalComment += elt.getAttribute("value") + "\n";
+                    } else if (elt.getTagName().equals("accessibility")) {
+                        accessibility = true;
+                    } else if (elt.getTagName().equals("invariant")) {
+                        invariant = true;
+                    } else if (elt.getTagName().equals("mastermutex")) {
+                        masterMutex = true;
+                    } else if (elt.getTagName().equals("breakpoint")) {
+                        breakpoint = true;
+                    }
+                }
+            }
+
+            if ((myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1)) {
+                throw new MalformedModelingException();
+            }
+
+            //TraceManager.addDev("Making TGComponent of type " + myType + " and of name " + myName);
+            //TGComponent is ready to be built
+            if(fatherId != -1) {
+                fatherId += decId;
+                // internal component
+                //TraceManager.addDev("I am " + myName);
+                //TraceManager.addDev("Searching for component with id " + fatherId);
+                father = tdp.findComponentWithId(fatherId);
+                if (father == null) {
+                    throw new MalformedModelingException();
+                }
+
+                //TraceManager.addDev("Done");
+                //TraceManager.addDev("Father My value is " + father.getValue());
+                //TraceManager.addDev("My class is " + father.getClass());
+
+                //TraceManager.addDev("Searching for component " + fatherNum + " at " + tgc.getName());
+                tgc = father.getInternalTGComponent(fatherNum);
+
+                if (tgc == null) {
+                    // To be added to its father -> swallow component
+                    if (father instanceof SwallowTGComponent) {
+                        //TraceManager.addDev("1 Must add the component to its father:");
+                        tgc = TGComponentManager.addComponent(myX, myY, myType, tdp);
+                        //TraceManager.addDev("2 Must add the component to its father:" + tgc);
+                        if (tgc instanceof SwallowedTGComponent) {
+                            //TraceManager.addDev("3 Must add the component to its father:");
+                            ((SwallowTGComponent)father).addSwallowedTGComponent(tgc, myX, myY);
+                            //TraceManager.addDev("Swallowed to father = " + father.getValue() + ". My name=" + myName + " decId=" + decId);
+                        } else {
+                            throw new MalformedModelingException();
+                        }
+                    } else {
+                        throw new MalformedModelingException();
+                    }
+                }
+
+                if (tgc != null) {
+                    tgc.setCdRectangle(myMinX, myMaxX, myMinY, myMaxY);
+                    tgc.setCd(myX, myY);
+                    //TraceManager.addDev("set cd of " + tgc.getName());
+                }
+            } else {
+                tgc = TGComponentManager.addComponent(myX, myY, myType, tdp);
+            }
+            //TraceManager.addDev("TGComponent built " + myType);
+
+            if (tgc == null) {
+                throw new MalformedModelingException();
+            }
+
+            if (myName != null) {
+                tgc.setName(myName);
+            }
+
+            tgc.setHidden(hidden);
+
+            /*if (tgc instanceof TCDTObject) {
+              TraceManager.addDev("Loading " + myValue);
+              }*/
+
+            String oldClassName = myValue;
+            //TraceManager.addDev("Old class name=" + oldClassName);
+            //Added by Solange
+            if ((myValue != null) && (!myValue.equals(null))){
+                if (tgc instanceof ProCSDComponent)
+                    {
+                        //Added by Solange
+                        //And removed by emil
+                        //myValue=generateNameIfInUse(myValue);
+                        //  tgc.setValueWithChange(myValue);
+                        //TraceManager.addDev("myValue=" + myValue);
+                    }
+                //until here
+                if ((tgc instanceof TCDTClass) && (decId >0)){
+                    if (tdp.isAlreadyATClassName(myValue)) {
+                        myValue = tdp.findTClassName(myValue+"_");
+                    }
+                }
+                if ((tgc instanceof TMLTaskOperator) && (decId >0)){
+                    if (tdp.isAlreadyATMLTaskName(myValue)) {
+                        myValue = tdp.findTMLTaskName(myValue+"_");
+                    }
+                }
+
+                if ((tgc instanceof AvatarBDBlock) && (decId >0)){
+                    if (tdp.isAlreadyAnAvatarBDBlockName(myValue)) {
+                        myValue = tdp.findAvatarBDBlockName(myValue+"_");
+                    }
+                }
+
+                if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){
+                    if (tdp.isAlreadyATMLPrimitiveComponentName(myValue)) {
+                        myValue = tdp.findTMLPrimitiveComponentName(myValue+"_");
+                    }
+                    //TraceManager.addDev("MyValue=" + myValue);
+                }
+                if ((tgc instanceof TOSClass) && (decId >0)){
+                    if (tdp.isAlreadyATOSClassName(myValue)) {
+                        myValue = tdp.findTOSClassName(myValue+"_");
+                    }
+                }
+                //TraceManager.addDev("myValue=" + myValue);
+                tgc.setValueWithChange(myValue);
+                //TraceManager.addDev("value done");
+                if ((tgc instanceof TCDTClass) && (decId >0)){
+                    loadActivityDiagram(tdp, oldClassName, myValue);
+                }
+
+                if ((tgc instanceof AvatarBDBlock) && (decId >0)){
+                    //TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue);
+                    loadAvatarSMD(tdp, oldClassName, myValue);
+                }
+
+                if ((tgc instanceof TMLTaskOperator) && (decId >0)){
+                    //TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue);
+                    loadTMLActivityDiagram(tdp, oldClassName, myValue);
+                }
+
+                if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){
+                    //TraceManager.addDev("Going to load ad of component " + oldClassName + " myValue=" + myValue);
+                    loadTMLActivityDiagram(tdp, oldClassName, myValue);
+                }
+            }
+
+            tgc.forceId(myId);
+            tgc.setLoaded(true);
+            tgc.setInternalLoaded(false);
+            tgc.setMinSize(myMinWidth, myMinHeight);
+            tgc.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight);
+            tgc.resize(myWidth, myHeight);
+            tgc.hasBeenResized();
+
+            //TraceManager.addDev("Options set");
+
+            if (pre.compareTo("") != 0) {
+                tgc.setPreJavaCode(pre);
+            }
+            if (post.compareTo("") != 0) {
+                tgc.setPostJavaCode(post);
+            }
+
+            if (internalComment.compareTo("") != 0) {
+                tgc.setInternalComment(internalComment);
+            }
+
+            if (accessibility) {
+                tgc.setCheckableAccessibility(accessibility);
+
+            }
+
+            if (invariant) {
+                tgc.setCheckableInvariant(invariant);
+            }
+
+            if (masterMutex) {
+                tgc.setMasterMutex(true);
+            }
+
+            if (breakpoint) {
+                tgc.setBreakpoint(breakpoint);
+            }
+
+            //extra param
+            //TraceManager.addDev("Extra params" + tgc.getClass());
+            //TraceManager.addDev("My value = " + tgc.getValue());
+            tgc.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId);
+            //TraceManager.addDev("Extra param ok");
+
+            if ((tgc instanceof TCDTObject) && (decId > 0)) {
+                TCDTObject to = (TCDTObject)tgc;
+                //TraceManager.addDev("Setting TObject name to: " + to.getObjectName());
+                //TraceManager.addDev("Setting TObject name to: " + tdp.findTObjectName(to.getObjectName()));
+                to.setObjectName(tdp.findTObjectName(to.getObjectName()));
+            }
+
+            //TraceManager.addDev(tgc.toString());
+
+            //TraceManager.addDev("Making connecting points " + tgcpList.size());
+            for(i=0; i<tgcpList.size(); i++) {
+                p = (Point)(tgcpList.elementAt(i));
+                if (!tgc.setIdTGConnectingPoint(p.x, p.y)) {
+                    //TraceManager.addDev("Warning: a connecting point has been removed");
+                    //throw new MalformedModelingException();
+                }
+            }
+
+            //TraceManager.addDev("Not yet except!");
+            if (decId >0) {
+                tdp.bringToFront(tgc);
+            }
+            //TraceManager.addDev("Connecting points done " + myType);
+
+            /*if (tgc instanceof TCDTObject) {
+              TraceManager.addDev("getValue " + tgc.getValue());
+              }*/
+
+        } catch (Exception e) {
+            TraceManager.addError("Exception XML Component "/* + e.getMessage() + "trace=" + e.getStackTrace()*/);
+            throw new MalformedModelingException();
+        }
+        return tgc;
+    }
+
+    //method added by Solange
+
+    public String generateNameIfInUse(String myName)
+    {
+        if (!(mgui.getCurrentTURTLEPanel().nameInUse(myName)))
+            {
+                return myName;
+            }
+
+        String other;
+        for(int w=0; w<100000; w++)
+            {
+                other = myName + "_" + w;
+                if (!(mgui.getCurrentTURTLEPanel().nameInUse(other)))
+                    {
+                        return other;
+                    }
+            }
+        return null;
+    }
+    //until here
+
+    public void makePostProcessing(TDiagramPanel tdp) throws MalformedModelingException{
+        //TraceManager.addDev("Make post processing!");
+        if (tdp instanceof TClassDiagramPanel) {
+            ((TClassDiagramPanel)tdp).makePostLoadingProcessing();
+        }
+        //TraceManager.addDev("Post processing is over");
+    }
+
+    public void makeXMLConnectors(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
+        Node n;
+        //Element elt;
+        TGConnector tgco = null;
+        int i;
+
+        if (tdp == null) {
+            throw new MalformedModelingException();
+        }
+
+        for(i=0; i<nl.getLength(); i++) {
+            n = nl.item(i);
+            if (n.getNodeType() == Node.ELEMENT_NODE) {
+                tgco = makeXMLConnector(n, tdp);
+                if (tgco != null) {
+                    tdp.addBuiltConnector(tgco);
+                } else {
+                    TraceManager.addDev("Connector error");
+                    throw new MalformedModelingException();
+                }
+            }
+        }
+    }
+
+    public void connectConnectorsToRealPoints(TDiagramPanel tdp) throws MalformedModelingException {
+        LinkedList list = tdp.getComponentList();
+        TGConnectingPoint p1, p2, p3, p4;
+        //TGConnectingPointTmp p;
+        int i;
+        TGComponent tgc;
+        //TGComponent tgctmp;
+        TGConnector tgco = null;
+        //boolean error = false;
+        TGConnectorInfo tgcoinfo;
+
+
+        //connect connectors to their real connecting point
+        //TraceManager.addDev("Valid connectors ?");
+        for(i=0; i<list.size(); i++) {
+            tgc = (TGComponent)(list.get(i));
+            if (tgc instanceof TGConnector) {
+                tgco = (TGConnector)tgc;
+                p1 = tgco.getTGConnectingPointP1();
+                p2 = tgco.getTGConnectingPointP2();
+                if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){
+                    //TraceManager.addDev("Searching for id " + p1.getId());
+                    p3 = tdp.findConnectingPoint(p1.getId());
+                    //TraceManager.addDev("Searching for id " + p2.getId());
+                    p4 = tdp.findConnectingPoint(p2.getId());
+                    if (((p3 ==null) || (p4 == null)) &&(decId != 0)) {
+                        if (list.remove(tgc)) {
+                            i --;
+                        } else {
+                            throw new MalformedModelingException();
+                        }
+                    } else {
+                        if ((p3 == null) ||(p4 == null)) {
+                            //warning = true;
+                            if (p3 == null) {
+                                //TraceManager.addDev("Error on first id");
+                            }
+                            if (p4 == null) {
+                                //TraceManager.addDev("Error on second id");
+                            }
+                            tgcoinfo = new TGConnectorInfo();
+                            tgcoinfo.connector = tgco;
+                            pendingConnectors.add(tgcoinfo);
+                            TraceManager.addDev("One connector added to pending list");
+                        } else {
+                            tgco.setP1(p3);
+                            p3.setFree(false);
+                            tgco.setP2(p4);
+                            p4.setFree(false);
+                        }
+                    }
+                }
+            }
+        }
+
+        /*for(TGConnector con: connectorsToRemove) {
+          list.remove(con);
+          }*/
+
+        /*if (error) {
+          TraceManager.addDev("Connecting error: " + connectorsToRemove.size()  + " connectors have been removed");
+          throw new MalformedModelingException();
+          }*/
+    }
+
+    public void makeLastLoad() {
+        // Update references on all diagrams
+        //TraceManager.addDev("Updating ports");
+        //mgui.updateAllPorts();
+
+        // Update ports on all diagrams
+        //TraceManager.addDev("Updating references / ports");
+        mgui.updateAllReferences();
+
+        mgui.updateAllPorts();
+
+        //TraceManager.addDev("Pending connectors");
+        // Make use of pending connectors
+        TGConnectingPoint p1, p2, p3, p4;
+        TDiagramPanel tdp;
+        TGConnector tgco;
+        for(TGConnectorInfo info: pendingConnectors) {
+            tgco = info.connector;
+            if (tgco != null) {
+                tdp = tgco.getTDiagramPanel();
+                if (tdp != null) {
+                    p1 = tgco.getTGConnectingPointP1();
+                    p2 = tgco.getTGConnectingPointP2();
+                    if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){
+                        TraceManager.addDev("Searching for id " + p1.getId());
+                        p3 = tdp.findConnectingPoint(p1.getId());
+                        TraceManager.addDev("Searching for id " + p2.getId());
+                        p4 = tdp.findConnectingPoint(p2.getId());
+                        if ((p3 == null) ||(p4 == null)) {
+                            //warning = true;
+                            if (p3 == null) {
+                                TraceManager.addDev("Error on first id");
+                            }
+                            if (p4 == null) {
+                                TraceManager.addDev("Error on second id");
+                            }
+                            TraceManager.addDev("One connector ignored");
+                        } else {
+                            tgco.setP1(p3);
+                            p3.setFree(false);
+                            tgco.setP2(p4);
+                            p4.setFree(false);
+                        }
+                    }
+                }
+            }
+        }
+        pendingConnectors.clear();
+        //TraceManager.addDev("Last load done");
+    }
+
+    public TGConnector makeXMLConnector(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException {
+        Element elt, elt1;
+        TGConnector tgco = null;
+        //TGComponent tgc = null;
+
+        //TraceManager.addDev(n.toString());
+
+        try {
+
+            NodeList nl = n.getChildNodes();
+            elt = (Element)n;
+            elt1 = elt;
+
+            int myType = Integer.decode(elt.getAttribute("type")).intValue();
+            int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId;
+
+            int myX = -1, myY = -1, myWidth = -1, myHeight =-1;
+            int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1;
+            int myMaxWidth = -1, myMaxHeight = -1;
+            String myName = null, myValue = null;
+            int tmpx, tmpy, tmpid;
+            TGConnectingPoint p1 = null, p2=null;
+            Vector pointList = new Vector();
+
+            Vector tgcpList = new Vector();
+            Point p;
+            int i, x, y;
+            //int fatherId = -1, fatherNum = -1;
+            boolean automaticDrawing = true;
+
+            for(i=0; i<nl.getLength(); i++) {
+                n = nl.item(i);
+                if (n.getNodeType() == Node.ELEMENT_NODE) {
+                    elt = (Element) n;
+                    if (elt.getTagName().equals("cdparam")) {
+                        myX = Integer.decode(elt.getAttribute("x")).intValue() + decX;
+                        myY = Integer.decode(elt.getAttribute("y")).intValue() + decY;
+                    } else if (elt.getTagName().equals("sizeparam")) {
+                        myWidth = Integer.decode(elt.getAttribute("width")).intValue();
+                        myHeight = Integer.decode(elt.getAttribute("height")).intValue();
+                        myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue();
+                        myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue();
+                        if ((elt.getAttribute("maxWidth") != null) && (elt.getAttribute("maxWidth").length() > 0)) { // Test is made for compatibility with old versions
+                            //TraceManager.addDev("maxWidth = " +  elt.getAttribute("maxWidth"));
+                            myMaxWidth = Integer.decode(elt.getAttribute("maxWidth")).intValue();
+                            myMaxHeight = Integer.decode(elt.getAttribute("maxHeight")).intValue();
+                        }
+                        myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue();
+                        myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue();
+                    } else if (elt.getTagName().equals("infoparam")) {
+                        myName = elt.getAttribute("name");
+                        myValue = elt.getAttribute("value");
+                    } else if (elt.getTagName().equals("P1")) {
+                        tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX;
+                        tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY;
+                        tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId;
+                        TGComponent tgc1 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp);
+                        p1 = new TGConnectingPointTmp(tgc1, tmpx, tmpy, tmpid);
+                        //TraceManager.addDev("P1id = " + tmpid);
+                    } else if (elt.getTagName().equals("P2")) {
+                        tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX;
+                        tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY;
+                        tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId;
+                        TGComponent tgc2 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp);
+                        p2 = new TGConnectingPointTmp(tgc2, tmpx, tmpy, tmpid);
+                        //TraceManager.addDev("P2id = " + tmpid);
+                    } else if (elt.getTagName().equals("Point")) {
+                        tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX;
+                        tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY;
+                        pointList.add(new Point(tmpx, tmpy));
+                    } else if (elt.getTagName().equals("TGConnectingPoint")) {
+                        x = Integer.decode(elt.getAttribute("num")).intValue();
+                        y = Integer.decode(elt.getAttribute("id")).intValue() + decId;
+                        tgcpList.add(new Point(x, y));
+                        //TraceManager.addDev(" adding Connecting point !");
+                    } else if (elt.getTagName().equals("AutomaticDrawing")) {
+                        //TraceManager.addDev("AutomaticDrawing=" + elt.getAttribute("data"));
+                        if (elt.getAttribute("data").compareTo("true") == 0) {
+                            automaticDrawing = true;
+                            //TraceManager.addDev("set to true");
+                        } else {
+                            automaticDrawing = false;
+                        }
+                        //automaticDrawing = Boolean.getBoolean(elt.getAttribute("data"));
+                    }
+                }
+            }
+
+            if ((myType == -1) || (myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1) || (p1 == null) || (p2 == null)) {
+                throw new MalformedModelingException();
+            }
+
+            //TGConnector is ready to be built
+            //TraceManager.addDev("Making TGConnector of type " + myType);
+            tgco = TGComponentManager.addConnector(myX, myY, myType, tdp, p1, p2, pointList);
+            //TraceManager.addDev("TGConnector built " + myType);
+
+            if (tgco == null) {
+                TraceManager.addDev( "TGCO is null myType: " + myType );
+                throw new MalformedModelingException();
+            }
+
+            tgco.setAutomaticDrawing(automaticDrawing);
+
+            if (myName != null) {
+                tgco.setName(myName);
+            }
+            if ((myValue != null) && (!myValue.equals(null))){
+                tgco.setValueWithChange(myValue);
+            }
+
+            tgco.forceId(myId);
+            tgco.setLoaded(true);
+            tgco.setInternalLoaded(false);
+            tgco.setMinSize(myMinWidth, myMinHeight);
+            tgco.setMaxSize(myMaxWidth, myMaxHeight);
+            tgco.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight);
+            tgco.resize(myWidth, myHeight);
+
+            tgco.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId);
+
+            //TraceManager.addDev("Making connecting points " + myType);
+            for(i=0; i<tgcpList.size(); i++) {
+                p = (Point)(tgcpList.elementAt(i));
+                if (!tgco.setIdTGConnectingPoint(p.x, p.y)) {
+                    throw new MalformedModelingException();
+                }
+            }
+
+            if (decId >0) {
+                tdp.bringToFront(tgco);
+            }
+
+            //TraceManager.addDev("Connecting points done " + myType);
+
+        } catch (Exception e) {
+            TraceManager.addError("Exception on connectors: HERE I AM");
+            throw new MalformedModelingException();
+        }
+        return tgco;
+    }
+
+
+
+    public boolean buildTURTLEModelingFromAnalysis(AnalysisPanel ap) throws AnalysisSyntaxException {
+
+        HMSC h;
+        //listE = new CorrespondanceTGElement();
+        checkingErrors = new Vector();
+
+        AnalysisPanelTranslator apt = new AnalysisPanelTranslator(ap, mgui);
+
+        try {
+            h = apt.translateHMSC();
+            listE = apt.getCorrespondanceTGElement();
+            checkingErrors = apt.getErrors();
+            apt.translateMSCs(h);
+            listE = apt.getCorrespondanceTGElement();
+            checkingErrors = apt.getErrors();
+        } catch (AnalysisSyntaxException ase) {
+            CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, ase.getMessage());
+            checkingErrors.add(ce);
+            throw ase;
+        }
+
+        SDTranslator sd = new SDTranslator(h);
+        checkingErrors = null;
+        warnings = new Vector();
+        //TraceManager.addDev("Step 02");
+
+        mgui.setMode(mgui.VIEW_SUGG_DESIGN_KO);
+
+        //TraceManager.addDev("Step 1");
+        try {
+            tm = sd.toTURTLEModeling();
+            tmState = 0;
+        } catch (SDTranslationException e) {
+            checkingErrors = new Vector();
+            CheckingError error = new CheckingError(CheckingError.STRUCTURE_ERROR, e.getMessage());
+            checkingErrors.add(error);
+
+            throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling");
+        }
+
+        //TraceManager.addDev("Step 2");
+
+        if (checkingErrors != null) {
+            return false;
+        }
+
+        // modeling is built
+        // Now check it !
+        //TraceManager.addDev("Step 3");
+        TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
+        checkingErrors = tmc.syntaxAnalysisChecking();
+        //TraceManager.addDev("Step 4");
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+            return false;
+        } else {
+            mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_OK);
+            return true;
+        }
+    }
+
+    public void generateDesign() {
+        generateDesign(tm);
+    }
+
+    public void generateDesign(TURTLEModeling tm) {
+        //TURTLEPanel tp = mgui.getCurrentTURTLEPanel();
+        nbSuggestedDesign ++;
+        TURTLEModelingDrawer tmd = new TURTLEModelingDrawer(mgui);
+        tmd.setTURTLEModeling(tm);
+        tmd.draw(nbSuggestedDesign);
+        mgui.changeMade(null, -1);
+    }
+
+    public void generateIOD(HMSC _hmsc, MSC _msc) {
+        MSCDrawer mscd = new MSCDrawer(mgui);
+        mscd.setHMSC(_hmsc);
+        mscd.setMSC(_msc);
+        mscd.drawFromMSC(nbSuggestedDesign);
+        nbSuggestedDesign ++;
+        mgui.changeMade(null, -1);
+    }
+
+
+    public boolean translateDeployment(DeploymentPanel dp) {
+        // Builds a TURTLE modeling from a deployment diagram
+        TraceManager.addDev("deployement");
+        checkingErrors = new Vector();
+        warnings = new Vector();
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+        tm = new TURTLEModeling();
+        tmState = 0;
+        listE = new CorrespondanceTGElement();
+        mgui.reinitCountOfPanels();
+
+        Vector tclasses;
+
+        LinkedList ll;
+        ListIterator iterator, iterator2;
+
+        // First step: adding all necessary classes + their ad
+        ll = dp.tddp.getListOfNodes();
+        iterator = ll.listIterator();
+        TDDNode node;
+        Vector artifacts;
+        TDDArtifact art;
+        int i;
+        DesignPanel dp2;
+        TGComponent tgc;
+        //TCDTClass tc;
+        String name;
+        TClass t;
+        DesignPanelTranslator dpt;
+
+        // Loop on nodes
+        while(iterator.hasNext()) {
+            node = (TDDNode)(iterator.next());
+
+            // Loop on artifact
+            artifacts = node.getArtifactList();
+            for(i=0; i<artifacts.size(); i++) {
+                art = (TDDArtifact)(artifacts.elementAt(i));
+                dp2 = art.getDesignPanel();
+
+                iterator2 = dp2.tcdp.getComponentList().listIterator();
+                tclasses = new Vector();
+                while(iterator2.hasNext()) {
+                    tgc = (TGComponent)(iterator2.next());
+                    if (tgc instanceof TClassInterface) {
+                        TraceManager.addDev("Found tclass: " + tgc.getValue());
+                        tclasses.add(tgc);
+                    }
+                }
+                if (tclasses.size() > 0) {
+                    name = node.getNodeName() + "__" + art.getValue() + "__";
+                    dpt = new DesignPanelTranslator(dp2);
+                    dpt.addTClasses(dp2, tclasses, name,tm);
+                    dpt.addRelations(dp2, name,tm);
+
+                    listE.merge(dpt.getCorrespondanceTGElement());
+                    checkingErrors.addAll(dpt.getErrors());
+
+                    // Set package name of tclasses
+                    for(int j=0; j<tclasses.size(); j++) {
+                        tgc = (TGComponent)(tclasses.elementAt(j));
+                        t = listE.getTClass(tgc);
+                        if (t != null) {
+                            TraceManager.addDev("Setting package name of " + t.getName() + " to " + node.getNodeName());
+                            t.setPackageName(node.getNodeName()+"_"+art.getValue());
+                        }
+                    }
+                }
+            }
+        }
+
+        // Second step : dealing with links!
+
+        DDTranslator ddt = new DDTranslator(dp, tm, listE);
+
+        try {
+            TraceManager.addDev("Dealing with links!");
+            ddt.translateLinks();
+        } catch (DDSyntaxException e) {
+            //throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling");
+            TraceManager.addDev("Error during translation: " + e.getMessage());
+            return false;
+        }
+
+        mgui.setMode(MainGUI.GEN_DESIGN_OK);
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        }
+
+        // modeling is built
+        // Now check it !
+        TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
+        checkingErrors = tmc.syntaxAnalysisChecking();
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        } else {
+            mgui.setMode(MainGUI.GEN_DESIGN_OK);
+            return true;
+        }
+    }
+
+    public boolean translateAttackTreePanel(AttackTreePanel atp) {
+	AttackTreePanelTranslator att = new AttackTreePanelTranslator(atp);
+	attackTree = att.translateToAttackTreeDataStructure();
+	checkingErrors = att.getCheckingErrors();
+	warnings = att.getWarnings();
+	if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        }
+	return true;
+    }
+
+    public boolean translateNC(NCPanel ncp) {
+        TraceManager.addDev("Translating NC");
+        checkingErrors = new Vector();
+        warnings = new Vector();
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+
+        GNCModeling gncm = new GNCModeling(ncp);
+        ncs = gncm.translateToNCStructure();
+        listE = gncm.getCorrespondanceTable();
+
+        checkingErrors = gncm.getCheckingErrors();
+        warnings = gncm.getCheckingWarnings();
+
+        TraceManager.addDev("errors:" + checkingErrors.size() + " warnings:" + warnings.size());
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        } else {
+            // Generate XML file
+            try {
+                String fileName = "network.xml";
+                if (ConfigurationTTool.NCDirectory != null) {
+                    fileName = ConfigurationTTool.NCDirectory + fileName;
+                }
+                TraceManager.addDev("Saving in network structure in file: " + fileName);
+                FileUtils.saveFile(fileName, ncs.toISAENetworkXML());
+                fileName = "traffics.xml";
+                if (ConfigurationTTool.NCDirectory != null) {
+                    fileName = ConfigurationTTool.NCDirectory + fileName;
+                }
+                TraceManager.addDev("Saving in traffics in file: " + fileName);
+                FileUtils.saveFile(fileName, ncs.toISAETrafficsXML());
+                TraceManager.addDev("Save done");
+            } catch (FileException fe) {
+                TraceManager.addError("Could not save NC in file:" + fe.getMessage());
+            }
+            mgui.setMode(MainGUI.NC_OK);
+            return true;
+        }
+
+    }
+
+
+    public boolean translateTMLDesign(Vector tasksToTakeIntoAccount, TMLDesignPanel tmldp, boolean optimize) {
+        ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();
+        warnings = new Vector();
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+
+        GTMLModeling gtmlm = new GTMLModeling(tmldp, true);
+        gtmlm.setTasks(tasksToTakeIntoAccount);
+        tmlm = gtmlm.translateToTMLModeling(true);
+        //tmlm.removeAllRandomSequences();
+        TraceManager.addDev("New TML Modeling:" + tmlm.toString());
+        mgui.generateTMLTxt();
+        artificialtmap = tmlm.getDefaultMapping();
+        tmap = null;
+        listE = gtmlm.getCorrespondanceTable();
+
+        //TraceManager.addDev("TML Modeling translated");
+        //TraceManager.addDev("----- TML Modeling -----");
+        //TraceManager.addDev(tmlm.toString());
+        //TraceManager.addDev("------------------------");
+        checkingErrors = gtmlm.getCheckingErrors();
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            analyzeErrors();
+            return false;
+        } else {
+            if (optimize) {
+                warningsOptimize = tmlm.optimize();
+            }
+
+            tmState = 2;
+            mgui.resetAllDIPLOIDs();
+            listE.useDIPLOIDs();
+            return true;
+            //TraceManager.addDev("tm generated:");
+            //tm.print();
+        }
+    }
+
+    public Vector convertToCheckingErrorTMLErrors(ArrayList<TMLError> warningsOptimize, TDiagramPanel _tdp) {
+        Vector v = new Vector();
+        CheckingError warning;
+        for(TMLError error: warningsOptimize) {
+            warning = new CheckingError(CheckingError.BEHAVIOR_ERROR, error.message);
+            warning.setTDiagramPanel(_tdp);
+            warning.setTMLTask(error.task);
+            v.add(warning);
+        }
+        return v;
+    }
+
+    public boolean translateTMLComponentDesign(Vector componentsToTakeIntoAccount, TMLComponentDesignPanel tmlcdp, boolean optimize) {
+        ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();
+        warnings = new Vector();
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+
+        GTMLModeling gctmlm = new GTMLModeling(tmlcdp, true);
         gctmlm.putPrefixName(true);
-		gctmlm.setComponents(componentsToTakeIntoAccount);
-		tmlm = gctmlm.translateToTMLModeling(true);
-		mgui.generateTMLTxt();
-		artificialtmap = tmlm.getDefaultMapping();
-		tmap = null;
-		listE = gctmlm.getCorrespondanceTable();
-		
-		//TraceManager.addDev("TML Modeling translated");
-		//TraceManager.addDev("----- TML Modeling -----");
-		//TraceManager.addDev(tmlm.toString());
-		//TraceManager.addDev("------------------------");
-		//mgui.generateTMLTxt();
-		checkingErrors = gctmlm.getCheckingErrors();
-
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			analyzeErrors();
-			return false;
-		} else {
-			if (optimize) {
-				//TraceManager.addDev("OPTIMIZE");
-				warningsOptimize = tmlm.optimize();
-			}
-
-			tmState = 2;
-			//TraceManager.addDev("tm generated:");
-			mgui.resetAllDIPLOIDs();
-			listE.useDIPLOIDs();
-			return true;
-			//tm.print();
-		}
-	}
-	
-	public boolean translateTMLModeling() {
-		TML2TURTLE tt = new TML2TURTLE(tmlm);
-		tm = tt.generateTURTLEModeling();
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			analyzeErrors();
-			return false;
-		} else {
-			// Optimize
-			//TraceManager.addDev("Optimize");
-			tm.optimize();
-			//TraceManager.addDev("Optimize done");
-			TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
-			checkingErrors = tmc.syntaxAnalysisChecking();
-			if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-				analyzeErrors();
-				return false;
-			} else {
-				mgui.setMode(MainGUI.GEN_DESIGN_OK);
-				return true;
-			}
-		}
-	}
-	
-	public boolean checkSyntaxTMLMapping(Vector nodesToTakeIntoAccount, TMLArchiPanel tmlap, boolean optimize) {
-		ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();		
-		warnings = new Vector();
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		//TraceManager.addDev("New TML Mapping");
-		GTMLModeling gtmlm = new GTMLModeling(tmlap, true);
-		
-		
-		gtmlm.setNodes(nodesToTakeIntoAccount);	//simply transforms the parameter from a Vector to LinkedList
-		tmlm = null;
-		tm = null;
-		tmState = 1;
-		tmap = gtmlm.translateToTMLMapping();
-		
-		listE = gtmlm.getCorrespondanceTable();
-		
-		checkingErrors = gtmlm.getCheckingErrors();
-		
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			analyzeErrors();
-			warnings = gtmlm.getCheckingWarnings();
-			return false;
-		} else {
-			//tmap.removeAllRandomSequences();
-			if (optimize) {
-				warningsOptimize = tmap.optimize();
-			}
-			warnings.addAll(convertToCheckingErrorTMLErrors(warningsOptimize, tmlap.tmlap));
-			mgui.resetAllDIPLOIDs();
-			listE.useDIPLOIDs();
-			mgui.setMode(MainGUI.GEN_DESIGN_OK);
-			return true;
-		}
-	}
-
-	//Newly introduced to perform Syntax check of CP diagrams. Actually the mapping of CPs onto the architecture is done via SDs,
-	//onto the application is done onto blocks in the architecture. It would be better to have all the mapping information in one
-	//diagram. Up to now, not taking the mapping information into account
-	public boolean checkSyntaxTMLCP( Vector nodesToTakeIntoAccount, TMLCommunicationPatternPanel tmlcpp, boolean optimize ) {
-
-		//nodesToTakeIntoAccount is the list of SDs and ADs corresponding that compose the CP selected for syntax checking
-		ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();		
-		warnings = new Vector();
-		mgui.setMode( MainGUI.VIEW_SUGG_DESIGN_KO );
-		GTMLModeling gtmlm = new GTMLModeling( tmlcpp, true );
-
-		TraceManager.addDev( "NodesToTakeIntoAccount :" + nodesToTakeIntoAccount.toString() );
-		
-		//Useless because nodesToTakeIntoAccount does not include the mainCP!
-		//gtmlm.setDiagramPanels( nodesToTakeIntoAccount );	//passes the list of nodes (SDs and ADs) to gtml as a LinkedList
-		tmlm = null;
-		tm = null;
-		tmState = 1;
-		//tmlcp is the data structure for a CP corresponding to the graphical description with diagrams
-		tmlcp = gtmlm.translateToTMLCPDataStructure( tmlcpp.getName() );
-		//tmlcp.toString();
-		/*TraceManager.addDev( "I AM ABOUT TO GENERATE THE TMLtxt CODE!" );
-		mgui.generateTMLTxt();	//Now generating the TMLtxt code
-		TraceManager.addDev( "TMLtxt CODE GENERATION DONE" );*/
-		listE = gtmlm.getCorrespondanceTable();
-		//for( CorrespondanceTGElement element : listE.getNames() )	{
-			TraceManager.addDev( "Printing listE.getNames: " + listE.getNames().toString() );
-			TraceManager.addDev( "Printing listE.getTG: " + listE.getTG().toString() );
-			TraceManager.addDev( "Printing listE.getPanelNames: " + listE.getPanelNames().toString() );
-			TraceManager.addDev( "Printing listE.getData: " + listE.getData().toString() );
-		//}
-		checkingErrors = gtmlm.getCheckingErrors();
-		
-		if( (checkingErrors != null) && (checkingErrors.size() > 0) )	{
-			//analyzeErrors();
-			
-			return false;
-		}
-		/*else {
-			//tmcp.removeAllRandomSequences();
-			if( optimize )	{
-				warningsOptimize = tmap.optimize();
-				//warningsOptimize = tmcp.optimize();
-			}
-			warnings.addAll( convertToCheckingErrorTMLErrors(warningsOptimize, tmlcpp.tmlcpp ) );
-			mgui.resetAllDIPLOIDs();
-			listE.useDIPLOIDs();
-			mgui.setMode( MainGUI.GEN_DESIGN_OK );
-			return true;
-		}*/
-		return true;	//It means that there are no errors
-	}
-	
-	public boolean translateTMLMapping(boolean _sample, boolean _channel, boolean _event, boolean _request, boolean _exec, boolean _busTransfers, boolean _scheduling, boolean _taskState, boolean _channelState, boolean _branching, boolean _terminateCPU, boolean _terminateCPUs, boolean _clocked, String _tickValue, boolean _endClocked, boolean _countTick, boolean _maxCountTick, String _maxCountTickValue, boolean _randomTask) {
-		//TraceManager.addDev("TML=" + tmap.toString());
-		Mapping2TIF m2tif = new Mapping2TIF(tmap);
-		m2tif.setShowSampleChannels(_sample);
-		m2tif.setShowChannels(_channel);
-		m2tif.setShowEvents(_event);
-		m2tif.setShowRequests(_request);
-		m2tif.setShowExecs(_exec);
-		m2tif.setShowBusTransfers(_busTransfers);
-		m2tif.setShowScheduling(_scheduling);
-		m2tif.setIsClocked(_clocked);
-		m2tif.setTickValue(_tickValue);
-		m2tif.setIsEndClocked(_endClocked);
-		m2tif.setIsCountTick(_countTick);
-		m2tif.hasMaxCountTick(_maxCountTick);
-		if (_maxCountTick) {
-			m2tif.setMaxCountTickValue(_maxCountTickValue);
-		}
-		m2tif.setShowTaskState(_taskState);
-		m2tif.setShowChannelState(_channelState);
-		m2tif.setShowBlockedCPU(_terminateCPU);
-		m2tif.setShowTerminateCPUs(_terminateCPUs);
-		m2tif.setShowBranching(_branching);
-		m2tif.setRandomTasks(_randomTask);
-		tm = m2tif.generateTURTLEModeling();
-		//StringBuffer sb = tm.printToStringBuffer();
-		//TraceManager.addDev("tm=" + sb);
-		
-		TraceManager.addDev("tm generated from TMAP");
-		checkingErrors = m2tif.getCheckingErrors();
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			return false;
-		}
-		mgui.setMode(MainGUI.GEN_DESIGN_OK);
-		return true;
-	}
-
-	//Added by Solange
-	public void generateLists(ProactiveDesignPanel pdp) {
-		gpdtemp = new GProactiveDesign(pdp);	
-	}
-	//
-
-	public boolean translateTURTLEOSDesign(TURTLEOSDesignPanel tosdp) {
-		warnings = new Vector();
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		//TraceManager.addDev("New TML Modeling");
-		GTURTLEOSModeling gosm = new GTURTLEOSModeling(tosdp);
-		//gtmlm.setTasks(tasksToTakeIntoAccount);
-		//tmlm = gosm.translateToTMLModeling();
-		//TraceManager.addDev("TML Modeling translated");
-		//TraceManager.addDev("----- TML Modeling -----");
-		//TraceManager.addDev(tmlm.toString());
-		//TraceManager.addDev("------------------------");
-		tm = gosm.generateTURTLEModeling();
-		tmState = 0;
-		checkingErrors = gosm.getCheckingErrors();
-
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			return false;
-		} else {
-
-			//TraceManager.addDev("Optimize");
-			tm.optimize();
-			//TraceManager.addDev("Optimize done");
-			TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
-			checkingErrors = tmc.syntaxAnalysisChecking();
-			if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-				return false;
-			} else {
-				warnings = gosm.getCheckingWarnings();
-				warnings.addAll(tmc.getWarnings());
-				mgui.setMode(MainGUI.GEN_DESIGN_OK);
-				return true;
-			}
-		}
-	}
-
-
-	public boolean translateProactiveDesign(ProactiveDesignPanel pdp) {
-		mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
-		GProactiveDesign gpd = new GProactiveDesign(pdp);
-
-		tm = gpd.generateTURTLEModeling();
-		tmState = 0;
-
-		if (gpd.checkSyntax() == false) {
-			TraceManager.addDev("Errors found");
-			warnings = gpd.getCheckingWarnings();
-			checkingErrors = gpd.getCheckingErrors();
-			return false;
-		}
-		TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
-		checkingErrors = tmc.syntaxAnalysisChecking();
-		warnings = tmc.getWarnings();
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			return false;
-		} else {
-			//A faire:
-				//  tm.optimize();
-			//  warnings = gpd.getCheckingWarnings();
-			//  warnings.addAll(tmc.getWarnings());
-			mgui.setMode(MainGUI.GEN_DESIGN_OK);
-			return true;
-		}
-
-	}
-
-	// Generates for all observers, a TURTLE modeling for checking it
-	public boolean generateTMsForRequirementAnalysis(Vector reqs, RequirementDiagramPanel rdp) {
-		rm = new RequirementModeling(reqs, rdp, mgui);
-		checkingErrors = rm.getCheckingErrors();
-		warnings = rm.getWarnings();
-		if ((checkingErrors != null) && (checkingErrors.size() > 0)){
-			return false;
-		} else {
-			//mgui.setMode(mgui.GEN_DESIGN_OK);
-			languageID = MATRIX;
-			return true;
-		}
-	}
-
-	public RequirementModeling getRequirementModeling() {
-		return rm;
-	}
-	
-	public void removeBreakpoint(Point p) {
-		if (listE == null) {
-			return;
-		}
-		
-		listE.removeBreakpoint(p);
-	}
-	
-	public void addBreakpoint(Point p) {
-		if (listE == null) {
-			return;
-		}
-		
-		listE.addBreakpoint(p);
-	}
-	
-	private void analyzeErrors() {
-		CheckingError ce;
-		TGComponent tgc;
-		
-		for(int i=0; i<checkingErrors.size(); i++) {
-			ce = (CheckingError)(checkingErrors.get(i));
-			if (ce != null) {
-				tgc = ce.getTGComponent();
-				if (tgc != null) {
-					analyzeErrorOnComponent(tgc);
-				}
-			}
-		}
-	}
-	
-	private void analyzeErrorOnComponent(TGComponent _tgc) {
-		if (_tgc instanceof BasicErrorHighlight) {
-			((BasicErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN);
-		} else if (_tgc instanceof ActionStateErrorHighlight) {
-			((ActionStateErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN_AS);
-		}
-	}
-	
-	public boolean makeEBRDD(EBRDDPanel tdp) {
-		EBRDDTranslator ebrddt = new EBRDDTranslator();
-		ebrdd = ebrddt.generateEBRDD(tdp, tdp.getName());
-		warnings = ebrddt.getWarnings();
-		checkingErrors = ebrddt.getErrors();
-		if (checkingErrors.size() > 0) {
-			return false;
-		}
-		TraceManager.addDev("the EBRDD:\n" + ebrdd.toString());
-		return true;
-	}
-	
-	public void setElementsOfSearchTree(Vector<Object> elements) {
-		st.setElements(elements);
-	}
+        gctmlm.setComponents(componentsToTakeIntoAccount);
+        tmlm = gctmlm.translateToTMLModeling(true);
+        mgui.generateTMLTxt();
+        artificialtmap = tmlm.getDefaultMapping();
+        tmap = null;
+        listE = gctmlm.getCorrespondanceTable();
+
+        //TraceManager.addDev("TML Modeling translated");
+        //TraceManager.addDev("----- TML Modeling -----");
+        //TraceManager.addDev(tmlm.toString());
+        //TraceManager.addDev("------------------------");
+        //mgui.generateTMLTxt();
+        checkingErrors = gctmlm.getCheckingErrors();
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            analyzeErrors();
+            return false;
+        } else {
+            if (optimize) {
+                //TraceManager.addDev("OPTIMIZE");
+                warningsOptimize = tmlm.optimize();
+            }
+
+            tmState = 2;
+            //TraceManager.addDev("tm generated:");
+            mgui.resetAllDIPLOIDs();
+            listE.useDIPLOIDs();
+            return true;
+            //tm.print();
+        }
+    }
+
+    public boolean translateTMLModeling() {
+        TML2TURTLE tt = new TML2TURTLE(tmlm);
+        tm = tt.generateTURTLEModeling();
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            analyzeErrors();
+            return false;
+        } else {
+            // Optimize
+            //TraceManager.addDev("Optimize");
+            tm.optimize();
+            //TraceManager.addDev("Optimize done");
+            TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
+            checkingErrors = tmc.syntaxAnalysisChecking();
+            if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+                analyzeErrors();
+                return false;
+            } else {
+                mgui.setMode(MainGUI.GEN_DESIGN_OK);
+                return true;
+            }
+        }
+    }
+
+    public boolean checkSyntaxTMLMapping(Vector nodesToTakeIntoAccount, TMLArchiPanel tmlap, boolean optimize) {
+        ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();
+        warnings = new Vector();
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+        //TraceManager.addDev("New TML Mapping");
+        GTMLModeling gtmlm = new GTMLModeling(tmlap, true);
+
+
+        gtmlm.setNodes(nodesToTakeIntoAccount); //simply transforms the parameter from a Vector to LinkedList
+        tmlm = null;
+        tm = null;
+        tmState = 1;
+        tmap = gtmlm.translateToTMLMapping();
+
+        listE = gtmlm.getCorrespondanceTable();
+
+        checkingErrors = gtmlm.getCheckingErrors();
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            analyzeErrors();
+            warnings = gtmlm.getCheckingWarnings();
+            return false;
+        } else {
+            //tmap.removeAllRandomSequences();
+            if (optimize) {
+                warningsOptimize = tmap.optimize();
+            }
+            warnings.addAll(convertToCheckingErrorTMLErrors(warningsOptimize, tmlap.tmlap));
+            mgui.resetAllDIPLOIDs();
+            listE.useDIPLOIDs();
+            mgui.setMode(MainGUI.GEN_DESIGN_OK);
+            return true;
+        }
+    }
+
+    //Newly introduced to perform Syntax check of CP diagrams. Actually the mapping of CPs onto the architecture is done via SDs,
+    //onto the application is done onto blocks in the architecture. It would be better to have all the mapping information in one
+    //diagram. Up to now, not taking the mapping information into account
+    public boolean checkSyntaxTMLCP( Vector nodesToTakeIntoAccount, TMLCommunicationPatternPanel tmlcpp, boolean optimize ) {
+
+        //nodesToTakeIntoAccount is the list of SDs and ADs corresponding that compose the CP selected for syntax checking
+        ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>();
+        warnings = new Vector();
+        mgui.setMode( MainGUI.VIEW_SUGG_DESIGN_KO );
+        GTMLModeling gtmlm = new GTMLModeling( tmlcpp, true );
+
+        TraceManager.addDev( "NodesToTakeIntoAccount :" + nodesToTakeIntoAccount.toString() );
+
+        //Useless because nodesToTakeIntoAccount does not include the mainCP!
+        //gtmlm.setDiagramPanels( nodesToTakeIntoAccount );     //passes the list of nodes (SDs and ADs) to gtml as a LinkedList
+        tmlm = null;
+        tm = null;
+        tmState = 1;
+        //tmlcp is the data structure for a CP corresponding to the graphical description with diagrams
+        tmlcp = gtmlm.translateToTMLCPDataStructure( tmlcpp.getName() );
+        //tmlcp.toString();
+        /*TraceManager.addDev( "I AM ABOUT TO GENERATE THE TMLtxt CODE!" );
+          mgui.generateTMLTxt();        //Now generating the TMLtxt code
+          TraceManager.addDev( "TMLtxt CODE GENERATION DONE" );*/
+        listE = gtmlm.getCorrespondanceTable();
+        //for( CorrespondanceTGElement element : listE.getNames() )     {
+        TraceManager.addDev( "Printing listE.getNames: " + listE.getNames().toString() );
+        TraceManager.addDev( "Printing listE.getTG: " + listE.getTG().toString() );
+        TraceManager.addDev( "Printing listE.getPanelNames: " + listE.getPanelNames().toString() );
+        TraceManager.addDev( "Printing listE.getData: " + listE.getData().toString() );
+        //}
+        checkingErrors = gtmlm.getCheckingErrors();
+
+        if( (checkingErrors != null) && (checkingErrors.size() > 0) )   {
+            //analyzeErrors();
+
+            return false;
+        }
+        /*else {
+        //tmcp.removeAllRandomSequences();
+        if( optimize )  {
+        warningsOptimize = tmap.optimize();
+        //warningsOptimize = tmcp.optimize();
+        }
+        warnings.addAll( convertToCheckingErrorTMLErrors(warningsOptimize, tmlcpp.tmlcpp ) );
+        mgui.resetAllDIPLOIDs();
+        listE.useDIPLOIDs();
+        mgui.setMode( MainGUI.GEN_DESIGN_OK );
+        return true;
+        }*/
+        return true;    //It means that there are no errors
+    }
+
+    public boolean translateTMLMapping(boolean _sample, boolean _channel, boolean _event, boolean _request, boolean _exec, boolean _busTransfers, boolean _scheduling, boolean _taskState, boolean _channelState, boolean _branching, boolean _terminateCPU, boolean _terminateCPUs, boolean _clocked, String _tickValue, boolean _endClocked, boolean _countTick, boolean _maxCountTick, String _maxCountTickValue, boolean _randomTask) {
+        //TraceManager.addDev("TML=" + tmap.toString());
+        Mapping2TIF m2tif = new Mapping2TIF(tmap);
+        m2tif.setShowSampleChannels(_sample);
+        m2tif.setShowChannels(_channel);
+        m2tif.setShowEvents(_event);
+        m2tif.setShowRequests(_request);
+        m2tif.setShowExecs(_exec);
+        m2tif.setShowBusTransfers(_busTransfers);
+        m2tif.setShowScheduling(_scheduling);
+        m2tif.setIsClocked(_clocked);
+        m2tif.setTickValue(_tickValue);
+        m2tif.setIsEndClocked(_endClocked);
+        m2tif.setIsCountTick(_countTick);
+        m2tif.hasMaxCountTick(_maxCountTick);
+        if (_maxCountTick) {
+            m2tif.setMaxCountTickValue(_maxCountTickValue);
+        }
+        m2tif.setShowTaskState(_taskState);
+        m2tif.setShowChannelState(_channelState);
+        m2tif.setShowBlockedCPU(_terminateCPU);
+        m2tif.setShowTerminateCPUs(_terminateCPUs);
+        m2tif.setShowBranching(_branching);
+        m2tif.setRandomTasks(_randomTask);
+        tm = m2tif.generateTURTLEModeling();
+        //StringBuffer sb = tm.printToStringBuffer();
+        //TraceManager.addDev("tm=" + sb);
+
+        TraceManager.addDev("tm generated from TMAP");
+        checkingErrors = m2tif.getCheckingErrors();
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        }
+        mgui.setMode(MainGUI.GEN_DESIGN_OK);
+        return true;
+    }
+
+    //Added by Solange
+    public void generateLists(ProactiveDesignPanel pdp) {
+        gpdtemp = new GProactiveDesign(pdp);
+    }
+    //
+
+    public boolean translateTURTLEOSDesign(TURTLEOSDesignPanel tosdp) {
+        warnings = new Vector();
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+        //TraceManager.addDev("New TML Modeling");
+        GTURTLEOSModeling gosm = new GTURTLEOSModeling(tosdp);
+        //gtmlm.setTasks(tasksToTakeIntoAccount);
+        //tmlm = gosm.translateToTMLModeling();
+        //TraceManager.addDev("TML Modeling translated");
+        //TraceManager.addDev("----- TML Modeling -----");
+        //TraceManager.addDev(tmlm.toString());
+        //TraceManager.addDev("------------------------");
+        tm = gosm.generateTURTLEModeling();
+        tmState = 0;
+        checkingErrors = gosm.getCheckingErrors();
+
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        } else {
+
+            //TraceManager.addDev("Optimize");
+            tm.optimize();
+            //TraceManager.addDev("Optimize done");
+            TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
+            checkingErrors = tmc.syntaxAnalysisChecking();
+            if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+                return false;
+            } else {
+                warnings = gosm.getCheckingWarnings();
+                warnings.addAll(tmc.getWarnings());
+                mgui.setMode(MainGUI.GEN_DESIGN_OK);
+                return true;
+            }
+        }
+    }
+
+
+    public boolean translateProactiveDesign(ProactiveDesignPanel pdp) {
+        mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO);
+        GProactiveDesign gpd = new GProactiveDesign(pdp);
+
+        tm = gpd.generateTURTLEModeling();
+        tmState = 0;
+
+        if (gpd.checkSyntax() == false) {
+            TraceManager.addDev("Errors found");
+            warnings = gpd.getCheckingWarnings();
+            checkingErrors = gpd.getCheckingErrors();
+            return false;
+        }
+        TURTLEModelChecker tmc = new TURTLEModelChecker(tm);
+        checkingErrors = tmc.syntaxAnalysisChecking();
+        warnings = tmc.getWarnings();
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        } else {
+            //A faire:
+            //  tm.optimize();
+            //  warnings = gpd.getCheckingWarnings();
+            //  warnings.addAll(tmc.getWarnings());
+            mgui.setMode(MainGUI.GEN_DESIGN_OK);
+            return true;
+        }
+
+    }
+
+    // Generates for all observers, a TURTLE modeling for checking it
+    public boolean generateTMsForRequirementAnalysis(Vector reqs, RequirementDiagramPanel rdp) {
+        rm = new RequirementModeling(reqs, rdp, mgui);
+        checkingErrors = rm.getCheckingErrors();
+        warnings = rm.getWarnings();
+        if ((checkingErrors != null) && (checkingErrors.size() > 0)){
+            return false;
+        } else {
+            //mgui.setMode(mgui.GEN_DESIGN_OK);
+            languageID = MATRIX;
+            return true;
+        }
+    }
+
+    public RequirementModeling getRequirementModeling() {
+        return rm;
+    }
+
+    public void removeBreakpoint(Point p) {
+        if (listE == null) {
+            return;
+        }
+
+        listE.removeBreakpoint(p);
+    }
+
+    public void addBreakpoint(Point p) {
+        if (listE == null) {
+            return;
+        }
+
+        listE.addBreakpoint(p);
+    }
+
+    private void analyzeErrors() {
+        CheckingError ce;
+        TGComponent tgc;
+
+        for(int i=0; i<checkingErrors.size(); i++) {
+            ce = (CheckingError)(checkingErrors.get(i));
+            if (ce != null) {
+                tgc = ce.getTGComponent();
+                if (tgc != null) {
+                    analyzeErrorOnComponent(tgc);
+                }
+            }
+        }
+    }
+
+    private void analyzeErrorOnComponent(TGComponent _tgc) {
+        if (_tgc instanceof BasicErrorHighlight) {
+            ((BasicErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN);
+        } else if (_tgc instanceof ActionStateErrorHighlight) {
+            ((ActionStateErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN_AS);
+        }
+    }
+
+    public boolean makeEBRDD(EBRDDPanel tdp) {
+        EBRDDTranslator ebrddt = new EBRDDTranslator();
+        ebrdd = ebrddt.generateEBRDD(tdp, tdp.getName());
+        warnings = ebrddt.getWarnings();
+        checkingErrors = ebrddt.getErrors();
+        if (checkingErrors.size() > 0) {
+            return false;
+        }
+        TraceManager.addDev("the EBRDD:\n" + ebrdd.toString());
+        return true;
+    }
+
+    public void setElementsOfSearchTree(Vector<Object> elements) {
+        st.setElements(elements);
+    }
 
 }
diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java
index 68372f101caa64970be84d7e718a3a69bde10d33..61cdb55718d4c8e2343532ff1a5f984e06e8aeea 100755
--- a/src/ui/MainGUI.java
+++ b/src/ui/MainGUI.java
@@ -123,7 +123,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
     public Container framePanel; //Main pane
     public Container panelForTab, panelForTree; //panelForAnalysisTab; //panelForDesignTab;
     public JSplitPane split;
-   
+
 
 
 
@@ -147,8 +147,8 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
     //Menubar
     private JMenuBarTurtle jmenubarturtle;
-    
- 
+
+
 
     // Annex windows
     JFrameCode javaframe;
@@ -293,7 +293,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
     PeriodicBehaviorThread pbt;
 
     public MainGUI(boolean _systemcOn, boolean _lotosOn, boolean _proactiveOn, boolean _tpnOn, boolean _osOn, boolean _uppaalOn, boolean _ncOn, boolean _avatarOn, boolean _proverifOn, boolean
-    	_avatarOnly, boolean _experimental) {
+                   _avatarOnly, boolean _experimental) {
         systemcOn = _systemcOn;
         lotosOn = _lotosOn;
         proactiveOn = _proactiveOn;
@@ -497,36 +497,36 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
     public void changeMade(TDiagramPanel tdp, int type) {
         hasChanged = true;
         if (tdp != null) {
-        switch (type) {
-        case -1:
-            // Structural change
-            break;
-        case TDiagramPanel.NEW_COMPONENT:
-            //TraceManager.addDev("New Component");
-            tdp.structureChanged();
-            break;
-        case TDiagramPanel.NEW_CONNECTOR:
-            //TraceManager.addDev("New Connector");
-            tdp.structureChanged();
-            break;
-        case TDiagramPanel.REMOVE_COMPONENT:
-            //TraceManager.addDev("Remove Component");
-            tdp.structureChanged();
-            break;
-        case TDiagramPanel.MOVE_CONNECTOR:
-            //TraceManager.addDev("Move Connector");
-            tdp.structureChanged();
-            break;
-        case TDiagramPanel.CHANGE_VALUE_COMPONENT:
-            //TraceManager.addDev("Value of component changed");
-            tdp.valueChanged();
-            break;
-        case TDiagramPanel.MOVE_COMPONENT:
-            //TraceManager.addDev("Component moved");
-            break;
-        default:
+            switch (type) {
+            case -1:
+                // Structural change
+                break;
+            case TDiagramPanel.NEW_COMPONENT:
+                //TraceManager.addDev("New Component");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.NEW_CONNECTOR:
+                //TraceManager.addDev("New Connector");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.REMOVE_COMPONENT:
+                //TraceManager.addDev("Remove Component");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.MOVE_CONNECTOR:
+                //TraceManager.addDev("Move Connector");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.CHANGE_VALUE_COMPONENT:
+                //TraceManager.addDev("Value of component changed");
+                tdp.valueChanged();
+                break;
+            case TDiagramPanel.MOVE_COMPONENT:
+                //TraceManager.addDev("Component moved");
+                break;
+            default:
 
-        }
+            }
         }
         setMode(MODEL_CHANGED);
         Point p;
@@ -617,11 +617,11 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
             if (mainBar != null) {
                 mainBar.activateSearch(true);
             }
-	    //@author: Huy TRUONG
-	        actions[TGUIAction.ACT_EXTERNAL_SEARCH].setEnabled(true);
+            //@author: Huy TRUONG
+            actions[TGUIAction.ACT_EXTERNAL_SEARCH].setEnabled(true);
             //disable when there is no text in search textfield
             actions[TGUIAction.ACT_INTERNAL_SEARCH].setEnabled(false);
-	    //--
+            //--
             break;
         case MODEL_OK:
             actions[TGUIAction.ACT_SAVE_TIF].setEnabled(true);
@@ -1159,7 +1159,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         //ystem.out.println("Design added");
         return index;
     }
-    
+
     private int addAvatarMethodologyPanel(String name, int index, boolean addDefaultElements) {
         if (index == -1) {
             index = tabs.size();
@@ -1211,7 +1211,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         //ystem.out.println("Design added");
         return index;
     }
-    
+
     private int addTMLArchiPanel(String name, int index) {
         if (index == -1) {
             index = tabs.size();
@@ -1228,20 +1228,20 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         return index;
     }
 
-		//Return the list of all the TMLArchiDiagramPanels
-		public Vector<TMLArchiPanel> getTMLArchiDiagramPanels()	{
+    //Return the list of all the TMLArchiDiagramPanels
+    public Vector<TMLArchiPanel> getTMLArchiDiagramPanels()     {
 
-			Vector<TMLArchiPanel> panelsList = new Vector<TMLArchiPanel>();
-			TURTLEPanel tp;
+        Vector<TMLArchiPanel> panelsList = new Vector<TMLArchiPanel>();
+        TURTLEPanel tp;
 
-      for(int i=0; i<tabs.size(); i++) {
-				tp = (TURTLEPanel)(tabs.elementAt(i));
-				if ( tp instanceof TMLArchiPanel) {
-					panelsList.add( (TMLArchiPanel) (tp) );
-				}
-			}
-			return panelsList;
-		}
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if ( tp instanceof TMLArchiPanel) {
+                panelsList.add( (TMLArchiPanel) (tp) );
+            }
+        }
+        return panelsList;
+    }
 
     public Vector<String> getAllTMLTaskNames() {
         TURTLEPanel tp;
@@ -1262,8 +1262,8 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
         for(int i=0; i<tabs.size(); i++) {
             tp = (TURTLEPanel)(tabs.elementAt(i));
-            if( tp instanceof TMLCommunicationPatternPanel )	{
-							list.add( (TMLCommunicationPatternPanel) tp );
+            if( tp instanceof TMLCommunicationPatternPanel )    {
+                list.add( (TMLCommunicationPatternPanel) tp );
             }
         }
         return list;
@@ -1308,20 +1308,20 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         return list;
     }
 
-   public Vector<String> getAllTMLEventNames() {
-     TURTLEPanel tp;
-    Vector<String> list = new Vector<String>();
- 
-     for( int i = 0; i < tabs.size(); i++ ) {
-       tp = ( TURTLEPanel )( tabs.elementAt(i) );
-       if ( tp instanceof TMLDesignPanel ) {
-         list.addAll( ( (TMLDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
-       } else if ( tp instanceof TMLComponentDesignPanel ) {
-         list.addAll( ( (TMLComponentDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
-       }
-     }
-     return list;
-   }
+    public Vector<String> getAllTMLEventNames() {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for( int i = 0; i < tabs.size(); i++ ) {
+            tp = ( TURTLEPanel )( tabs.elementAt(i) );
+            if ( tp instanceof TMLDesignPanel ) {
+                list.addAll( ( (TMLDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
+            } else if ( tp instanceof TMLComponentDesignPanel ) {
+                list.addAll( ( (TMLComponentDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
+            }
+        }
+        return list;
+    }
 
     public Vector<String> getAllNonMappedTMLTaskNames(TMLArchiDiagramPanel tadp, String ref, String name) {
         TURTLEPanel tp;
@@ -1342,7 +1342,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
         return list;
     }
-    
+
     public Vector<String> getAllNonMappedAvatarBlockNames(ADDDiagramPanel tadp, String ref, String name) {
         TURTLEPanel tp;
         Vector<String> list = new Vector<String>();
@@ -1358,7 +1358,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
         return list;
     }
-    
+
     public Vector<String> getAllNonMappedAvatarChannelNames(ADDDiagramPanel tadp, String ref, String name) {
         TURTLEPanel tp;
         Vector<String> list = new Vector<String>();
@@ -1520,7 +1520,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         mainTabbedPane.setSelectedIndex(index);
         return index;
     }
-    
+
     public int createAvatarMethodology(String name) {
         int index = addAvatarMethodologyPanel(name, -1, false);
         mainTabbedPane.setSelectedIndex(index);
@@ -1550,7 +1550,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         mainTabbedPane.setSelectedIndex(index);
         return index;
     }
-    
+
     public int createADD(String name) {
         int index = addADDPanel(name, -1);
         mainTabbedPane.setSelectedIndex(index);
@@ -1858,7 +1858,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         //paneAction(null);
         //frame.repaint();
     }
-    
+
     public void newAvatarMethodology() {
         //TraceManager.addDev("NEW DESIGN");
         addAvatarMethodologyPanel("AVATAR_Methodology", -1, true);
@@ -1893,8 +1893,8 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         mainTabbedPane.setSelectedIndex(tabs.size()-1);
         //paneAction(null);
         //frame.repaint();
-    }           
-    
+    }
+
     public void newADD() {
         TraceManager.addDev("NEW Avatar deployment");
         addADDPanel("Avatar Deployment", -1);
@@ -2399,12 +2399,12 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
             // close current modeling
             closeTurtleModeling();
-            
-            
+
+
 
             // open the new TURTLE modeling
             newTurtleModeling();
-            
+
             gtm.enableUndo(false);
 
             // Update configuration
@@ -2457,12 +2457,12 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
             // close current modeling
             closeTurtleModeling();
-            
-            
+
+
 
             // open the new TURTLE modeling
             newTurtleModeling();
-            
+
             gtm.enableUndo(false);
 
             //TraceManager.addDev("Loading");
@@ -3169,5303 +3169,5326 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
                 }
             }
 
-            // AVATAR
-        } else if (tp instanceof AvatarDesignPanel) {
-            //Design
-            AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-            //JDialogModelChecking.validated = adp.validated;
-            //JDialogModelChecking.ignored = adp.ignored;
-            tclassesToValidate = new Vector();
-            JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, tclassesToValidate, adp.getAvatarBDPanel().getFullBlockList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
-            if (!automatic) {
-                GraphicLib.centerOnParent(jdmc);
-                jdmc.setVisible(true); // blocked until dialog has been closed
+            // AttackTree
+        } else if (tp instanceof AttackTreePanel) {
+            AttackTreePanel atp = (AttackTreePanel) tp;
+            b = gtm.translateAttackTreePanel(atp);
+            if (b) {
+                setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). )",
+                                                  "Syntax analysis successful on attack tree",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
             } else {
-                jdmc.closeDialog();
-            }
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The Attack tree contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            } 
 
-            if (jdmc.hasBeenCancelled()) {
-                return false;
-            }
 
-	    adp.resetModelBacktracingProVerif();
+        // AVATAR
+    } else if (tp instanceof AvatarDesignPanel) {
+        //Design
+        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+        //JDialogModelChecking.validated = adp.validated;
+        //JDialogModelChecking.ignored = adp.ignored;
+        tclassesToValidate = new Vector();
+        JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, tclassesToValidate, adp.getAvatarBDPanel().getFullBlockList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
+        if (!automatic) {
+            GraphicLib.centerOnParent(jdmc);
+            jdmc.setVisible(true); // blocked until dialog has been closed
+        } else {
+            jdmc.closeDialog();
+        }
 
-            adp.setValidated(jdmc.getValidated());
-            adp.setIgnored(jdmc.getIgnored());
-            adp.setOptimized(jdmc.getOptimized());
+        if (jdmc.hasBeenCancelled()) {
+            return false;
+        }
 
+        adp.resetModelBacktracingProVerif();
 
-            boolean optimize = jdmc.getOptimized();
-            if (tclassesToValidate.size() > 0) {
-                /*adp.validated = JDialogModelChecking.validated;
-                  adp.ignored = JDialogModelChecking.ignored;*/
-                b = gtm.checkAvatarDesign(tclassesToValidate, adp, optimize);
-                if (b) {
-                    ret = true;
-                    setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK);
-                    //setMode(MainGUI.MODEL_PROVERIF_OK);
-                    //setMode(MainGUI.GEN_DESIGN_OK);
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform simulations or formal proofs (UPPAAL)",
-                                                      "Syntax analysis successful on avatar design diagrams",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                } else {
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "The Avatar modeling contains several errors",
-                                                      "Syntax analysis failed",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                }
-            }
+        adp.setValidated(jdmc.getValidated());
+        adp.setIgnored(jdmc.getIgnored());
+        adp.setOptimized(jdmc.getOptimized());
 
 
-            // NC
-        } else if (tp instanceof NCPanel) {
-            NCPanel ncp = (NCPanel) tp;
-            b = gtm.translateNC(ncp);
+        boolean optimize = jdmc.getOptimized();
+        if (tclassesToValidate.size() > 0) {
+            /*adp.validated = JDialogModelChecking.validated;
+              adp.ignored = JDialogModelChecking.ignored;*/
+            b = gtm.checkAvatarDesign(tclassesToValidate, adp, optimize);
             if (b) {
-                //setMode(MainGUI.MODEL_OK_NC);
                 ret = true;
+                setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK);
+                //setMode(MainGUI.MODEL_PROVERIF_OK);
+                //setMode(MainGUI.GEN_DESIGN_OK);
                 if (!automatic) {
                     JOptionPane.showMessageDialog(frame,
-                                                  "0 error, " + getCheckingWarnings().size() + " warning(s)",
-                                                  "Syntax analysis successful on NC diagram",
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform simulations or formal proofs (UPPAAL)",
+                                                  "Syntax analysis successful on avatar design diagrams",
                                                   JOptionPane.INFORMATION_MESSAGE);
                 }
             } else {
                 if (!automatic) {
                     JOptionPane.showMessageDialog(frame,
-                                                  "The NC diagram contains several errors",
+                                                  "The Avatar modeling contains several errors",
                                                   "Syntax analysis failed",
                                                   JOptionPane.INFORMATION_MESSAGE);
                 }
             }
+        }
 
 
-        } else if (tp instanceof TMLDesignPanel) {
-            TMLDesignPanel tmldp = (TMLDesignPanel)tp;
-            JDialogSelectTMLTask.validated = tmldp.validated;
-            JDialogSelectTMLTask.ignored = tmldp.ignored;
-            Vector tmlTasksToValidate = new Vector();
-            JDialogSelectTMLTask jdstmlt = new JDialogSelectTMLTask(frame, tmlTasksToValidate, tmldp.tmltdp.getComponentList(), "Choosing TML tasks to validate");
-            if (!automatic) {
-                GraphicLib.centerOnParent(jdstmlt);
-                jdstmlt.setVisible(true); // Blocked until dialog has been closed
-            } else {
-                jdstmlt.closeDialog();
-            }
-            if (tmlTasksToValidate.size() > 0) {
-                tmldp.validated = JDialogSelectTMLTask.validated;
-                tmldp.ignored = JDialogSelectTMLTask.ignored;
-                b = gtm.translateTMLDesign(tmlTasksToValidate, tmldp, jdstmlt.getOptimize());
-                if (b) {
-                    //setMode(MainGUI.MODEL_OK);
-                    setMode(MainGUI.GEN_SYSTEMC_OK);
-                    setMode(MainGUI.MODEL_OK);
-                    ret = true;
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)",
-                                                      "Syntax analysis successful on TML designs",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                } else {
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "The TML design contains several errors",
-                                                      "Syntax analysis failed",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                }
-            }
-        } else if (tp instanceof TMLComponentDesignPanel) {
-            TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel)tp;
-            JDialogSelectTMLComponent.validated = tmlcdp.validated;
-            JDialogSelectTMLComponent.ignored = tmlcdp.ignored;
-            Vector tmlComponentsToValidate = new Vector();
-            JDialogSelectTMLComponent jdstmlc = new JDialogSelectTMLComponent(frame, tmlComponentsToValidate, tmlcdp.tmlctdp.getComponentList(), "Choosing TML components to validate");
+        // NC
+    } else if (tp instanceof NCPanel) {
+        NCPanel ncp = (NCPanel) tp;
+        b = gtm.translateNC(ncp);
+        if (b) {
+            //setMode(MainGUI.MODEL_OK_NC);
+            ret = true;
             if (!automatic) {
-                GraphicLib.centerOnParent(jdstmlc);
-                jdstmlc.setVisible(true); // Blocked until dialog has been closed
-            } else {
-                jdstmlc.closeDialog();
-            }
-            if (tmlComponentsToValidate.size() > 0) {
-                tmlcdp.validated = JDialogSelectTMLComponent.validated;
-                tmlcdp.ignored = JDialogSelectTMLComponent.ignored;
-                b = gtm.translateTMLComponentDesign(tmlComponentsToValidate, tmlcdp, jdstmlc.getOptimize());
-                if (b) {
-                    //setMode(MainGUI.MODEL_OK);
-                    setMode(MainGUI.GEN_SYSTEMC_OK);
-                    setMode(MainGUI.MODEL_OK);
-                    ret = true;
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)",
-                                                      "Syntax analysis successful on TML designs",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                } else {
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "The TML design contains several errors",
-                                                      "Syntax analysis failed",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                }
+                JOptionPane.showMessageDialog(frame,
+                                              "0 error, " + getCheckingWarnings().size() + " warning(s)",
+                                              "Syntax analysis successful on NC diagram",
+                                              JOptionPane.INFORMATION_MESSAGE);
             }
-        } else if (tp instanceof TMLArchiPanel) {
-            TMLArchiPanel tmlap = (TMLArchiPanel)tp;
-            JDialogSelectTMLNodes.validated = tmlap.validated;
-            JDialogSelectTMLNodes.ignored = tmlap.ignored;
-            Vector tmlNodesToValidate = new Vector();
-            JDialogSelectTMLNodes jdstmln = new JDialogSelectTMLNodes(frame, tmlNodesToValidate, tmlap.tmlap.getComponentList(), "Choosing Nodes to validate", tmlap.tmlap.getMasterClockFrequency());
+        } else {
             if (!automatic) {
-                GraphicLib.centerOnParent(jdstmln);
-                jdstmln.setVisible(true); // Blocked until dialog has been closed
-            } else {
-                jdstmln.closeDialog();
-            }
-            tmlap.tmlap.setMasterClockFrequency(jdstmln.getClock());
-
-            if (tmlNodesToValidate.size() > 0) {
-                tmlap.validated = JDialogSelectTMLNodes.validated;
-                tmlap.ignored = JDialogSelectTMLNodes.ignored;
-                //TraceManager.addDev("Ready to generate TML mapping!");
-                b = gtm.checkSyntaxTMLMapping(tmlNodesToValidate, tmlap, jdstmln.getOptimize());
-                if (b) {
-                    //setMode(MainGUI.MODEL_OK);
-                    setMode(MainGUI.GEN_SYSTEMC_OK);
-                    setMode(MainGUI.MODEL_OK);
-                    ret = true;
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)",
-                                                      "Syntax analysis successful on TML mapping",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                } else {
-                    if (!automatic) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "The TML mapping contains several errors",
-                                                      "Syntax analysis failed",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                }
+                JOptionPane.showMessageDialog(frame,
+                                              "The NC diagram contains several errors",
+                                              "Syntax analysis failed",
+                                              JOptionPane.INFORMATION_MESSAGE);
             }
         }
-				else if( tp instanceof TMLCommunicationPatternPanel ) {
-					TMLCommunicationPatternPanel tmlcpp = (TMLCommunicationPatternPanel) tp;
-          JDialogSelectCPDiagrams.validated =  tmlcpp.validated;
-          JDialogSelectCPDiagrams.ignored =  tmlcpp.ignored;
-          Vector tmlDiagramsToValidate = new Vector();
-          JDialogSelectCPDiagrams jdscpd = new JDialogSelectCPDiagrams( frame, tmlDiagramsToValidate, tmlcpp.tmlcpp.getComponentList(),
-																														"Choosing Diagrams to validate" );
-					if( !automatic ) {
-						GraphicLib.centerOnParent( jdscpd );
-						jdscpd.setVisible( true ); // Blocked until dialog has been closed
-					}
-					else {
-						jdscpd.closeDialog();
-					}
-			    if( tmlDiagramsToValidate.size() > 0 ) {
-						tmlcpp.validated = JDialogSelectCPDiagrams.validated;
-						tmlcpp.ignored = JDialogSelectCPDiagrams.ignored;
-						TraceManager.addDev("Ready to generate TML code for Communication Patterns!");
-						b = gtm.checkSyntaxTMLCP( tmlDiagramsToValidate, tmlcpp, jdscpd.getOptimize() );	//Fills a data structure
-						//translateTMLComponentDesign
-						//and should say if it is correct or contains error in the return variable b
-						if( b ) {
-							//setMode(MainGUI.MODEL_OK);
-							setMode( MainGUI.GEN_SYSTEMC_OK );
-							setMode( MainGUI.MODEL_OK );
-							ret = true;
-							if( !automatic ) {
-								JOptionPane.showMessageDialog( frame, "0 error, " + getCheckingWarnings().size() +
-								" warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)",
-								"Syntax analysis successful on TML mapping",
-								JOptionPane.INFORMATION_MESSAGE );
-							}
-						}
-						else {
-							if( !automatic ) {
-								JOptionPane.showMessageDialog( frame, "The Communication Patterns design contains several errors", "Syntax analysis failed",
-																								JOptionPane.INFORMATION_MESSAGE );
-							}
-						}
-          }
-        }
-				else if( tp instanceof RequirementPanel ) {
-            TDiagramPanel tdp = getCurrentTDiagramPanel();
-            if (!(tdp instanceof RequirementDiagramPanel)) {
-                if (tdp instanceof EBRDDPanel) {
 
-                    b = gtm.makeEBRDD((EBRDDPanel)tdp);
-                    if (b) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "0 error, " + getCheckingWarnings().size() + " warning(s).",
-                                                      "Syntax analysis successful on EBRDD",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    } else {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "The EBRDD contains several errors",
-                                                      "Syntax analysis failed",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    }
-                } else {
-                    return ret;
+
+    } else if (tp instanceof TMLDesignPanel) {
+        TMLDesignPanel tmldp = (TMLDesignPanel)tp;
+        JDialogSelectTMLTask.validated = tmldp.validated;
+        JDialogSelectTMLTask.ignored = tmldp.ignored;
+        Vector tmlTasksToValidate = new Vector();
+        JDialogSelectTMLTask jdstmlt = new JDialogSelectTMLTask(frame, tmlTasksToValidate, tmldp.tmltdp.getComponentList(), "Choosing TML tasks to validate");
+        if (!automatic) {
+            GraphicLib.centerOnParent(jdstmlt);
+            jdstmlt.setVisible(true); // Blocked until dialog has been closed
+        } else {
+            jdstmlt.closeDialog();
+        }
+        if (tmlTasksToValidate.size() > 0) {
+            tmldp.validated = JDialogSelectTMLTask.validated;
+            tmldp.ignored = JDialogSelectTMLTask.ignored;
+            b = gtm.translateTMLDesign(tmlTasksToValidate, tmldp, jdstmlt.getOptimize());
+            if (b) {
+                //setMode(MainGUI.MODEL_OK);
+                setMode(MainGUI.GEN_SYSTEMC_OK);
+                setMode(MainGUI.MODEL_OK);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)",
+                                                  "Syntax analysis successful on TML designs",
+                                                  JOptionPane.INFORMATION_MESSAGE);
                 }
-                //TraceManager.addDev("No syntax checking for EBRDD: not yet implemented");
             } else {
-                RequirementDiagramPanel rdp= (RequirementDiagramPanel)tdp;
-                JDialogSelectRequirements.validated = rdp.validated;
-                JDialogSelectRequirements.ignored = rdp.ignored;
-                Vector reqsToValidate = new Vector();
-                JDialogSelectRequirements jdsreq = new JDialogSelectRequirements(frame, reqsToValidate, rdp.getComponentList(), "Choosing requirements to verify");
                 if (!automatic) {
-                    GraphicLib.centerOnParent(jdsreq);
-                    jdsreq.setVisible(true); // Blocked until dialog has been closed
-                }
-                if (reqsToValidate.size() > 0) {
-                    rdp.validated = JDialogSelectRequirements.validated;
-                    rdp.ignored = JDialogSelectRequirements.ignored;
-                    b = gtm.generateTMsForRequirementAnalysis(reqsToValidate, rdp);
-                    if (b) {
-                        //setMode(MainGUI.GEN_SYSTEMC_OK);
-                        setMode(MainGUI.REQ_OK);
-                        ret = true;
-                        if (!automatic) {
-                            JOptionPane.showMessageDialog(frame,
-                                                          "0 error, " + getCheckingWarnings().size() + " warning(s). You can now verify requirements' satisfiability",
-                                                          "Syntax analysis successful on requirements",
-                                                          JOptionPane.INFORMATION_MESSAGE);
-                        }
-
-                    } else {
-                        if (!automatic) {
-                            JOptionPane.showMessageDialog(frame,
-                                                          "The requirement diagram contains several errors",
-                                                          "Syntax analysis failed",
-                                                          JOptionPane.INFORMATION_MESSAGE);
-                        }
-                    }
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The TML design contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
                 }
             }
-        } else if (tp instanceof ProactiveDesignPanel) {
-            // TraceManager.addDev("!!!!!!!!!!!!1");
-            //newTurtleModeling();
-            b = gtm.translateProactiveDesign((ProactiveDesignPanel)tp);
+        }
+    } else if (tp instanceof TMLComponentDesignPanel) {
+        TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel)tp;
+        JDialogSelectTMLComponent.validated = tmlcdp.validated;
+        JDialogSelectTMLComponent.ignored = tmlcdp.ignored;
+        Vector tmlComponentsToValidate = new Vector();
+        JDialogSelectTMLComponent jdstmlc = new JDialogSelectTMLComponent(frame, tmlComponentsToValidate, tmlcdp.tmlctdp.getComponentList(), "Choosing TML components to validate");
+        if (!automatic) {
+            GraphicLib.centerOnParent(jdstmlc);
+            jdstmlc.setVisible(true); // Blocked until dialog has been closed
+        } else {
+            jdstmlc.closeDialog();
+        }
+        if (tmlComponentsToValidate.size() > 0) {
+            tmlcdp.validated = JDialogSelectTMLComponent.validated;
+            tmlcdp.ignored = JDialogSelectTMLComponent.ignored;
+            b = gtm.translateTMLComponentDesign(tmlComponentsToValidate, tmlcdp, jdstmlc.getOptimize());
             if (b) {
                 //setMode(MainGUI.MODEL_OK);
-                //setMode(MainGUI.GEN_SYSTEMC_OK);
+                setMode(MainGUI.GEN_SYSTEMC_OK);
                 setMode(MainGUI.MODEL_OK);
                 ret = true;
                 if (!automatic) {
                     JOptionPane.showMessageDialog(frame,
-                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a LOTOS,specification",
-                                                  "Syntax analysis successful on Proactive design",
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)",
+                                                  "Syntax analysis successful on TML designs",
                                                   JOptionPane.INFORMATION_MESSAGE);
                 }
-
             } else {
                 if (!automatic) {
                     JOptionPane.showMessageDialog(frame,
-                                                  "The Proactive design contains several errors",
+                                                  "The TML design contains several errors",
                                                   "Syntax analysis failed",
                                                   JOptionPane.INFORMATION_MESSAGE);
                 }
-
             }
-        } else if (tp instanceof TURTLEOSDesignPanel) {
-            TraceManager.addDev("TURTLEOS Design Panel");
-            //TURTLEOSDesignPanel tosdp = (TURTLEOSDesignPanel) tp;
-            b = gtm.translateTURTLEOSDesign((TURTLEOSDesignPanel)tp);
+        }
+    } else if (tp instanceof TMLArchiPanel) {
+        TMLArchiPanel tmlap = (TMLArchiPanel)tp;
+        JDialogSelectTMLNodes.validated = tmlap.validated;
+        JDialogSelectTMLNodes.ignored = tmlap.ignored;
+        Vector tmlNodesToValidate = new Vector();
+        JDialogSelectTMLNodes jdstmln = new JDialogSelectTMLNodes(frame, tmlNodesToValidate, tmlap.tmlap.getComponentList(), "Choosing Nodes to validate", tmlap.tmlap.getMasterClockFrequency());
+        if (!automatic) {
+            GraphicLib.centerOnParent(jdstmln);
+            jdstmln.setVisible(true); // Blocked until dialog has been closed
+        } else {
+            jdstmln.closeDialog();
+        }
+        tmlap.tmlap.setMasterClockFrequency(jdstmln.getClock());
+
+        if (tmlNodesToValidate.size() > 0) {
+            tmlap.validated = JDialogSelectTMLNodes.validated;
+            tmlap.ignored = JDialogSelectTMLNodes.ignored;
+            //TraceManager.addDev("Ready to generate TML mapping!");
+            b = gtm.checkSyntaxTMLMapping(tmlNodesToValidate, tmlap, jdstmln.getOptimize());
             if (b) {
+                //setMode(MainGUI.MODEL_OK);
+                setMode(MainGUI.GEN_SYSTEMC_OK);
                 setMode(MainGUI.MODEL_OK);
                 ret = true;
                 if (!automatic) {
                     JOptionPane.showMessageDialog(frame,
-                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal specification or executable code (Java)",
-                                                  "Syntax analysis successful on deployment diagrams",
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)",
+                                                  "Syntax analysis successful on TML mapping",
                                                   JOptionPane.INFORMATION_MESSAGE);
                 }
             } else {
                 if (!automatic) {
                     JOptionPane.showMessageDialog(frame,
-                                                  "The TURTLE deployment contains several errors",
+                                                  "The TML mapping contains several errors",
                                                   "Syntax analysis failed",
                                                   JOptionPane.INFORMATION_MESSAGE);
                 }
             }
         }
-        //dtree.toBeUpdated();
-        dtree.forceUpdate();
-        return ret;
     }
-
-    public Vector getAllAttributes() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {
-            return null;
+    else if( tp instanceof TMLCommunicationPatternPanel ) {
+        TMLCommunicationPatternPanel tmlcpp = (TMLCommunicationPatternPanel) tp;
+        JDialogSelectCPDiagrams.validated =  tmlcpp.validated;
+        JDialogSelectCPDiagrams.ignored =  tmlcpp.ignored;
+        Vector tmlDiagramsToValidate = new Vector();
+        JDialogSelectCPDiagrams jdscpd = new JDialogSelectCPDiagrams( frame, tmlDiagramsToValidate, tmlcpp.tmlcpp.getComponentList(),
+                                                                      "Choosing Diagrams to validate" );
+        if( !automatic ) {
+            GraphicLib.centerOnParent( jdscpd );
+            jdscpd.setVisible( true ); // Blocked until dialog has been closed
         }
-
-        if (!(tp instanceof AvatarDesignPanel)) {
-            return null;
+        else {
+            jdscpd.closeDialog();
+        }
+        if( tmlDiagramsToValidate.size() > 0 ) {
+            tmlcpp.validated = JDialogSelectCPDiagrams.validated;
+            tmlcpp.ignored = JDialogSelectCPDiagrams.ignored;
+            TraceManager.addDev("Ready to generate TML code for Communication Patterns!");
+            b = gtm.checkSyntaxTMLCP( tmlDiagramsToValidate, tmlcpp, jdscpd.getOptimize() );    //Fills a data structure
+            //translateTMLComponentDesign
+            //and should say if it is correct or contains error in the return variable b
+            if( b ) {
+                //setMode(MainGUI.MODEL_OK);
+                setMode( MainGUI.GEN_SYSTEMC_OK );
+                setMode( MainGUI.MODEL_OK );
+                ret = true;
+                if( !automatic ) {
+                    JOptionPane.showMessageDialog( frame, "0 error, " + getCheckingWarnings().size() +
+                                                   " warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)",
+                                                   "Syntax analysis successful on TML mapping",
+                                                   JOptionPane.INFORMATION_MESSAGE );
+                }
+            }
+            else {
+                if( !automatic ) {
+                    JOptionPane.showMessageDialog( frame, "The Communication Patterns design contains several errors", "Syntax analysis failed",
+                                                   JOptionPane.INFORMATION_MESSAGE );
+                }
+            }
         }
-        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-        String name =  getCurrentTDiagramPanel().getName();
-
-        return adp.getAllAttributes(name);
     }
+    else if( tp instanceof RequirementPanel ) {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (!(tdp instanceof RequirementDiagramPanel)) {
+            if (tdp instanceof EBRDDPanel) {
 
-    public Vector getAllMethods() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {
-            return null;
-        }
+                b = gtm.makeEBRDD((EBRDDPanel)tdp);
+                if (b) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s).",
+                                                  "Syntax analysis successful on EBRDD",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                } else {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The EBRDD contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            } else {
+                return ret;
+            }
+            //TraceManager.addDev("No syntax checking for EBRDD: not yet implemented");
+        } else {
+            RequirementDiagramPanel rdp= (RequirementDiagramPanel)tdp;
+            JDialogSelectRequirements.validated = rdp.validated;
+            JDialogSelectRequirements.ignored = rdp.ignored;
+            Vector reqsToValidate = new Vector();
+            JDialogSelectRequirements jdsreq = new JDialogSelectRequirements(frame, reqsToValidate, rdp.getComponentList(), "Choosing requirements to verify");
+            if (!automatic) {
+                GraphicLib.centerOnParent(jdsreq);
+                jdsreq.setVisible(true); // Blocked until dialog has been closed
+            }
+            if (reqsToValidate.size() > 0) {
+                rdp.validated = JDialogSelectRequirements.validated;
+                rdp.ignored = JDialogSelectRequirements.ignored;
+                b = gtm.generateTMsForRequirementAnalysis(reqsToValidate, rdp);
+                if (b) {
+                    //setMode(MainGUI.GEN_SYSTEMC_OK);
+                    setMode(MainGUI.REQ_OK);
+                    ret = true;
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now verify requirements' satisfiability",
+                                                      "Syntax analysis successful on requirements",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
 
-        if (!(tp instanceof AvatarDesignPanel)) {
-            return null;
+                } else {
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The requirement diagram contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                }
+            }
         }
-        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-        String name =  getCurrentTDiagramPanel().getName();
+    } else if (tp instanceof ProactiveDesignPanel) {
+        // TraceManager.addDev("!!!!!!!!!!!!1");
+        //newTurtleModeling();
+        b = gtm.translateProactiveDesign((ProactiveDesignPanel)tp);
+        if (b) {
+            //setMode(MainGUI.MODEL_OK);
+            //setMode(MainGUI.GEN_SYSTEMC_OK);
+            setMode(MainGUI.MODEL_OK);
+            ret = true;
+            if (!automatic) {
+                JOptionPane.showMessageDialog(frame,
+                                              "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a LOTOS,specification",
+                                              "Syntax analysis successful on Proactive design",
+                                              JOptionPane.INFORMATION_MESSAGE);
+            }
 
-        return adp.getAllMethods(name);
-    }
+        } else {
+            if (!automatic) {
+                JOptionPane.showMessageDialog(frame,
+                                              "The Proactive design contains several errors",
+                                              "Syntax analysis failed",
+                                              JOptionPane.INFORMATION_MESSAGE);
+            }
 
-    public Vector getAllSignals() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {
-            return null;
         }
-
-        if (!(tp instanceof AvatarDesignPanel)) {
-            return null;
+    } else if (tp instanceof TURTLEOSDesignPanel) {
+        TraceManager.addDev("TURTLEOS Design Panel");
+        //TURTLEOSDesignPanel tosdp = (TURTLEOSDesignPanel) tp;
+        b = gtm.translateTURTLEOSDesign((TURTLEOSDesignPanel)tp);
+        if (b) {
+            setMode(MainGUI.MODEL_OK);
+            ret = true;
+            if (!automatic) {
+                JOptionPane.showMessageDialog(frame,
+                                              "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal specification or executable code (Java)",
+                                              "Syntax analysis successful on deployment diagrams",
+                                              JOptionPane.INFORMATION_MESSAGE);
+            }
+        } else {
+            if (!automatic) {
+                JOptionPane.showMessageDialog(frame,
+                                              "The TURTLE deployment contains several errors",
+                                              "Syntax analysis failed",
+                                              JOptionPane.INFORMATION_MESSAGE);
+            }
         }
-        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-        String name =  getCurrentTDiagramPanel().getName();
+    }
+    //dtree.toBeUpdated();
+    dtree.forceUpdate();
+    return ret;
+}
 
-        return adp.getAllSignals(name);
+public Vector getAllAttributes() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {
+        return null;
     }
 
-    public String[] getAllOutEvents() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {
-            return null;
-        }
+    if (!(tp instanceof AvatarDesignPanel)) {
+        return null;
+    }
+    AvatarDesignPanel adp = (AvatarDesignPanel)tp;
 
-        if (!(tp instanceof TMLComponentDesignPanel)) {
-            return null;
-        }
-        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+    String name =  getCurrentTDiagramPanel().getName();
 
-        String name =  getCurrentTDiagramPanel().getName();
+    return adp.getAllAttributes(name);
+}
 
-        return tmlcomp.getAllOutEvents(name);
+public Vector getAllMethods() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {
+        return null;
     }
 
-    public String[] getAllInEvents() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {return null;}
-        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-	String name =  getCurrentTDiagramPanel().getName();
-	return tmlcomp.getAllInEvents(name);
+    if (!(tp instanceof AvatarDesignPanel)) {
+        return null;
     }
+    AvatarDesignPanel adp = (AvatarDesignPanel)tp;
 
-    public String[] getAllOutChannels() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {return null;}
-        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-	String name =  getCurrentTDiagramPanel().getName();
-	return tmlcomp.getAllOutChannels(name);
-    }
+    String name =  getCurrentTDiagramPanel().getName();
 
-    public String[] getAllInChannels() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {return null;}
-        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-	String name =  getCurrentTDiagramPanel().getName();
-	return tmlcomp.getAllInChannels(name);
-    }
+    return adp.getAllMethods(name);
+}
 
-    public String[] getAllOutRequests() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {return null;}
-        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-	String name =  getCurrentTDiagramPanel().getName();
-	return tmlcomp.getAllOutRequests(name);
+public Vector getAllSignals() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {
+        return null;
     }
 
-    public Vector getAllTimers() {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {
-            return null;
-        }
+    if (!(tp instanceof AvatarDesignPanel)) {
+        return null;
+    }
+    AvatarDesignPanel adp = (AvatarDesignPanel)tp;
 
-        if (!(tp instanceof AvatarDesignPanel)) {
-            return null;
-        }
-        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+    String name =  getCurrentTDiagramPanel().getName();
 
-        String name =  getCurrentTDiagramPanel().getName();
+    return adp.getAllSignals(name);
+}
 
-        return adp.getAllTimers(name);
+public String[] getAllOutEvents() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {
+        return null;
     }
 
-    public Vector getCheckingErrors() {
-        return gtm.getCheckingErrors();
+    if (!(tp instanceof TMLComponentDesignPanel)) {
+        return null;
+    }
+    TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+
+    String name =  getCurrentTDiagramPanel().getName();
+
+    return tmlcomp.getAllOutEvents(name);
+}
+
+public String[] getAllInEvents() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {return null;}
+    if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+    TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+    String name =  getCurrentTDiagramPanel().getName();
+    return tmlcomp.getAllInEvents(name);
+}
+
+public String[] getAllOutChannels() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {return null;}
+    if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+    TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+    String name =  getCurrentTDiagramPanel().getName();
+    return tmlcomp.getAllOutChannels(name);
+}
+
+public String[] getAllInChannels() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {return null;}
+    if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+    TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+    String name =  getCurrentTDiagramPanel().getName();
+    return tmlcomp.getAllInChannels(name);
+}
+
+public String[] getAllOutRequests() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {return null;}
+    if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+    TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+    String name =  getCurrentTDiagramPanel().getName();
+    return tmlcomp.getAllOutRequests(name);
+}
+
+public Vector getAllTimers() {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {
+        return null;
     }
 
-    public Vector getCheckingWarnings() {
-        return gtm.getCheckingWarnings();
+    if (!(tp instanceof AvatarDesignPanel)) {
+        return null;
     }
+    AvatarDesignPanel adp = (AvatarDesignPanel)tp;
 
-    public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp == null) {
-            return;
-        }
+    String name =  getCurrentTDiagramPanel().getName();
 
-        if (!(tp instanceof AvatarDesignPanel)) {
-            return;
-        }
+    return adp.getAllTimers(name);
+}
 
-        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-        adp.modelBacktracingProVerif(pvoa);
-        getCurrentTDiagramPanel().repaint();
+public Vector getCheckingErrors() {
+    return gtm.getCheckingErrors();
+}
+
+public Vector getCheckingWarnings() {
+    return gtm.getCheckingWarnings();
+}
+
+public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp == null) {
+        return;
     }
 
-    public void generateRTLOTOS() {
-        generateRTLOTOS(false);
+    if (!(tp instanceof AvatarDesignPanel)) {
+        return;
     }
 
+    AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+    adp.modelBacktracingProVerif(pvoa);
+    getCurrentTDiagramPanel().repaint();
+}
 
-    public boolean generateRTLOTOS(boolean automatic) {
-        int ret = 0;
-        if (gtm.getTURTLEModelingState() > 0) {
-            if ((ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, RT_LOTOS)) == -1) {
-                return false;
-            }
-        }
+public void generateRTLOTOS() {
+    generateRTLOTOS(false);
+}
 
-        gtm.reinitSIM();
-        gtm.reinitDTA();
-        gtm.reinitRG();
-        gtm.reinitRGAUT();
-        gtm.reinitRGAUTPROJDOT();
-        if (ret == 0) {
-            gtm.generateRTLOTOS(lotosfile);
-        }
-        if (!automatic) {
-            JOptionPane.showMessageDialog(frame,
-                                          "RT-LOTOS specification generated",
-                                          "RT-LOTOS specification",
-                                          JOptionPane.INFORMATION_MESSAGE);
+
+public boolean generateRTLOTOS(boolean automatic) {
+    int ret = 0;
+    if (gtm.getTURTLEModelingState() > 0) {
+        if ((ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, RT_LOTOS)) == -1) {
+            return false;
         }
-        dtree.toBeUpdated();
-        return true;
     }
 
-    public void generateLOTOS() {
-        generateLOTOS(false);
+    gtm.reinitSIM();
+    gtm.reinitDTA();
+    gtm.reinitRG();
+    gtm.reinitRGAUT();
+    gtm.reinitRGAUTPROJDOT();
+    if (ret == 0) {
+        gtm.generateRTLOTOS(lotosfile);
+    }
+    if (!automatic) {
+        JOptionPane.showMessageDialog(frame,
+                                      "RT-LOTOS specification generated",
+                                      "RT-LOTOS specification",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+    dtree.toBeUpdated();
+    return true;
+}
 
+public void generateLOTOS() {
+    generateLOTOS(false);
+}
 
-    public boolean generateLOTOS(boolean automatic) {
-        int ret = 0;
-        if (gtm.getTURTLEModelingState() > 0) {
-            ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, LOTOS);
-            if (ret == -1) {
-                dtree.toBeUpdated();
-                TraceManager.addDev("Generate from state failed");
-                return false;
-            }
-            /*if (!automatic && (gtm.getTURTLEModelingState() == 1)) {
-              return true;
-              }*/
-        }
 
-        //TraceManager.addDev("generate LOTOS");
-        if (ret == 0) {
-            gtm.generateFullLOTOS(lotosfile);
-            //TraceManager.addDev("LOTOS generated");
-            if (!automatic) {
-                JOptionPane.showMessageDialog(frame,
-                                              "LOTOS specification generated (" + getCheckingWarnings().size() + " warning(s))",
-                                              "LOTOS specification",
-                                              JOptionPane.INFORMATION_MESSAGE);
-            }
+public boolean generateLOTOS(boolean automatic) {
+    int ret = 0;
+    if (gtm.getTURTLEModelingState() > 0) {
+        ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, LOTOS);
+        if (ret == -1) {
+            dtree.toBeUpdated();
+            TraceManager.addDev("Generate from state failed");
+            return false;
         }
-        setMode(MainGUI.RTLOTOS_OK);
-        dtree.toBeUpdated();
-        return true;
+        /*if (!automatic && (gtm.getTURTLEModelingState() == 1)) {
+          return true;
+          }*/
     }
 
-    public void generateFullLOTOS() {
+    //TraceManager.addDev("generate LOTOS");
+    if (ret == 0) {
         gtm.generateFullLOTOS(lotosfile);
-        dtree.toBeUpdated();
+        //TraceManager.addDev("LOTOS generated");
+        if (!automatic) {
+            JOptionPane.showMessageDialog(frame,
+                                          "LOTOS specification generated (" + getCheckingWarnings().size() + " warning(s))",
+                                          "LOTOS specification",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
     }
+    setMode(MainGUI.RTLOTOS_OK);
+    dtree.toBeUpdated();
+    return true;
+}
 
-    // -1 : error
-    // 0: ok
-    // 1: ok, code already generated
-    public int generateTURTLEModelingFromState(int state, boolean automatic, int generator) {
-        if (state == 1) {
-            if (generateTIFFromMapping(automatic, generator)) {
-                return 1;
-            }
-            return -1;
+public void generateFullLOTOS() {
+    gtm.generateFullLOTOS(lotosfile);
+    dtree.toBeUpdated();
+}
+
+// -1 : error
+// 0: ok
+// 1: ok, code already generated
+public int generateTURTLEModelingFromState(int state, boolean automatic, int generator) {
+    if (state == 1) {
+        if (generateTIFFromMapping(automatic, generator)) {
+            return 1;
         }
-        if (state == 2) {
-            TraceManager.addDev("Generating from state 2");
-            if (generateTIFFromTMLModeling(automatic, generator)) {
-                return 0;
-            }
-            return -1;
+        return -1;
+    }
+    if (state == 2) {
+        TraceManager.addDev("Generating from state 2");
+        if (generateTIFFromTMLModeling(automatic, generator)) {
+            return 0;
         }
-        if (state == 3) {
-            TraceManager.addDev("Generating from state 3 (Avatar)");
-            if (generateTIFFromAvatarSpecification(automatic, generator)) {
-                return 0;
-            }
-            return -1;
+        return -1;
+    }
+    if (state == 3) {
+        TraceManager.addDev("Generating from state 3 (Avatar)");
+        if (generateTIFFromAvatarSpecification(automatic, generator)) {
+            return 0;
         }
         return -1;
     }
+    return -1;
+}
+
+public boolean generateTIFFromAvatarSpecification(boolean automatic, int generator) {
+    boolean b = gtm.translateAvatarSpecificationToTIF();
+    if (b) {
+        setMode(MainGUI.MODEL_OK);
+        return true;
+    }
+    return false;
+}
 
-    public boolean generateTIFFromAvatarSpecification(boolean automatic, int generator) {
-        boolean b = gtm.translateAvatarSpecificationToTIF();
+public boolean generateTIFFromMapping(boolean automatic, int generator) {
+    boolean b;
+
+    // Scheduling options
+    JDialogScheduling jds = new JDialogScheduling(frame, this, "Mapping options", generator);
+    if (!automatic) {
+        GraphicLib.centerOnParent(jds);
+        jds.setVisible(true); // Blocked until dialog has been closed
+    } else {
+        jds.closeDialog();
+        b = gtm.translateTMLMapping(jds.getSample(), jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
         if (b) {
+            setMode(MainGUI.GEN_SYSTEMC_OK);
             setMode(MainGUI.MODEL_OK);
             return true;
         }
         return false;
     }
 
-    public boolean generateTIFFromMapping(boolean automatic, int generator) {
-        boolean b;
-
-        // Scheduling options
-        JDialogScheduling jds = new JDialogScheduling(frame, this, "Mapping options", generator);
-        if (!automatic) {
-            GraphicLib.centerOnParent(jds);
-            jds.setVisible(true); // Blocked until dialog has been closed
+    if (!jds.isCancelled()) {
+        b = jds.hasError();
+        //gtm.translateTMLMapping(jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
+        if (!b) {
+            //setMode(MainGUI.MODEL_OK);
+            setMode(MainGUI.GEN_SYSTEMC_OK);
+            setMode(MainGUI.MODEL_OK);
+            return true;
+            /*if (!automatic) {
+              JOptionPane.showMessageDialog(frame,
+              "0 error, " + getCheckingWarnings().size() + " warning(s). Formal specification can be generated",
+              "Successful translation from the TML mapping to a formal specification",
+              JOptionPane.INFORMATION_MESSAGE);
+              }*/
         } else {
-            jds.closeDialog();
-            b = gtm.translateTMLMapping(jds.getSample(), jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
-            if (b) {
-                setMode(MainGUI.GEN_SYSTEMC_OK);
-                setMode(MainGUI.MODEL_OK);
-                return true;
-            }
+            /*if (!automatic) {
+              JOptionPane.showMessageDialog(frame,
+              "Formal specification generation failed: the TML mapping contains several errors",
+              "Syntax analysis failed",
+              JOptionPane.INFORMATION_MESSAGE);
+              }*/
             return false;
         }
-
-        if (!jds.isCancelled()) {
-            b = jds.hasError();
-            //gtm.translateTMLMapping(jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
-            if (!b) {
-                //setMode(MainGUI.MODEL_OK);
-                setMode(MainGUI.GEN_SYSTEMC_OK);
-                setMode(MainGUI.MODEL_OK);
-                return true;
-                /*if (!automatic) {
-                  JOptionPane.showMessageDialog(frame,
-                  "0 error, " + getCheckingWarnings().size() + " warning(s). Formal specification can be generated",
-                  "Successful translation from the TML mapping to a formal specification",
-                  JOptionPane.INFORMATION_MESSAGE);
-                  }*/
-            } else {
-                /*if (!automatic) {
-                  JOptionPane.showMessageDialog(frame,
-                  "Formal specification generation failed: the TML mapping contains several errors",
-                  "Syntax analysis failed",
-                  JOptionPane.INFORMATION_MESSAGE);
-                  }*/
-                return false;
-            }
-        }
-
-        return false;
-    }
-
-    public boolean generateTIFFromTMLModeling(boolean automatic, int generator) {
-        return gtm.translateTMLModeling();
-    }
-
-    public void generateAUT() {
-        JDialogGenAUT jdgaut = new JDialogGenAUT(frame, this, "Generation of automata", ConfigurationTTool.BcgioPath, ConfigurationTTool.AldebaranHost, ConfigurationTTool.TGraphPath);
-        jdgaut.setSize(450, 600);
-        GraphicLib.centerOnParent(jdgaut);
-        jdgaut.setVisible(true);
-
-        //Update menu
-        Vector v = jdgaut.getFiles();
-        JMenu menu = jmenubarturtle.getJMenuGraph();
-        menu.removeAll();
-        String s;
-        for(int i=0; i<v.size(); i++) {
-            s = (String)(v.elementAt(i));
-            jmenubarturtle.addMenuItem(menu, s, this);
-        }
-
     }
 
-    public void generateAUTS() {
-        JDialogGenAUTS jdgauts = new JDialogGenAUTS(frame, this, "Generation of automata via LOTOS", gtm.getPathCaesar(),
-                                                    gtm.getPathBcgio(),
-                                                    REMOTE_RTL_LOTOS_FILE,
-                                                    gtm.getCaesarHost(), ConfigurationTTool.TGraphPath);
-        jdgauts.setSize(450, 600);
-        GraphicLib.centerOnParent(jdgauts);
-        jdgauts.setVisible(true);
-
-        //Update menu
-        /*Vector v = jdgauts.getFiles();
-          JMenu menu = jmenubarturtle.getJMenuGraph();
-          menu.removeAll();
-          String s;
-          for(int i=0; i<v.size(); i++) {
-          s = (String)(v.elementAt(i));
-          jmenubarturtle.addMenuItem(menu, s, this);
-          }*/
-
-    }
+    return false;
+}
 
-    public void avatarSimulation() {
-        TraceManager.addDev("Avatar simulation");
-        jfais = new JFrameAvatarInteractiveSimulation(frame, this, "Interactive simulation", gtm.getAvatarSpecification());
-        jfais.setIconImage(IconManager.img9);
-        jfais.setSize(800, 600);
-        GraphicLib.centerOnParent(jfais);
-        jfais.setVisible(true);
-    }
+public boolean generateTIFFromTMLModeling(boolean automatic, int generator) {
+    return gtm.translateTMLModeling();
+}
 
-    public void avatarUPPAALVerification() {
-        TraceManager.addDev("Avatar uppaal fv");
-        boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
-        if (result) {
-            formalValidation(true);
-        } else {
-            JOptionPane.showMessageDialog(frame,
-                                          "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
-                                          "Translation to UPPAAL failed",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return;
-        }
-    }
+public void generateAUT() {
+    JDialogGenAUT jdgaut = new JDialogGenAUT(frame, this, "Generation of automata", ConfigurationTTool.BcgioPath, ConfigurationTTool.AldebaranHost, ConfigurationTTool.TGraphPath);
+    jdgaut.setSize(450, 600);
+    GraphicLib.centerOnParent(jdgaut);
+    jdgaut.setVisible(true);
 
-    public void avatarProVerifVerification() {
-        TraceManager.addDev("Avatar proverif fv");
-        JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
-        jgen.setSize(500, 450);
-        GraphicLib.centerOnParent(jgen);
-        jgen.setVisible(true);
-        dtree.toBeUpdated();
+    //Update menu
+    Vector v = jdgaut.getFiles();
+    JMenu menu = jmenubarturtle.getJMenuGraph();
+    menu.removeAll();
+    String s;
+    for(int i=0; i<v.size(); i++) {
+        s = (String)(v.elementAt(i));
+        jmenubarturtle.addMenuItem(menu, s, this);
     }
 
-    public void avatarStaticAnalysis() {
-        TraceManager.addDev("Avatar static analysis invariants");
-        JDialogInvariantAnalysis jgen = new JDialogInvariantAnalysis(frame, this, "Static analysis: invariants computation");
-        jgen.setSize(500, 450);
-        GraphicLib.centerOnParent(jgen);
-        jgen.setVisible(true);
-        dtree.toBeUpdated();
-    }
+}
 
-    public void avatarExecutableCodeGeneration() {
-        TraceManager.addDev("Avatar code generation");
-        JDialogAvatarExecutableCodeGeneration jgen = new JDialogAvatarExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution", ConfigurationTTool.AVATARExecutableCodeHost, ConfigurationTTool.AVATARExecutableCodeDirectory,  ConfigurationTTool.AVATARExecutableCodeCompileCommand, ConfigurationTTool.AVATARExecutableCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand, ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand,  ConfigurationTTool.AVATARExecutableSoclibTraceFile);
-        jgen.setSize(500, 450);
-        GraphicLib.centerOnParent(jgen);
-        jgen.setVisible(true);
-        dtree.toBeUpdated();
-    }
+public void generateAUTS() {
+    JDialogGenAUTS jdgauts = new JDialogGenAUTS(frame, this, "Generation of automata via LOTOS", gtm.getPathCaesar(),
+                                                gtm.getPathBcgio(),
+                                                REMOTE_RTL_LOTOS_FILE,
+                                                gtm.getCaesarHost(), ConfigurationTTool.TGraphPath);
+    jdgauts.setSize(450, 600);
+    GraphicLib.centerOnParent(jdgauts);
+    jdgauts.setVisible(true);
+
+    //Update menu
+    /*Vector v = jdgauts.getFiles();
+      JMenu menu = jmenubarturtle.getJMenuGraph();
+      menu.removeAll();
+      String s;
+      for(int i=0; i<v.size(); i++) {
+      s = (String)(v.elementAt(i));
+      jmenubarturtle.addMenuItem(menu, s, this);
+      }*/
 
-    public void generateUPPAAL() {
-        generateUPPAAL(true);
+}
+
+public void avatarSimulation() {
+    TraceManager.addDev("Avatar simulation");
+    jfais = new JFrameAvatarInteractiveSimulation(frame, this, "Interactive simulation", gtm.getAvatarSpecification());
+    jfais.setIconImage(IconManager.img9);
+    jfais.setSize(800, 600);
+    GraphicLib.centerOnParent(jfais);
+    jfais.setVisible(true);
+}
+
+public void avatarUPPAALVerification() {
+    TraceManager.addDev("Avatar uppaal fv");
+    boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
+    if (result) {
+        formalValidation(true);
+    } else {
+        JOptionPane.showMessageDialog(frame,
+                                      "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
+                                      "Translation to UPPAAL failed",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return;
     }
+}
+
+public void avatarProVerifVerification() {
+    TraceManager.addDev("Avatar proverif fv");
+    JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
+    jgen.setSize(500, 450);
+    GraphicLib.centerOnParent(jgen);
+    jgen.setVisible(true);
+    dtree.toBeUpdated();
+}
+
+public void avatarStaticAnalysis() {
+    TraceManager.addDev("Avatar static analysis invariants");
+    JDialogInvariantAnalysis jgen = new JDialogInvariantAnalysis(frame, this, "Static analysis: invariants computation");
+    jgen.setSize(500, 450);
+    GraphicLib.centerOnParent(jgen);
+    jgen.setVisible(true);
+    dtree.toBeUpdated();
+}
+
+public void avatarExecutableCodeGeneration() {
+    TraceManager.addDev("Avatar code generation");
+    JDialogAvatarExecutableCodeGeneration jgen = new JDialogAvatarExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution", ConfigurationTTool.AVATARExecutableCodeHost, ConfigurationTTool.AVATARExecutableCodeDirectory,  ConfigurationTTool.AVATARExecutableCodeCompileCommand, ConfigurationTTool.AVATARExecutableCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand, ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand,  ConfigurationTTool.AVATARExecutableSoclibTraceFile);
+    jgen.setSize(500, 450);
+    GraphicLib.centerOnParent(jgen);
+    jgen.setVisible(true);
+    dtree.toBeUpdated();
+}
+
+public void generateUPPAAL() {
+    generateUPPAAL(true);
+}
+
+public void generateUPPAAL(boolean showWindow) {
+    //TraceManager.addDev("Generate UPPAAL!");
+    //gtm.mergeChoices(true);
+    if (gtm.getTURTLEModelingState() > 0) {
+        if (gtm.getTURTLEModelingState() == 3) {
+            //AVATAR
+            boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
+            if (showWindow) {
+                if (result) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). UPPAAL specification generated",
+                                                  "Successful translation to UPPAAL",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                } else {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
+                                                  "Translation to UPPAAL failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
 
-    public void generateUPPAAL(boolean showWindow) {
-        //TraceManager.addDev("Generate UPPAAL!");
-        //gtm.mergeChoices(true);
-        if (gtm.getTURTLEModelingState() > 0) {
-            if (gtm.getTURTLEModelingState() == 3) {
-                //AVATAR
-                boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
-                if (showWindow) {
-                    if (result) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). UPPAAL specification generated",
-                                                      "Successful translation to UPPAAL",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-                    } else {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
-                                                      "Translation to UPPAAL failed",
-                                                      JOptionPane.INFORMATION_MESSAGE);
-
-
-                    }
-                }
-                if (!result) {
-                    return;
-                }
-            } else {
-                if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, UPPAAL) == -1) {
-                    return;
-                }
-                if (showWindow) {
-                    JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.DIPLODOCUS_MODE);
-                    jgen.setSize(450, 500);
-                    GraphicLib.centerOnParent(jgen);
-                    jgen.setVisible(true);
 
                 }
+            }
+            if (!result) {
                 return;
             }
-        }
+        } else {
+            if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, UPPAAL) == -1) {
+                return;
+            }
+            if (showWindow) {
+                JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.DIPLODOCUS_MODE);
+                jgen.setSize(450, 500);
+                GraphicLib.centerOnParent(jgen);
+                jgen.setVisible(true);
 
-        //TraceManager.addDev("After UPPAAL");
-        if (showWindow) {
-            JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.TURTLE_MODE);
-            jgen.setSize(450, 600);
-            GraphicLib.centerOnParent(jgen);
-            jgen.setVisible(true);
-            //dtree.toBeUpdated();
+            }
+            return;
         }
     }
 
-    public void generateProVerif() {
-        TraceManager.addDev("Generate ProVerif!");
-
-        JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
-        jgen.setSize(500, 450);
+    //TraceManager.addDev("After UPPAAL");
+    if (showWindow) {
+        JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.TURTLE_MODE);
+        jgen.setSize(450, 600);
         GraphicLib.centerOnParent(jgen);
         jgen.setVisible(true);
-        dtree.toBeUpdated();
-
-        // Generate from AVATAR
-        /*if (gtm.getTURTLEModelingState() == 3) {
-          boolean result = gtm.generateProVerifFromAVATAR(ConfigurationTTool.ProVerifCodeDirectory);
-          if (result) {
-          JOptionPane.showMessageDialog(frame,
-          "0 error, " + getCheckingWarnings().size() + " warning(s). ProVerif specification generated",
-          "Successful translation from the Avatar to a ProVerif specification",
-          JOptionPane.INFORMATION_MESSAGE);
-          } else {
-          JOptionPane.showMessageDialog(frame,
-          "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). ProVerif specification could NOT be generated",
-          "ERROR during translation from AVATAR to UPPAAL",
-          JOptionPane.INFORMATION_MESSAGE);
-          }
-          }*/
+        //dtree.toBeUpdated();
     }
+}
+
+public void generateProVerif() {
+    TraceManager.addDev("Generate ProVerif!");
+
+    JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
+    jgen.setSize(500, 450);
+    GraphicLib.centerOnParent(jgen);
+    jgen.setVisible(true);
+    dtree.toBeUpdated();
+
+    // Generate from AVATAR
+    /*if (gtm.getTURTLEModelingState() == 3) {
+      boolean result = gtm.generateProVerifFromAVATAR(ConfigurationTTool.ProVerifCodeDirectory);
+      if (result) {
+      JOptionPane.showMessageDialog(frame,
+      "0 error, " + getCheckingWarnings().size() + " warning(s). ProVerif specification generated",
+      "Successful translation from the Avatar to a ProVerif specification",
+      JOptionPane.INFORMATION_MESSAGE);
+      } else {
+      JOptionPane.showMessageDialog(frame,
+      "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). ProVerif specification could NOT be generated",
+      "ERROR during translation from AVATAR to UPPAAL",
+      JOptionPane.INFORMATION_MESSAGE);
+      }
+      }*/
+}
 
-    public LinkedList generateAllAUT(String path) {
-        return gtm.generateAUT(path);
-    }
+public LinkedList generateAllAUT(String path) {
+    return gtm.generateAUT(path);
+}
 
-    public LinkedList generateAllLOTOS(String path) {
-        return gtm.generateLOTOSAUT(path);
-    }
+public LinkedList generateAllLOTOS(String path) {
+    return gtm.generateLOTOSAUT(path);
+}
 
-    public void generateJava() {
+public void generateJava() {
 
-        if (gtm.getTURTLEModelingState() == 1) {
-            if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, JAVA) == -1) {
-                return;
-            }
+    if (gtm.getTURTLEModelingState() == 1) {
+        if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, JAVA) == -1) {
+            return;
         }
-
-        JDialogJavaGeneration jgen = new JDialogJavaGeneration(frame, this, "Java code generation and compilation", ConfigurationTTool.JavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolClassPath, ConfigurationTTool.JavaExecutePath, ConfigurationTTool.JavaHeader);
-        jgen.setSize(450, 600);
-        GraphicLib.centerOnParent(jgen);
-        jgen.setVisible(true);
-        dtree.toBeUpdated();
     }
 
-    public void simuJava() {
-        /*TraceManager.addDev("Generate Java");
-          gtm.generateJava("");
-          JOptionPane.showMessageDialog(frame,
-          "Java code generated",
-          "Java generator",
-          JOptionPane.INFORMATION_MESSAGE);
-          dtree.toBeUpdated();*/
-
-        JDialogJavaSimulation jgen = new JDialogJavaSimulation(frame, this, "Java simulation", ConfigurationTTool.SimuJavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolSimuClassPath, ConfigurationTTool.JavaExecutePath);
-        jgen.setSize(450, 600);
+    JDialogJavaGeneration jgen = new JDialogJavaGeneration(frame, this, "Java code generation and compilation", ConfigurationTTool.JavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolClassPath, ConfigurationTTool.JavaExecutePath, ConfigurationTTool.JavaHeader);
+    jgen.setSize(450, 600);
+    GraphicLib.centerOnParent(jgen);
+    jgen.setVisible(true);
+    dtree.toBeUpdated();
+}
+
+public void simuJava() {
+    /*TraceManager.addDev("Generate Java");
+      gtm.generateJava("");
+      JOptionPane.showMessageDialog(frame,
+      "Java code generated",
+      "Java generator",
+      JOptionPane.INFORMATION_MESSAGE);
+      dtree.toBeUpdated();*/
+
+    JDialogJavaSimulation jgen = new JDialogJavaSimulation(frame, this, "Java simulation", ConfigurationTTool.SimuJavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolSimuClassPath, ConfigurationTTool.JavaExecutePath);
+    jgen.setSize(450, 600);
+    GraphicLib.centerOnParent(jgen);
+    jgen.setVisible(true);
+    dtree.toBeUpdated();
+}
+
+public void generateSystemC() {
+    generateSystemC(0);
+}
+
+// Modes are defined in JDialogSystemCGeneration "automatic modes"
+public void generateSystemC(int _mode) {
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    if (tp instanceof AvatarDesignPanel) {
+        avatarSimulation();
+    } else if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLArchiPanel))  {
+        JDialogSystemCGeneration jgen = new JDialogSystemCGeneration(frame, this, "Simulation code generation and compilation",
+                                                                     ConfigurationTTool.SystemCHost, ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.SystemCCodeCompileCommand,
+                                                                     ConfigurationTTool.SystemCCodeExecuteCommand, ConfigurationTTool.SystemCCodeInteractiveExecuteCommand, ConfigurationTTool.GGraphPath, _mode);
+        jgen.setSize(500, 750);
         GraphicLib.centerOnParent(jgen);
         jgen.setVisible(true);
         dtree.toBeUpdated();
-    }
-
-    public void generateSystemC() {
-        generateSystemC(0);
-    }
-
-    // Modes are defined in JDialogSystemCGeneration "automatic modes"
-    public void generateSystemC(int _mode) {
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        if (tp instanceof AvatarDesignPanel) {
-            avatarSimulation();
-        } else if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLArchiPanel))  {
-            JDialogSystemCGeneration jgen = new JDialogSystemCGeneration(frame, this, "Simulation code generation and compilation",
-                                                                         ConfigurationTTool.SystemCHost, ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.SystemCCodeCompileCommand,
-                                                                         ConfigurationTTool.SystemCCodeExecuteCommand, ConfigurationTTool.SystemCCodeInteractiveExecuteCommand, ConfigurationTTool.GGraphPath, _mode);
-            jgen.setSize(500, 750);
-            GraphicLib.centerOnParent(jgen);
-            jgen.setVisible(true);
-            dtree.toBeUpdated();
-
-            /*if (jgen.isInteractiveSimulationSelected() && (mode == 0)) {
-              interactiveSimulationSystemC(jgen.getPathInteractiveExecute());
-              }*/
-        }
-    }
 
-    public void interactiveSimulationSystemC() {
-        interactiveSimulationSystemC(ConfigurationTTool.SystemCCodeInteractiveExecuteCommand);
+        /*if (jgen.isInteractiveSimulationSelected() && (mode == 0)) {
+          interactiveSimulationSystemC(jgen.getPathInteractiveExecute());
+          }*/
     }
-
-    public void interactiveSimulationSystemC(String executePath) {
-        //TraceManager.addDev("toto0");
-        ArrayList<Point> points = getListOfBreakPoints();
-        if (gtm == null) {
-            jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
+}
+
+public void interactiveSimulationSystemC() {
+    interactiveSimulationSystemC(ConfigurationTTool.SystemCCodeInteractiveExecuteCommand);
+}
+
+public void interactiveSimulationSystemC(String executePath) {
+    //TraceManager.addDev("toto0");
+    ArrayList<Point> points = getListOfBreakPoints();
+    if (gtm == null) {
+        jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
+    } else {
+        //TraceManager.addDev("toto1");
+        if (gtm.getTMLMapping() != null) {
+            jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getTMLMapping(), points);
         } else {
-            //TraceManager.addDev("toto1");
-            if (gtm.getTMLMapping() != null) {
-                jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getTMLMapping(), points);
+            //TraceManager.addDev("toto2");
+            if (gtm.getArtificialTMLMapping() != null) {
+                jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getArtificialTMLMapping(), points);
             } else {
-                //TraceManager.addDev("toto2");
-                if (gtm.getArtificialTMLMapping() != null) {
-                    jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getArtificialTMLMapping(), points);
-                } else {
-                    //TraceManager.addDev("toto3");
-                    jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
-                }
+                //TraceManager.addDev("toto3");
+                jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
             }
         }
-        jfis.setIconImage(IconManager.img9);
-        jfis.setSize(1024, 900);
-        GraphicLib.centerOnParent(jfis);
-        jfis.setVisible(true);
-
     }
+    jfis.setIconImage(IconManager.img9);
+    jfis.setSize(1024, 900);
+    GraphicLib.centerOnParent(jfis);
+    jfis.setVisible(true);
 
-    public void addBreakPoint(int commandId) {
-        if (jfis != null) {
-            jfis.addBreakPoint(commandId);
-        }
+}
+
+public void addBreakPoint(int commandId) {
+    if (jfis != null) {
+        jfis.addBreakPoint(commandId);
     }
+}
 
-    public void removeBreakPoint(int commandId) {
-        if (jfis != null) {
-            jfis.removeBreakPoint(commandId);
-        }
+public void removeBreakPoint(int commandId) {
+    if (jfis != null) {
+        jfis.removeBreakPoint(commandId);
     }
+}
 
-    // Sent by simulation interface
-    public void removeBreakpoint(Point p) {
-        if (gtm != null) {
-            gtm.removeBreakpoint(p);
-            getCurrentTDiagramPanel().repaint();
-        }
+// Sent by simulation interface
+public void removeBreakpoint(Point p) {
+    if (gtm != null) {
+        gtm.removeBreakpoint(p);
+        getCurrentTDiagramPanel().repaint();
     }
+}
 
-    // Sent by simulation interface
-    public void addBreakpoint(Point p) {
-        if (gtm != null) {
-            gtm.addBreakpoint(p);
-            getCurrentTDiagramPanel().repaint();
-        }
+// Sent by simulation interface
+public void addBreakpoint(Point p) {
+    if (gtm != null) {
+        gtm.addBreakpoint(p);
+        getCurrentTDiagramPanel().repaint();
     }
+}
 
-    public ArrayList<Point> getListOfBreakPoints() {
-        ArrayList<Point> points = new ArrayList<Point>();
-        TURTLEPanel tp;
+public ArrayList<Point> getListOfBreakPoints() {
+    ArrayList<Point> points = new ArrayList<Point>();
+    TURTLEPanel tp;
 
-        if (tabs != null) {
-            for(int i=0; i<tabs.size(); i++) {
-                tp = (TURTLEPanel)(tabs.elementAt(i));
-                if (tp instanceof TMLDesignPanel) {
-                    ((TMLDesignPanel)tp).getListOfBreakPoints(points);
-                }
-                if (tp instanceof TMLComponentDesignPanel) {
-                    ((TMLComponentDesignPanel)tp).getListOfBreakPoints(points);
-                }
+    if (tabs != null) {
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLDesignPanel) {
+                ((TMLDesignPanel)tp).getListOfBreakPoints(points);
+            }
+            if (tp instanceof TMLComponentDesignPanel) {
+                ((TMLComponentDesignPanel)tp).getListOfBreakPoints(points);
             }
         }
-        return points;
     }
+    return points;
+}
 
-    // Returns null if failed
-    // Otherwise the path of the generated file
-    public String generateTMLTxt() {
-        String path = ConfigurationTTool.FILEPath;
-        if (file != null) {
-            path = file.getAbsolutePath();
-        }
-        //TraceManager.addDev("Generating TML code: "+file.getAbsolutePath());
-        if (gtm.generateTMLTxt(path)) {
-            return ConfigurationTTool.TMLCodeDirectory;
-        }
-
-        return null;
-        //TraceManager.addDev("Done");
+// Returns null if failed
+// Otherwise the path of the generated file
+public String generateTMLTxt() {
+    String path = ConfigurationTTool.FILEPath;
+    if (file != null) {
+        path = file.getAbsolutePath();
     }
-
-    public String generateCcode() {
-        String path = ConfigurationTTool.FILEPath;
-        if( file != null ) {
-					path = file.getAbsolutePath();
-        }
-        if( gtm.generateCcode( path ) ) {
-					return ConfigurationTTool.CcodeDirectory;
-        }
-        return null;
-        //TraceManager.addDev("Done");
+    //TraceManager.addDev("Generating TML code: "+file.getAbsolutePath());
+    if (gtm.generateTMLTxt(path)) {
+        return ConfigurationTTool.TMLCodeDirectory;
     }
 
-    public void generateDesign() {
-        if (gtm.getTURTLEModelingState() == 1) {
-            if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, DESIGN) == -1) {
-                return;
-            }
-        }
+    return null;
+    //TraceManager.addDev("Done");
+}
 
-        //TraceManager.addDev("Generate design");
-        gtm.generateDesign();
+public String generateCcode() {
+    String path = ConfigurationTTool.FILEPath;
+    if( file != null ) {
+        path = file.getAbsolutePath();
     }
-
-    public void saveSIM() {
-        gtm.saveSIM(simfile);
+    if( gtm.generateCcode( path ) ) {
+        return ConfigurationTTool.CcodeDirectory;
     }
+    return null;
+    //TraceManager.addDev("Done");
+}
 
-    public void saveDTA() {
-        gtm.saveDTA(dtafile);
+public void generateDesign() {
+    if (gtm.getTURTLEModelingState() == 1) {
+        if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, DESIGN) == -1) {
+            return;
+        }
     }
 
-    public void saveDTADOT() {
-        gtm.saveDTADOT(dtadotfile);
+    //TraceManager.addDev("Generate design");
+    gtm.generateDesign();
+}
+
+public void saveSIM() {
+    gtm.saveSIM(simfile);
+}
+
+public void saveDTA() {
+    gtm.saveDTA(dtafile);
+}
+
+public void saveDTADOT() {
+    gtm.saveDTADOT(dtadotfile);
+}
+
+public void saveRG() {
+    gtm.saveRG(rgfile);
+}
+
+public void saveTLSA() {
+    gtm.saveTLSA(tlsafile);
+}
+
+public String saveRGAut() {
+    gtm.saveRGAut(rgautfile);
+    return rgautfile.getAbsolutePath();
+}
+
+public String saveFC2(String data) {
+    gtm.saveInFile(fc2file, data);
+    return fc2file.getAbsolutePath();
+}
+
+public String saveBCG(String data) {
+    gtm.saveInFile(bcgfile, data);
+    return bcgfile.getAbsolutePath();
+}
+
+public void saveRGDOT() {
+    gtm.saveRGDOT(rgdotfile);
+}
+
+public void saveTLSADOT() {
+    gtm.saveTLSADOT(tlsadotfile);
+}
+
+public String saveRGAutDOT() {
+    gtm.saveRGAutDOT(rgautdotfile);
+    return rgautdotfile.getAbsolutePath();
+}
+
+public void saveRGAutProj() {
+    gtm.saveRGAutProj(rgautprojfile);
+}
+
+public void saveRGAutProjDOT() {
+    gtm.saveRGAutProjDOT(rgautprojdotfile);
+}
+
+public void checkCode() {
+    if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+        JDialogTextProcess jdtp = new JDialogTextProcess(frame,
+                                                         "Checking RT-LOTOS specification with RTL",
+                                                         gtm.getPathRTL() + " __FILENAME -max-spec-t-1",
+                                                         REMOTE_RTL_LOTOS_FILE,
+                                                         gtm.getLastRTLOTOSSpecification(),
+                                                         gtm.getHost());
+        jdtp.setSize(450, 600);
+        GraphicLib.centerOnParent(jdtp);
+        jdtp.setVisible(true);
+        dtree.toBeUpdated();
+    } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
+        JDialogLOTOSAnalysis jdla = new JDialogLOTOSAnalysis(frame,
+                                                             this, "Checking LOTOS specification with CAESAR",
+                                                             gtm.getPathCaesar(),
+                                                             REMOTE_RTL_LOTOS_FILE,
+                                                             gtm.getLastRTLOTOSSpecification(),
+                                                             gtm.getCaesarHost());
+        jdla.setSize(450, 600);
+        GraphicLib.centerOnParent(jdla);
+        jdla.setVisible(true);
+        dtree.toBeUpdated();
     }
+}
+
+
+public void simulation() {
+    if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+        JDialogSimulation jds = new JDialogSimulation(frame,
+                                                      this,
+                                                      "Intensive simulation with RTL",
+                                                      gtm.getPathRTL(),
+                                                      REMOTE_RTL_LOTOS_FILE,
+                                                      gtm.getLastRTLOTOSSpecification(),
+                                                      gtm.getHost());
+        jds.setSize(450, 600);
+        GraphicLib.centerOnParent(jds);
+        jds.setVisible(true);
+        dtree.toBeUpdated();
+    } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
 
-    public void saveRG() {
-        gtm.saveRG(rgfile);
     }
+}
 
-    public void saveTLSA() {
-        gtm.saveTLSA(tlsafile);
-    }
+public void formalValidation() {
+    formalValidation(false);
+}
 
-    public String saveRGAut() {
-        gtm.saveRGAut(rgautfile);
-        return rgautfile.getAbsolutePath();
-    }
+public void formalValidation(boolean automatic) {
+    formalValidation(automatic, getCurrentTURTLEPanel());
+}
 
-    public String saveFC2(String data) {
-        gtm.saveInFile(fc2file, data);
-        return fc2file.getAbsolutePath();
-    }
-
-    public String saveBCG(String data) {
-        gtm.saveInFile(bcgfile, data);
-        return bcgfile.getAbsolutePath();
-    }
-
-    public void saveRGDOT() {
-        gtm.saveRGDOT(rgdotfile);
-    }
-
-    public void saveTLSADOT() {
-        gtm.saveTLSADOT(tlsadotfile);
-    }
-
-    public String saveRGAutDOT() {
-        gtm.saveRGAutDOT(rgautdotfile);
-        return rgautdotfile.getAbsolutePath();
-    }
-
-    public void saveRGAutProj() {
-        gtm.saveRGAutProj(rgautprojfile);
-    }
-
-    public void saveRGAutProjDOT() {
-        gtm.saveRGAutProjDOT(rgautprojdotfile);
+public boolean formalValidation(boolean automatic, String diagramName) {
+    TURTLEPanel tp = getTURTLEPanel(diagramName);
+    if (tp != null) {
+        formalValidation(automatic, tp);
+        return true;
     }
-
-    public void checkCode() {
-        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-            JDialogTextProcess jdtp = new JDialogTextProcess(frame,
-                                                             "Checking RT-LOTOS specification with RTL",
-                                                             gtm.getPathRTL() + " __FILENAME -max-spec-t-1",
-                                                             REMOTE_RTL_LOTOS_FILE,
-                                                             gtm.getLastRTLOTOSSpecification(),
-                                                             gtm.getHost());
-            jdtp.setSize(450, 600);
-            GraphicLib.centerOnParent(jdtp);
-            jdtp.setVisible(true);
-            dtree.toBeUpdated();
-        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-            JDialogLOTOSAnalysis jdla = new JDialogLOTOSAnalysis(frame,
-                                                                 this, "Checking LOTOS specification with CAESAR",
+    return false;
+}
+
+
+public void formalValidation(boolean automatic, TURTLEPanel _tp) {
+    if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+        JDialogFormalValidation jdfv = new JDialogFormalValidation(frame,
+                                                                   this,
+                                                                   "Formal Validation with RTL",
+                                                                   gtm.getPathRTL(),
+                                                                   gtm.getPathDTA2DOT(),
+                                                                   gtm.getPathRGSTRAP(),
+                                                                   gtm.getPathRG2TLSA(),
+                                                                   REMOTE_RTL_LOTOS_FILE,
+                                                                   gtm.getLastRTLOTOSSpecification(),
+                                                                   gtm.getHost(),
+                                                                   gtm.getHostAldebaran(),
+                                                                   gtm.getPathBcgio());
+        jdfv.setAutomatic(automatic);
+        jdfv.setSize(450, 600);
+        GraphicLib.centerOnParent(jdfv);
+        jdfv.setVisible(true);
+        dtree.toBeUpdated();
+    } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
+        JDialogLOTOSValidation jdla = new JDialogLOTOSValidation(frame,
+                                                                 this, "Generating RG with CAESAR",
                                                                  gtm.getPathCaesar(),
+                                                                 gtm.getPathCaesarOpen(),
+                                                                 gtm.getPathBcgio(),
+                                                                 gtm.getPathBcgmerge(),
                                                                  REMOTE_RTL_LOTOS_FILE,
                                                                  gtm.getLastRTLOTOSSpecification(),
                                                                  gtm.getCaesarHost());
-            jdla.setSize(450, 600);
-            GraphicLib.centerOnParent(jdla);
-            jdla.setVisible(true);
-            dtree.toBeUpdated();
-        }
-    }
-
-
-    public void simulation() {
-        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-            JDialogSimulation jds = new JDialogSimulation(frame,
-                                                          this,
-                                                          "Intensive simulation with RTL",
-                                                          gtm.getPathRTL(),
-                                                          REMOTE_RTL_LOTOS_FILE,
-                                                          gtm.getLastRTLOTOSSpecification(),
-                                                          gtm.getHost());
-            jds.setSize(450, 600);
-            GraphicLib.centerOnParent(jds);
-            jds.setVisible(true);
-            dtree.toBeUpdated();
-        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-
-        }
-    }
-
-    public void formalValidation() {
-        formalValidation(false);
-    }
-
-    public void formalValidation(boolean automatic) {
-        formalValidation(automatic, getCurrentTURTLEPanel());
-    }
-
-    public boolean formalValidation(boolean automatic, String diagramName) {
-        TURTLEPanel tp = getTURTLEPanel(diagramName);
-        if (tp != null) {
-            formalValidation(automatic, tp);
-            return true;
-        }
-        return false;
-    }
-
-
-    public void formalValidation(boolean automatic, TURTLEPanel _tp) {
-        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-            JDialogFormalValidation jdfv = new JDialogFormalValidation(frame,
-                                                                       this,
-                                                                       "Formal Validation with RTL",
-                                                                       gtm.getPathRTL(),
-                                                                       gtm.getPathDTA2DOT(),
-                                                                       gtm.getPathRGSTRAP(),
-                                                                       gtm.getPathRG2TLSA(),
-                                                                       REMOTE_RTL_LOTOS_FILE,
-                                                                       gtm.getLastRTLOTOSSpecification(),
-                                                                       gtm.getHost(),
-                                                                       gtm.getHostAldebaran(),
-                                                                       gtm.getPathBcgio());
-            jdfv.setAutomatic(automatic);
-            jdfv.setSize(450, 600);
-            GraphicLib.centerOnParent(jdfv);
-            jdfv.setVisible(true);
-            dtree.toBeUpdated();
-        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-            JDialogLOTOSValidation jdla = new JDialogLOTOSValidation(frame,
-                                                                     this, "Generating RG with CAESAR",
-                                                                     gtm.getPathCaesar(),
-                                                                     gtm.getPathCaesarOpen(),
-                                                                     gtm.getPathBcgio(),
-                                                                     gtm.getPathBcgmerge(),
-                                                                     REMOTE_RTL_LOTOS_FILE,
-                                                                     gtm.getLastRTLOTOSSpecification(),
-                                                                     gtm.getCaesarHost());
-            jdla.setAutomatic(automatic);
-            jdla.setSize(450, 600);
-            GraphicLib.centerOnParent(jdla);
-            jdla.setVisible(true);
-            dtree.toBeUpdated();
-        } else if (gtm.getLanguageID() == GTURTLEModeling.UPPAAL) {
-            JDialogUPPAALValidation jduv = new JDialogUPPAALValidation(frame,
-                                                                       this, "Formal verification with UPPAAL",
-                                                                       gtm.getPathUPPAALVerifier(),
-                                                                       gtm.getPathUPPAALFile(),
-                                                                       REMOTE_UPPAAL_FILE,
-                                                                       gtm.getLastUPPAALSpecification().getStringSpec(),
-                                                                       gtm.getUPPAALVerifierHost(),
-                                                                       _tp);
-            jduv.setSize(450, 600);
-            GraphicLib.centerOnParent(jduv);
-            jduv.setVisible(true);
-            dtree.toBeUpdated();
-        } else if (gtm.getLanguageID() == GTURTLEModeling.MATRIX) {
-            JDialogTMatrixManagement jdfv = new JDialogTMatrixManagement(frame,
-                                                                         this,
-                                                                         "Observers's Based Formal Verification",
-                                                                         gtm.getRequirementModeling(),
-                                                                         gtm.getPathRTL(),
-                                                                         gtm.getPathDTA2DOT(),
-                                                                         gtm.getPathRGSTRAP(),
-                                                                         gtm.getPathRG2TLSA(),
-                                                                         REMOTE_RTL_LOTOS_FILE,
-                                                                         gtm.getHost(),
-                                                                         GTURTLEModeling.getHostAldebaran(),
-                                                                         gtm.getPathBcgio());
-            jdfv.setSize(550, 600);
-            jdfv.setIconImage(IconManager.img8);
-            GraphicLib.centerOnParent(jdfv);
-            jdfv.setVisible(true);
-            dtree.toBeUpdated();
-        }
-    }
-
-    public void projection() {
-        TClassDiagramPanel tcdp = null;
-        if (getCurrentTURTLEPanel() instanceof DesignPanel) {
-            tcdp = ((DesignPanel)(getCurrentTURTLEPanel())).tcdp;
-        }
-        JDialogProjection jdfv = new JDialogProjection(frame,
-                                                       this,
-                                                       tcdp,
-                                                       gtm.getTURTLEModeling(),
-                                                       GTURTLEModeling.getHostAldebaran(),
-                                                       GTURTLEModeling.getPathAldebaran(),
-                                                       gtm.getPathBcgmin(),
-                                                       gtm.getPathBcgio(),
-                                                       gtm.getLastRGAUT(),
-                                                       REMOTE_ALDEBARAN_AUT_FILE,
-                                                       "Minimization using Aldebaran");
-        jdfv.setSize(900, 700);
-        GraphicLib.centerOnParent(jdfv);
-        jdfv.setVisible(true);
-    }
-
-    public void modifyGraph() {
-        JDialogGraphModification jdgm;
-        if (gtm == null ){
-            jdgm = new JDialogGraphModification(frame,
-                                                GTURTLEModeling.getHostAldebaran(),
-                                                GTURTLEModeling.getPathBcgio(),
-                                                "graph",
-                                                "Minimization using Aldebaran",
-                                                null, null);
-        } else {
-            jdgm = new JDialogGraphModification(frame,
-                                                GTURTLEModeling.getHostAldebaran(),
-                                                gtm.getPathBcgio(),
-                                                "graph",
-                                                "Minimization using Aldebaran",
-                                                gtm.getLastRGAUT(),
-                                                gtm.getLastTextualRGAUTProj());
-        }
-        jdgm.setSize(600, 500);
-        GraphicLib.centerOnParent(jdgm);
-        jdgm.setVisible(true);
-        modifiedaut = jdgm.getGraphAUT();
-        modifiedautdot = jdgm.getGraphDOT();
-        if (modifiedautdot != null) {
-            actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].setEnabled(true);
-            actions[TGUIAction.ACT_SAVE_AUTMODIFIED].setEnabled(true);
-        }
-        //gtm.modifyMinimizedGraph();
-    }
-
-    public void bisimulation() {
-        JDialogBisimulation jdb = new JDialogBisimulation(frame,
-                                                          GTURTLEModeling.getHostAldebaran(),
-                                                          GTURTLEModeling.getPathAldebaran(),
-                                                          REMOTE_ALDEBARAN_BISIMU_FILE1,
-                                                          REMOTE_ALDEBARAN_BISIMU_FILE2,
-                                                          "Bisimulation using Aldebaran");
-        jdb.setSize(650, 800);
-        GraphicLib.centerOnParent(jdb);
-        jdb.setVisible(true);
-        //TraceManager.addDev("Bisimulation");
-    }
-
-    public void bisimulationCADP() {
-        JDialogBisimulationBisimulator jdb = new JDialogBisimulationBisimulator(frame,
-                                                                                GTURTLEModeling.getCaesarHost(),
-                                                                                GTURTLEModeling.getPathBisimulator(),
-                                                                                GTURTLEModeling.getPathBcgio(),
-                                                                                REMOTE_BISIMULATOR_FILE1,
-                                                                                REMOTE_BISIMULATOR_FILE2,
-                                                                                "Bisimulation using BISIMULATOR");
-        jdb.setSize(650, 800);
-        GraphicLib.centerOnParent(jdb);
-        jdb.setVisible(true);
-        //TraceManager.addDev("Bisimulation");
-    }
-
-    public void seekDeadlockAUT() {
-        String dataAUT = gtm.getLastTextualRGAUT();
-
-        JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks", dataAUT);
-        jfd.setIconImage(IconManager.img8);
-        jfd.setSize(600, 600);
-        GraphicLib.centerOnParent(jfd);
-        jfd.setVisible(true);
-    }
-
-    public void seekDeadlockSavedAUT() {
-        String graph[] = loadAUTGraph();
-        if (graph != null) {
-            JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks on " + graph[0], graph[1]);
-            jfd.setIconImage(IconManager.img8);
-            jfd.setSize(600, 600);
-            GraphicLib.centerOnParent(jfd);
-            jfd.setVisible(true);
-        }
-    }
-
-    public void showAUT(String title, String data) {
-        /*JFrameStatistics jfs = new JFrameStatistics(title, data);
-          jfs.setIconImage(IconManager.img8);
-          jfs.setSize(600, 600);
-          GraphicLib.centerOnParent(jfs);
-          jfs.setVisible(true);*/
-        ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait");
-        t.go();
-    }
-
-    public void showPMAUT(String title, String data) {
-        TraceManager.addDev("Power management analysis");
-        JFramePowerManagementAnalysis jfpma = new JFramePowerManagementAnalysis(title, data);
-        jfpma.setIconImage(IconManager.img8);
-        jfpma.setSize(600, 600);
-        GraphicLib.centerOnParent(jfpma);
-        jfpma.setVisible(true);
-    }
-
-    public void NC() {
-        TraceManager.addDev("NC");
-        JFrameNC jfnc = new JFrameNC("Network calculus", gtm.getNCS());
-        jfnc.setIconImage(IconManager.img8);
-        jfnc.setSize(600, 600);
-        GraphicLib.centerOnParent(jfnc);
-        jfnc.setVisible(true);
-        TraceManager.addDev("Done");
-
-        /*JFrameStatistics jfs = new JFrameStatistics(title, data);
-          jfs.setIconImage(IconManager.img8);
-          jfs.setSize(600, 600);
-          GraphicLib.centerOnParent(jfs);
-          jfs.setVisible(true);*/
-    }
-
-    public void statAUT() {
-        showAUT("Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
-    }
-
-    public void statAUTDiplodocus() {
-        String spec = loadFile(new File(ConfigurationTTool.TGraphPath + "/tree.aut"));
-        if (spec == null) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The fill could not be loaded:",
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return;
-        }
-
-        showAUT("Analysis on the last DIPLODOCUS RG", spec);
-    }
-
-    public void statAUTProj() {
-        showAUT("Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj());
-    }
-
-    public void statSavedAUT() {
-        //TraceManager.addDev("toto");
-        String graph[] = loadAUTGraph();
-        if (graph != null) {
-            showAUT("Analysis on " + graph[0], graph[1]);
-        }
-    }
-
-    public void pmAUT() {
-        showPMAUT("Power Management Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
-    }
-
-    public void pmAUTProj() {
-        showPMAUT("Power Management Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj());
-    }
-
-    public void pmSavedAUT() {
-        //TraceManager.addDev("toto");
-        String graph[] = loadAUTGraph();
-        if (graph != null) {
-            showPMAUT("Power Management Analysis on " + graph[0], graph[1]);
-        }
-    }
-
-    public void showFormalSpecification() {
-        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-            showFormalSpecification("RT-LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
-        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-            showFormalSpecification("LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
-        } else if (gtm.getLanguageID() == GTURTLEModeling.PROVERIF) {
-            showFormalSpecification("Last ProVerif Specification", gtm.getLastProVerifSpecification());
-        }
-    }
-
-    public void showFormalSpecification(String title, String data) {
-        JFrameText jft = new JFrameText(title, data);
-        jft.setIconImage(IconManager.img8);
-        jft.setSize(600, 600);
-        GraphicLib.centerOnParent(jft);
-        jft.setVisible(true);
-    }
-
-    public void showJavaCode() {
-        if (javaframe == null) {
-            javaframe = new JFrameCode("JavaCode", "", "");
-            javaframe.setIconImage(IconManager.img8);
-            javaframe.setSize(350, 350);
-            GraphicLib.centerOnParent(javaframe);
-            javaframe.setVisible(true);
-        } else {
-            javaframe.setVisible(true);
-        }
-    }
-
-    public void showBirdEyesView() {
-        if (birdframe == null) {
-            birdframe = new JFrameBird(this);
-            birdframe.setIconImage(IconManager.img8);
-            birdframe.setSize(150, 100);
-            GraphicLib.centerOnParent(birdframe);
-            birdframe.setVisible(true);
-        } else {
-            birdframe.setVisible(true);
-        }
-    }
-
-    public void showEmbeddedBirdEyesView() {
-        //TraceManager.addDev("Embedded!");
-        if (jbp.getGo()) {
-            jbp.setGo(false);
-        } else {
-            jbp.startProcess();
-        }
-    }
-
-    public void drawBird() {
-        if (jbp.getGo()) {
-            jbp.repaint();
-        }
-
-        if (birdframe != null) {
-            birdframe.updatePanel();
-        }
-    }
-
-    public void unsetBirdFrame() {
-        birdframe = null;
-    }
-
-    public void setJavaPreCode(TGComponent tgc) {
-        if (javaframe != null) {
-            if (tgc == null) {
-                javaframe.setPreCode("");
-                return;
-            }
-            if (tgc.hasPreJavaCode()) {
-                javaframe.setPreCode(tgc.getPreJavaCode());
-            } else {
-                javaframe.setPreCode("");
-            }
-        }
-    }
-
-    public void setJavaPostCode(TGComponent tgc) {
-        if (javaframe != null) {
-            if (tgc == null) {
-                javaframe.setPostCode("");
-                return;
-            }
-            if (tgc.hasPostJavaCode()) {
-                javaframe.setPostCode(tgc.getPostJavaCode());
-            } else {
-                javaframe.setPostCode("");
-            }
-        }
-    }
-
-    public void showSuggestedDesign() {
-        JFrameText jft = new JFrameText("Suggested Design #" + gtm.getNbSuggestedDesign(), gtm.getLastTextualDesign());
-        jft.setIconImage(IconManager.img8);
-        jft.setSize(600, 600);
-        GraphicLib.centerOnParent(jft);
-        jft.setVisible(true);
-    }
-
-    public void showSavedRTLOTOS() {
-        String spec[] = loadLotosSpec();
-        if ((spec != null) && (spec[0] != null) && (spec[1] != null)) {
-            JFrameText jft = new JFrameText("RT-LOTOS Specification: " + spec[0], spec[1]);
-            jft.setIconImage(IconManager.img8);
-            jft.setSize(600, 600);
-            GraphicLib.centerOnParent(jft);
-            jft.setVisible(true);
-        }
-    }
-
-    public void showSimulationTrace() {
-        gtm.showSIM(1);
-    }
-
-    public void showSimulationTraceChrono() {
-        gtm.showSIM(2);
-    }
-
-    public void showDTA() {
-        String s = gtm.showDTA();
-        if (s != null) {
-            JOptionPane.showMessageDialog(frame,
-                    "The DTA could not be displayed: " + s,
-                    "Error",
-                    JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void showWave() {
-        RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.SystemCHost, null, null, ConfigurationTTool.GTKWavePath  + " vcddump.vcd");
-        ret.start();
-    }
-
-    public void showRG() {
-        String s = gtm.showRG();
-        if (s != null) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The RG could not be displayed: " + s,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void showTLSA() {
-        String s = gtm.showTLSA();
-        if (s != null) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The TLSA could not be displayed: " + s,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void showRGAut() {
-        String s = gtm.showRGAut();
-        if (s != null) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The RG could not be displayed: " + s,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void showRGAutProj() {
-        String s = gtm.showRGAutProj();
-        if (s != null) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The RG could not be displayed: " + s,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void showRGDiplodocus() {
-        String s = gtm.showRGDiplodocus();
-        if (s != null) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The RG could not be displayed: " + s,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void showModifiedAUTDOT() {
-        String s = GTURTLEModeling.runDOTTY(modifiedautdot);
-        if (s != null) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The RG could not be displayed: " + s,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void showGGraph() {
-        String graph[] = loadGGraph();
-        if (graph != null) {
-            String s = GTURTLEModeling.showGGraph(graph[1]);
-            if (s != null) {
-                JOptionPane.showMessageDialog(frame,
-                                              "The graph could not be displayed: " + s,
-                                              "Error",
-                                              JOptionPane.INFORMATION_MESSAGE);
-            }
-        }
-    }
-
-    public void viewAutomata(String file) {
-        //TraceManager.addDev("viewing: " + file);
-        String graph[] = loadGGraph(file);
-        if (graph != null) {
-            String s = GTURTLEModeling.showGGraph(graph[1]);
-            if (s != null) {
-                JOptionPane.showMessageDialog(frame,
-                                              "The graph could not be displayed: " + s,
-                                              "Error",
-                                              JOptionPane.INFORMATION_MESSAGE);
-            }
-        }
-    }
-
-    public void executeUserCommand(String host, String command) {
-        RemoteExecutionThread ret = new RemoteExecutionThread(host, null, null, command);
-        ret.start();
-        TraceManager.addDev("User command ->" + command + "<- started on host " + host);
-    }
-
-
-    public void screenCapture() {
-        //Select file
-        File file = selectFileForCapture();
-        Toolkit toolkit = Toolkit.getDefaultToolkit();
-        Dimension screenSize = toolkit.getScreenSize();
-        Rectangle screenRect = new Rectangle(screenSize);
-        performScreenCapture(screenRect, file);
-    }
-
-    public void windowCapture() {
-        //Select file
-        File file = selectFileForCapture();
-        if (file == null)
-            return;
-
-        Rectangle screenRect = new Rectangle(frame.getLocation().x, frame.getLocation().y, frame.getWidth(), frame.getHeight());
-        performScreenCapture(screenRect, file);
-    }
-
-    public void diagramCapture() {
-        if (tabs.size() < 1) {
-            JOptionPane.showMessageDialog(frame,
-                                          "No diagram is under edition",
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return;
-        }
-
-        File file = selectFileForCapture();
-        if (file == null)
-            return;
-
-        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-        if (tdp1 != null) {
-            BufferedImage image = tdp1.performMinimalCapture();
-            writeImageCapture(image, file, true);
-        }
-    }
-
-    public void svgDiagramCapture() {
-
-        TraceManager.addDev("SVG capture ");
-
-        if (tabs.size() < 1) {
-            JOptionPane.showMessageDialog(frame,
-                                          "No diagram is under edition",
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return;
-        }
-
-        File file = selectSVGFileForCapture();
-
-        if (file == null)
-            return;
-
-        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-        if (tdp1 != null) {
-            String s = tdp1.svgCapture();
-            try {
-                FileUtils.saveFile(file.getAbsolutePath(), s);
-            } catch (Exception e) {
-                JOptionPane.showMessageDialog(frame,
-                                              "File could not be saved: " + e.getMessage(),
-                                              "Error",
-                                              JOptionPane.INFORMATION_MESSAGE);
-                return;
-            }
-            JOptionPane.showMessageDialog(frame,
-                    "The capture was correctly performed and saved in " + file.getAbsolutePath(),
-                    "Save in svg format ok",
-                    JOptionPane.INFORMATION_MESSAGE);
-        }
-    }
-
-    public void allDiagramCapture() {
-        if (tabs.size() < 1) {
-            JOptionPane.showMessageDialog(frame,
-                                          "No diagram is under edition",
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return;
-        }
-
-        File file = selectFileForCapture();
-        if (file == null)
-            return;
-
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        TDiagramPanel tdp1;
-        BufferedImage image;
-        File file1;
-        String name = file.getAbsolutePath();
-        name = name.substring(0, name.length() - 4);
-
-        //boolean actions;
-        for(int i=0; i<tp.panels.size(); i++) {
-            tdp1 = (TDiagramPanel)(tp.panels.elementAt(i));
-            tdp1.repaint();
-            image = tdp1.performMinimalCapture();
-            if (i < 10) {
-                file1 = new File(name + "0" + i);
-            } else {
-                file1 = new File(name + i);
-            }
-            file1 = FileUtils.addFileExtensionIfMissing(file1, TImgFilter.getExtension());
-            if (!writeImageCapture(image, file1, false)) {
-                return;
-            }
-            if (i ==0) {
-                if (!writeImageCapture(image, file, false)) {
-                    return;
-                }
-            }
-        }
-
-        JOptionPane.showMessageDialog(frame,
-                "All diagrams were sucessfully captured",
-                "Capture ok",
-                JOptionPane.INFORMATION_MESSAGE);
-    }
-
-    public void selectedCapture() {
-        File file = selectFileForCapture();
-        if (file == null)
-            return;
-        BufferedImage image = getCurrentTDiagramPanel().performSelectedCapture();
-        writeImageCapture(image, file, true);
-    }
-
-    public File selectFileForCapture() {
-        File file = null;
-        int returnVal = jfcimg.showSaveDialog(frame);
-        if(returnVal == JFileChooser.APPROVE_OPTION) {
-            file = jfcimg.getSelectedFile();
-            file = FileUtils.addFileExtensionIfMissing(file, TImgFilter.getExtension());
-
-        }
-        if(!checkFileForSave(file)) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The capture could not be performed: invalid file",
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return null;
-        }
-        return file;
-    }
-
-    public File selectSVGFileForCapture() {
-        File file = null;
-        int returnVal = jfcimgsvg.showSaveDialog(frame);
-        if(returnVal == JFileChooser.APPROVE_OPTION) {
-            file = jfcimgsvg.getSelectedFile();
-            file = FileUtils.addFileExtensionIfMissing(file, TSVGFilter.getExtension());
-
-        }
-        if(!checkFileForSave(file)) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The capture could not be performed: invalid file",
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return null;
-        }
-        return file;
-    }
-
-    public void performScreenCapture(Rectangle rect, File file) {
-        frame.paint(frame.getGraphics());
-        try {
-            Robot robot = new Robot();
-            BufferedImage image = robot.createScreenCapture(rect);
-            // save captured image to PNG file
-            ImageIO.write(image, "png", file);
-        } catch (Exception e) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The capture could not be performed:" + e.getMessage(),
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return;
-        }
-        JOptionPane.showMessageDialog(frame,
-                "The capture was correctly performed",
-                "Screen capture ok",
-                JOptionPane.INFORMATION_MESSAGE);
-        return;
-    }
-
-    public boolean writeImageCapture(BufferedImage image, File file, boolean info) {
-        frame.paint(frame.getGraphics());
-        try {
-            // save captured image to PNG file
-            ImageIO.write(image, "png", file);
-        } catch (Exception e) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The capture could not be performed:" + e.getMessage(),
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
-            return false;
-        }
-        if (info) {
-            JOptionPane.showMessageDialog(frame,
-                                          "The capture was correctly performed and saved in " + file.getAbsolutePath(),
-                                          "Screen capture ok",
-                                          JOptionPane.INFORMATION_MESSAGE);
-        }
-        return true;
-    }
-
-    public void generateDocumentation() {
-        //TraceManager.addDev("Documentation");
-        ThreadGUIElement t = new ThreadGUIElement(frame, 1, tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName(),"Documentation", "Generating documentation ... Please wait");
-        t.go();
-        /*DocumentationGenerator docgen = new DocumentationGenerator(tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName());
-          docgen.setFirstHeadingNumber(2);
-          if (docgen.generateDocumentation()) {
-          JOptionPane.showMessageDialog(frame,
-          "All done!",
-          "Documentation generation",
-          JOptionPane.INFORMATION_MESSAGE);
-          } else {
-          JOptionPane.showMessageDialog(frame,
-          "The documentation generation could not be performed",
-          "Error",
-          JOptionPane.INFORMATION_MESSAGE);
-          }*/
-        //TraceManager.addDev("Documentation=" + docgen.getDocumentation());
-    }
-
-    public void generateDocumentationReq() {
-        TraceManager.addDev("Frame Req");
-        JDialogRequirementTable jdrt = new JDialogRequirementTable(frame, "Selecting table columns");
-        GraphicLib.centerOnParent(jdrt);
-        jdrt.setVisible(true);
-        if (!jdrt.hasBeenCancelled()) {
-            Point [] pts = jdrt.getColumnsInfo();
-            if (pts != null) {
-                for(int i=0; i<pts.length; i++) {
-                    TraceManager.addDev("" + i + ": (" + pts[i].x + ", " + pts[i].y + ")");
-                }
-
-                JFrameRequirementTable jfrt = new JFrameRequirementTable("Requirement table", tabs, mainTabbedPane, pts);
-                jfrt.setIconImage(IconManager.img8);
-                jfrt.setSize(1024, 768);
-                GraphicLib.centerOnParent(jfrt);
-                jfrt.setVisible(true);
-            } else {
-                TraceManager.addDev("No column to print");
-            }
-        }
-        TraceManager.addDev("Done");
-    }
-
-    public int getTypeButtonSelected() {
-        return typeButtonSelected;
-    }
-
-    public void actionOnButton(int type, int id) {
-        typeButtonSelected = type;
-        idButtonSelected = id;
-        //TDiagramPanel tdp1 = ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
-        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-        //TraceManager.addDev("Selected TDiagramPanel=" + tdp1.getName());
-        tdp1.repaint();
-    }
-
-    public int getIdButtonSelected() {
-        return idButtonSelected;
-    }
-
-    public void addAvatarBlock(TURTLEPanel tp, String s)        {
-        //TraceManager.addDev("ADD TML Task=" + s);
-        if (!(tp instanceof AvatarDesignPanel)) {
-            return;
-        }
-
-        ((AvatarDesignPanel)tp).addAvatarStateMachineDiagramPanel(s);
-        setPanelMode();
-    }
-
-    public void addTClass(TURTLEPanel tp, String s)     {
-        if (!(tp instanceof DesignPanel)) {
-            return;
-        }
-
-        ((DesignPanel)tp).addTActivityDiagram(s);
-        setPanelMode();
-    }
-
-    public void addTOSClass(TURTLEPanel tp, String s)   {
-        if (!(tp instanceof TURTLEOSDesignPanel)) {
-            return;
-        }
-
-        ((TURTLEOSDesignPanel)tp).addTURTLEOSActivityDiagram(s);
-        setPanelMode();
-    }
-
-    public void addTMLTask(TURTLEPanel tp, String s)    {
-        //TraceManager.addDev("ADD TML Task=" + s);
-        if (!(tp instanceof TMLDesignPanel)) {
-            return;
-        }
-
-        ((TMLDesignPanel)tp).addTMLActivityDiagram(s);
-        setPanelMode();
-    }
-
-    public void addTMLCPrimitiveComponent(TURTLEPanel tp, String s)     {
-        //TraceManager.addDev("ADD C Primitive Component=" + s);
-        if (!(tp instanceof TMLComponentDesignPanel)) {
-            return;
-        }
-
-        ((TMLComponentDesignPanel)tp).addTMLActivityDiagram(s);
-        setPanelMode();
-    }
-
-    public TMLActivityDiagramPanel getReferencedTMLActivityDiagramPanel(TDiagramPanel _tdp, String name) {
-        TURTLEPanel tp;
-        TMLActivityDiagramPanel tmladp;
-        //TraceManager.addDev("global search for: " + name);
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof TMLComponentDesignPanel) {
-                if (tp.hasTDiagramPanel(_tdp)) {
-                    tmladp = ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
-                    if (tmladp != null) {
-                        //TraceManager.addDev("Found");
-                        return tmladp;
-                    }
-                }
-            }
-        }
-
-        TraceManager.addDev("Not found");
-        return null;
-    }
-
-    public TURTLEPanel getTURTLEPanelOfTDiagramPanel(TDiagramPanel _tdp) {
-        TURTLEPanel tp;
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof TMLComponentDesignPanel) {
-                if (tp.hasTDiagramPanel(_tdp)) {
-                    return tp;
-
-                }
-            }
-        }
-        return null;
-    }
-
-    public ArrayList<EBRDDPanel> getAllEBRDDPanels() {
-        TURTLEPanel tp;
-        ArrayList<EBRDDPanel> al = new ArrayList<EBRDDPanel>();
-        //TraceManager.addDev("global search for: " + name);
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof RequirementPanel) {
-                ((RequirementPanel)tp).addAllEBRDDPanels(al);
-            }
-        }
-
-        return al;
+        jdla.setAutomatic(automatic);
+        jdla.setSize(450, 600);
+        GraphicLib.centerOnParent(jdla);
+        jdla.setVisible(true);
+        dtree.toBeUpdated();
+    } else if (gtm.getLanguageID() == GTURTLEModeling.UPPAAL) {
+        JDialogUPPAALValidation jduv = new JDialogUPPAALValidation(frame,
+                                                                   this, "Formal verification with UPPAAL",
+                                                                   gtm.getPathUPPAALVerifier(),
+                                                                   gtm.getPathUPPAALFile(),
+                                                                   REMOTE_UPPAAL_FILE,
+                                                                   gtm.getLastUPPAALSpecification().getStringSpec(),
+                                                                   gtm.getUPPAALVerifierHost(),
+                                                                   _tp);
+        jduv.setSize(450, 600);
+        GraphicLib.centerOnParent(jduv);
+        jduv.setVisible(true);
+        dtree.toBeUpdated();
+    } else if (gtm.getLanguageID() == GTURTLEModeling.MATRIX) {
+        JDialogTMatrixManagement jdfv = new JDialogTMatrixManagement(frame,
+                                                                     this,
+                                                                     "Observers's Based Formal Verification",
+                                                                     gtm.getRequirementModeling(),
+                                                                     gtm.getPathRTL(),
+                                                                     gtm.getPathDTA2DOT(),
+                                                                     gtm.getPathRGSTRAP(),
+                                                                     gtm.getPathRG2TLSA(),
+                                                                     REMOTE_RTL_LOTOS_FILE,
+                                                                     gtm.getHost(),
+                                                                     GTURTLEModeling.getHostAldebaran(),
+                                                                     gtm.getPathBcgio());
+        jdfv.setSize(550, 600);
+        jdfv.setIconImage(IconManager.img8);
+        GraphicLib.centerOnParent(jdfv);
+        jdfv.setVisible(true);
+        dtree.toBeUpdated();
     }
-
-    public ArrayList<AvatarPDPanel> getAllAvatarPDPanels() {
-        TURTLEPanel tp;
-        ArrayList<AvatarPDPanel> al = new ArrayList<AvatarPDPanel>();
-        //TraceManager.addDev("global search for: " + name);
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof AvatarRequirementPanel) {
-                ((AvatarRequirementPanel)tp).addAllAvatarPDPanels(al);
-            }
-        }
-
-        return al;
+}
+
+public void projection() {
+    TClassDiagramPanel tcdp = null;
+    if (getCurrentTURTLEPanel() instanceof DesignPanel) {
+        tcdp = ((DesignPanel)(getCurrentTURTLEPanel())).tcdp;
+    }
+    JDialogProjection jdfv = new JDialogProjection(frame,
+                                                   this,
+                                                   tcdp,
+                                                   gtm.getTURTLEModeling(),
+                                                   GTURTLEModeling.getHostAldebaran(),
+                                                   GTURTLEModeling.getPathAldebaran(),
+                                                   gtm.getPathBcgmin(),
+                                                   gtm.getPathBcgio(),
+                                                   gtm.getLastRGAUT(),
+                                                   REMOTE_ALDEBARAN_AUT_FILE,
+                                                   "Minimization using Aldebaran");
+    jdfv.setSize(900, 700);
+    GraphicLib.centerOnParent(jdfv);
+    jdfv.setVisible(true);
+}
+
+public void modifyGraph() {
+    JDialogGraphModification jdgm;
+    if (gtm == null ){
+        jdgm = new JDialogGraphModification(frame,
+                                            GTURTLEModeling.getHostAldebaran(),
+                                            GTURTLEModeling.getPathBcgio(),
+                                            "graph",
+                                            "Minimization using Aldebaran",
+                                            null, null);
+    } else {
+        jdgm = new JDialogGraphModification(frame,
+                                            GTURTLEModeling.getHostAldebaran(),
+                                            gtm.getPathBcgio(),
+                                            "graph",
+                                            "Minimization using Aldebaran",
+                                            gtm.getLastRGAUT(),
+                                            gtm.getLastTextualRGAUTProj());
+    }
+    jdgm.setSize(600, 500);
+    GraphicLib.centerOnParent(jdgm);
+    jdgm.setVisible(true);
+    modifiedaut = jdgm.getGraphAUT();
+    modifiedautdot = jdgm.getGraphDOT();
+    if (modifiedautdot != null) {
+        actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].setEnabled(true);
+        actions[TGUIAction.ACT_SAVE_AUTMODIFIED].setEnabled(true);
+    }
+    //gtm.modifyMinimizedGraph();
+}
+
+public void bisimulation() {
+    JDialogBisimulation jdb = new JDialogBisimulation(frame,
+                                                      GTURTLEModeling.getHostAldebaran(),
+                                                      GTURTLEModeling.getPathAldebaran(),
+                                                      REMOTE_ALDEBARAN_BISIMU_FILE1,
+                                                      REMOTE_ALDEBARAN_BISIMU_FILE2,
+                                                      "Bisimulation using Aldebaran");
+    jdb.setSize(650, 800);
+    GraphicLib.centerOnParent(jdb);
+    jdb.setVisible(true);
+    //TraceManager.addDev("Bisimulation");
+}
+
+public void bisimulationCADP() {
+    JDialogBisimulationBisimulator jdb = new JDialogBisimulationBisimulator(frame,
+                                                                            GTURTLEModeling.getCaesarHost(),
+                                                                            GTURTLEModeling.getPathBisimulator(),
+                                                                            GTURTLEModeling.getPathBcgio(),
+                                                                            REMOTE_BISIMULATOR_FILE1,
+                                                                            REMOTE_BISIMULATOR_FILE2,
+                                                                            "Bisimulation using BISIMULATOR");
+    jdb.setSize(650, 800);
+    GraphicLib.centerOnParent(jdb);
+    jdb.setVisible(true);
+    //TraceManager.addDev("Bisimulation");
+}
+
+public void seekDeadlockAUT() {
+    String dataAUT = gtm.getLastTextualRGAUT();
+
+    JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks", dataAUT);
+    jfd.setIconImage(IconManager.img8);
+    jfd.setSize(600, 600);
+    GraphicLib.centerOnParent(jfd);
+    jfd.setVisible(true);
+}
+
+public void seekDeadlockSavedAUT() {
+    String graph[] = loadAUTGraph();
+    if (graph != null) {
+        JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks on " + graph[0], graph[1]);
+        jfd.setIconImage(IconManager.img8);
+        jfd.setSize(600, 600);
+        GraphicLib.centerOnParent(jfd);
+        jfd.setVisible(true);
     }
-
-    public LinkedList getAllTMLComponents() {
-        TURTLEPanel tp;
-        LinkedList ll = new LinkedList();
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof TMLComponentDesignPanel) {
-                ll.addAll(((TMLComponentDesignPanel)tp).tmlctdp.getComponentList());
-            }
-        }
-        return ll;
+}
+
+public void showAUT(String title, String data) {
+    /*JFrameStatistics jfs = new JFrameStatistics(title, data);
+      jfs.setIconImage(IconManager.img8);
+      jfs.setSize(600, 600);
+      GraphicLib.centerOnParent(jfs);
+      jfs.setVisible(true);*/
+    ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait");
+    t.go();
+}
+
+public void showPMAUT(String title, String data) {
+    TraceManager.addDev("Power management analysis");
+    JFramePowerManagementAnalysis jfpma = new JFramePowerManagementAnalysis(title, data);
+    jfpma.setIconImage(IconManager.img8);
+    jfpma.setSize(600, 600);
+    GraphicLib.centerOnParent(jfpma);
+    jfpma.setVisible(true);
+}
+
+public void NC() {
+    TraceManager.addDev("NC");
+    JFrameNC jfnc = new JFrameNC("Network calculus", gtm.getNCS());
+    jfnc.setIconImage(IconManager.img8);
+    jfnc.setSize(600, 600);
+    GraphicLib.centerOnParent(jfnc);
+    jfnc.setVisible(true);
+    TraceManager.addDev("Done");
+
+    /*JFrameStatistics jfs = new JFrameStatistics(title, data);
+      jfs.setIconImage(IconManager.img8);
+      jfs.setSize(600, 600);
+      GraphicLib.centerOnParent(jfs);
+      jfs.setVisible(true);*/
+}
+
+public void statAUT() {
+    showAUT("Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
+}
+
+public void statAUTDiplodocus() {
+    String spec = loadFile(new File(ConfigurationTTool.TGraphPath + "/tree.aut"));
+    if (spec == null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The fill could not be loaded:",
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return;
     }
 
-    public void removeTClass(TURTLEPanel tp, String s)  {
-        if (!(tp instanceof DesignPanel)) {
+    showAUT("Analysis on the last DIPLODOCUS RG", spec);
+}
+
+public void statAUTProj() {
+    showAUT("Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj());
+}
+
+public void statSavedAUT() {
+    //TraceManager.addDev("toto");
+    String graph[] = loadAUTGraph();
+    if (graph != null) {
+        showAUT("Analysis on " + graph[0], graph[1]);
+    }
+}
+
+public void pmAUT() {
+    showPMAUT("Power Management Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
+}
+
+public void pmAUTProj() {
+    showPMAUT("Power Management Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj());
+}
+
+public void pmSavedAUT() {
+    //TraceManager.addDev("toto");
+    String graph[] = loadAUTGraph();
+    if (graph != null) {
+        showPMAUT("Power Management Analysis on " + graph[0], graph[1]);
+    }
+}
+
+public void showFormalSpecification() {
+    if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+        showFormalSpecification("RT-LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
+    } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
+        showFormalSpecification("LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
+    } else if (gtm.getLanguageID() == GTURTLEModeling.PROVERIF) {
+        showFormalSpecification("Last ProVerif Specification", gtm.getLastProVerifSpecification());
+    }
+}
+
+public void showFormalSpecification(String title, String data) {
+    JFrameText jft = new JFrameText(title, data);
+    jft.setIconImage(IconManager.img8);
+    jft.setSize(600, 600);
+    GraphicLib.centerOnParent(jft);
+    jft.setVisible(true);
+}
+
+public void showJavaCode() {
+    if (javaframe == null) {
+        javaframe = new JFrameCode("JavaCode", "", "");
+        javaframe.setIconImage(IconManager.img8);
+        javaframe.setSize(350, 350);
+        GraphicLib.centerOnParent(javaframe);
+        javaframe.setVisible(true);
+    } else {
+        javaframe.setVisible(true);
+    }
+}
+
+public void showBirdEyesView() {
+    if (birdframe == null) {
+        birdframe = new JFrameBird(this);
+        birdframe.setIconImage(IconManager.img8);
+        birdframe.setSize(150, 100);
+        GraphicLib.centerOnParent(birdframe);
+        birdframe.setVisible(true);
+    } else {
+        birdframe.setVisible(true);
+    }
+}
+
+public void showEmbeddedBirdEyesView() {
+    //TraceManager.addDev("Embedded!");
+    if (jbp.getGo()) {
+        jbp.setGo(false);
+    } else {
+        jbp.startProcess();
+    }
+}
+
+public void drawBird() {
+    if (jbp.getGo()) {
+        jbp.repaint();
+    }
+
+    if (birdframe != null) {
+        birdframe.updatePanel();
+    }
+}
+
+public void unsetBirdFrame() {
+    birdframe = null;
+}
+
+public void setJavaPreCode(TGComponent tgc) {
+    if (javaframe != null) {
+        if (tgc == null) {
+            javaframe.setPreCode("");
             return;
         }
-
-        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                tp.tabbedPane.removeTabAt(i);
-                tp.panels.removeElementAt(i);
-                setPanelMode();
-                return;
-            }
+        if (tgc.hasPreJavaCode()) {
+            javaframe.setPreCode(tgc.getPreJavaCode());
+        } else {
+            javaframe.setPreCode("");
         }
     }
+}
 
-    public void removeTOSClass(TURTLEPanel tp, String s)        {
-        if (!(tp instanceof TURTLEOSDesignPanel)) {
+public void setJavaPostCode(TGComponent tgc) {
+    if (javaframe != null) {
+        if (tgc == null) {
+            javaframe.setPostCode("");
             return;
         }
-
-        TraceManager.addDev("Removing tab ...");
-        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                tp.tabbedPane.removeTabAt(i);
-                tp.panels.removeElementAt(i);
-                setPanelMode();
-                return;
-            }
+        if (tgc.hasPostJavaCode()) {
+            javaframe.setPostCode(tgc.getPostJavaCode());
+        } else {
+            javaframe.setPostCode("");
         }
     }
+}
 
-    public void removeTMLTask(TURTLEPanel tp, String s) {
-        if (!(tp instanceof TMLDesignPanel)) {
-            return;
-        }
+public void showSuggestedDesign() {
+    JFrameText jft = new JFrameText("Suggested Design #" + gtm.getNbSuggestedDesign(), gtm.getLastTextualDesign());
+    jft.setIconImage(IconManager.img8);
+    jft.setSize(600, 600);
+    GraphicLib.centerOnParent(jft);
+    jft.setVisible(true);
+}
 
-        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                tp.tabbedPane.removeTabAt(i);
-                tp.panels.removeElementAt(i);
-                setPanelMode();
-                return;
-            }
-        }
+public void showSavedRTLOTOS() {
+    String spec[] = loadLotosSpec();
+    if ((spec != null) && (spec[0] != null) && (spec[1] != null)) {
+        JFrameText jft = new JFrameText("RT-LOTOS Specification: " + spec[0], spec[1]);
+        jft.setIconImage(IconManager.img8);
+        jft.setSize(600, 600);
+        GraphicLib.centerOnParent(jft);
+        jft.setVisible(true);
     }
+}
 
-    public void removeAvatarBlock(TURTLEPanel tp, String s)     {
-        if (!(tp instanceof AvatarDesignPanel)) {
-            return;
-        }
+public void showSimulationTrace() {
+    gtm.showSIM(1);
+}
 
-        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                tp.tabbedPane.removeTabAt(i);
-                tp.panels.removeElementAt(i);
-                setPanelMode();
-                return;
-            }
-        }
+public void showSimulationTraceChrono() {
+    gtm.showSIM(2);
+}
+
+public void showDTA() {
+    String s = gtm.showDTA();
+    if (s != null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The DTA could not be displayed: " + s,
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+}
 
-    public void removeTMLCPrimitiveComponent(TURTLEPanel tp, String s)  {
-        //TraceManager.addDev("Removing panel 0:" + s);
-        if (!(tp instanceof TMLComponentDesignPanel)) {
-            return;
-        }
+public void showWave() {
+    RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.SystemCHost, null, null, ConfigurationTTool.GTKWavePath  + " vcddump.vcd");
+    ret.start();
+}
 
-        //TraceManager.addDev("Removing panel 1:" + s);
-        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                tp.tabbedPane.removeTabAt(i);
-                tp.panels.removeElementAt(i);
-                setPanelMode();
-                return;
-            }
-        }
+public void showRG() {
+    String s = gtm.showRG();
+    if (s != null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The RG could not be displayed: " + s,
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+}
 
-    // for diagrams
-    public void setEditMode() {
-        typeButtonSelected = TGComponentManager.EDIT;
-        idButtonSelected = -1;
+public void showTLSA() {
+    String s = gtm.showTLSA();
+    if (s != null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The TLSA could not be displayed: " + s,
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+}
 
-    public String getTabName(TURTLEPanel p) {
-        int index = tabs.indexOf(p);
-        if (index<0) {
-            return "";
-        }
-        return mainTabbedPane.getTitleAt(index);
+public void showRGAut() {
+    String s = gtm.showRGAut();
+    if (s != null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The RG could not be displayed: " + s,
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+}
 
-    public int getMajorIndexOf(TDiagramPanel tdp) {
-        TURTLEPanel tp;
-
-        for(int i=0; i<tabs.size();i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp.panels.contains(tdp)) {
-                return i;
-            }
-        }
-
-        return -1;
+public void showRGAutProj() {
+    String s = gtm.showRGAutProj();
+    if (s != null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The RG could not be displayed: " + s,
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+}
 
-    public String getMajorTitle(TDiagramPanel tdp) {
-        int index = getMajorIndexOf(tdp);
-
-        if (index == -1) {
-            return "unknown";
-        }
-
-        return mainTabbedPane.getTitleAt(index);
+public void showRGDiplodocus() {
+    String s = gtm.showRGDiplodocus();
+    if (s != null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The RG could not be displayed: " + s,
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+}
 
-    public ArrayList<TMLComponentTaskDiagramPanel> getAllPanelsReferencingTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
-        TURTLEPanel tp;
-        ArrayList<TMLComponentTaskDiagramPanel> foundPanels = new ArrayList<TMLComponentTaskDiagramPanel>();
+public void showModifiedAUTDOT() {
+    String s = GTURTLEModeling.runDOTTY(modifiedautdot);
+    if (s != null) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The RG could not be displayed: " + s,
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+    }
+}
 
-        for(int i=0; i<tabs.size();i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof TMLComponentDesignPanel) {
-                ((TMLComponentDesignPanel)tp).tmlctdp.getPanelsUsingAComponent(tmlcc, foundPanels);
-            }
+public void showGGraph() {
+    String graph[] = loadGGraph();
+    if (graph != null) {
+        String s = GTURTLEModeling.showGGraph(graph[1]);
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The graph could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
         }
-
-        return foundPanels;
     }
+}
 
-    public void updateReferenceToTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
-        TURTLEPanel tp;
-
-        for(int i=0; i<tabs.size();i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof TMLComponentDesignPanel) {
-                ((TMLComponentDesignPanel)tp).tmlctdp.updateReferenceToTMLCCompositeComponent(tmlcc);
-            }
+public void viewAutomata(String file) {
+    //TraceManager.addDev("viewing: " + file);
+    String graph[] = loadGGraph(file);
+    if (graph != null) {
+        String s = GTURTLEModeling.showGGraph(graph[1]);
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The graph could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
         }
     }
+}
 
-    public TMLCCompositeComponent getCompositeComponent(String name) {
-        int index = name.indexOf("::");
-        if (index == -1) {
-            return null;
-        }
+public void executeUserCommand(String host, String command) {
+    RemoteExecutionThread ret = new RemoteExecutionThread(host, null, null, command);
+    ret.start();
+    TraceManager.addDev("User command ->" + command + "<- started on host " + host);
+}
 
-        String panelName = name.substring(0, index);
-        String componentName = name.substring(index+2, name.length());
 
-        TURTLEPanel tp = getTURTLEPanel(panelName);
+public void screenCapture() {
+    //Select file
+    File file = selectFileForCapture();
+    Toolkit toolkit = Toolkit.getDefaultToolkit();
+    Dimension screenSize = toolkit.getScreenSize();
+    Rectangle screenRect = new Rectangle(screenSize);
+    performScreenCapture(screenRect, file);
+}
 
-        if ((tp == null) || (!(tp instanceof TMLComponentDesignPanel))) {
-            return null;
-        }
+public void windowCapture() {
+    //Select file
+    File file = selectFileForCapture();
+    if (file == null)
+        return;
 
+    Rectangle screenRect = new Rectangle(frame.getLocation().x, frame.getLocation().y, frame.getWidth(), frame.getHeight());
+    performScreenCapture(screenRect, file);
+}
 
-        return ((TMLComponentDesignPanel)(tp)).tmlctdp.getCompositeComponentByName(componentName);
+public void diagramCapture() {
+    if (tabs.size() < 1) {
+        JOptionPane.showMessageDialog(frame,
+                                      "No diagram is under edition",
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return;
     }
 
-    public AvatarSMDPanel getAvatarSMDPanel(int indexDesign, String name) {
+    File file = selectFileForCapture();
+    if (file == null)
+        return;
 
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        if (tp == null) {
-            TraceManager.addDev("null TP");
-            return null;
-        }
-        if (tp instanceof AvatarDesignPanel) {
-            return ((AvatarDesignPanel)tp).getAvatarSMDPanel(name);
-        }
-        TraceManager.addDev("null ADP :" + name);
-        return null;
+    TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+    if (tdp1 != null) {
+        BufferedImage image = tdp1.performMinimalCapture();
+        writeImageCapture(image, file, true);
     }
+}
 
-    public TActivityDiagramPanel getActivityDiagramPanel(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        if (tp == null) {
-            return null;
-        }
-        if (tp instanceof DesignPanel) {
-            return ((DesignPanel)tp).getActivityDiagramPanel(name);
-        }
-        return null;
-    }
+public void svgDiagramCapture() {
 
-    public TURTLEOSActivityDiagramPanel getTURTLEOSActivityDiagramPanel(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        if (tp == null) {
-            return null;
-        }
-        if (tp instanceof TURTLEOSDesignPanel) {
-            return ((TURTLEOSDesignPanel)tp).getTURTLEOSActivityDiagramPanel(name);
-        }
-        return null;
+    TraceManager.addDev("SVG capture ");
+
+    if (tabs.size() < 1) {
+        JOptionPane.showMessageDialog(frame,
+                                      "No diagram is under edition",
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return;
     }
 
-    public TMLActivityDiagramPanel getTMLActivityDiagramPanel(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        if (tp == null) {
-            return null;
-        }
-        if (tp instanceof TMLDesignPanel) {
-            return ((TMLDesignPanel)tp).getTMLActivityDiagramPanel(name);
-        }
-        if (tp instanceof TMLComponentDesignPanel) {
-            return ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
+    File file = selectSVGFileForCapture();
+
+    if (file == null)
+        return;
+
+    TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+    if (tdp1 != null) {
+        String s = tdp1.svgCapture();
+        try {
+            FileUtils.saveFile(file.getAbsolutePath(), s);
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(frame,
+                                          "File could not be saved: " + e.getMessage(),
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
         }
-        return null;
+        JOptionPane.showMessageDialog(frame,
+                                      "The capture was correctly performed and saved in " + file.getAbsolutePath(),
+                                      "Save in svg format ok",
+                                      JOptionPane.INFORMATION_MESSAGE);
     }
+}
 
-    public ProactiveSMDPanel getSMDPanel(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        if (tp == null) {
-            return null;
-        }
-        if (tp instanceof ProactiveDesignPanel) {
-            return ((ProactiveDesignPanel)tp).getSMDPanel(name);
-        }
-        return null;
+public void allDiagramCapture() {
+    if (tabs.size() < 1) {
+        JOptionPane.showMessageDialog(frame,
+                                      "No diagram is under edition",
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return;
     }
 
-    public int getNbActivityDiagram() {
-        TDiagramPanel tdp;
-        int cpt = 0;
+    File file = selectFileForCapture();
+    if (file == null)
+        return;
+
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    TDiagramPanel tdp1;
+    BufferedImage image;
+    File file1;
+    String name = file.getAbsolutePath();
+    name = name.substring(0, name.length() - 4);
 
-        for(int i = 0; i<getCurrentJTabbedPane().getTabCount(); i++) {
-            tdp = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(i));
-            if (tdp instanceof TActivityDiagramPanel) {
-                cpt ++;
+    //boolean actions;
+    for(int i=0; i<tp.panels.size(); i++) {
+        tdp1 = (TDiagramPanel)(tp.panels.elementAt(i));
+        tdp1.repaint();
+        image = tdp1.performMinimalCapture();
+        if (i < 10) {
+            file1 = new File(name + "0" + i);
+        } else {
+            file1 = new File(name + i);
+        }
+        file1 = FileUtils.addFileExtensionIfMissing(file1, TImgFilter.getExtension());
+        if (!writeImageCapture(image, file1, false)) {
+            return;
+        }
+        if (i ==0) {
+            if (!writeImageCapture(image, file, false)) {
+                return;
             }
         }
-        return cpt;
     }
 
-    public void setAvatarBDName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
-    }
+    JOptionPane.showMessageDialog(frame,
+                                  "All diagrams were sucessfully captured",
+                                  "Capture ok",
+                                  JOptionPane.INFORMATION_MESSAGE);
+}
 
-    public void setClassDiagramName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
-    }
+public void selectedCapture() {
+    File file = selectFileForCapture();
+    if (file == null)
+        return;
+    BufferedImage image = getCurrentTDiagramPanel().performSelectedCapture();
+    writeImageCapture(image, file, true);
+}
+
+public File selectFileForCapture() {
+    File file = null;
+    int returnVal = jfcimg.showSaveDialog(frame);
+    if(returnVal == JFileChooser.APPROVE_OPTION) {
+        file = jfcimg.getSelectedFile();
+        file = FileUtils.addFileExtensionIfMissing(file, TImgFilter.getExtension());
 
-    public void setDiplodocusMethodologyDiagramName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
     }
-    
-    public void setAvatarMethodologyDiagramName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
+    if(!checkFileForSave(file)) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The capture could not be performed: invalid file",
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return null;
     }
+    return file;
+}
 
-    public void setTMLTaskDiagramName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
-    }
+public File selectSVGFileForCapture() {
+    File file = null;
+    int returnVal = jfcimgsvg.showSaveDialog(frame);
+    if(returnVal == JFileChooser.APPROVE_OPTION) {
+        file = jfcimgsvg.getSelectedFile();
+        file = FileUtils.addFileExtensionIfMissing(file, TSVGFilter.getExtension());
 
-    public void setTMLComponentTaskDiagramName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
     }
-
-    public void setTMLArchitectureDiagramName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
+    if(!checkFileForSave(file)) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The capture could not be performed: invalid file",
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return null;
     }
-    
-    public void setAADName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
+    return file;
+}
+
+public void performScreenCapture(Rectangle rect, File file) {
+    frame.paint(frame.getGraphics());
+    try {
+        Robot robot = new Robot();
+        BufferedImage image = robot.createScreenCapture(rect);
+        // save captured image to PNG file
+        ImageIO.write(image, "png", file);
+    } catch (Exception e) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The capture could not be performed:" + e.getMessage(),
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return;
     }
-
-    public void setProacticeCSDName(int indexDesign, String name) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-        tp.tabbedPane.setTitleAt(0, name);
+    JOptionPane.showMessageDialog(frame,
+                                  "The capture was correctly performed",
+                                  "Screen capture ok",
+                                  JOptionPane.INFORMATION_MESSAGE);
+    return;
+}
+
+public boolean writeImageCapture(BufferedImage image, File file, boolean info) {
+    frame.paint(frame.getGraphics());
+    try {
+        // save captured image to PNG file
+        ImageIO.write(image, "png", file);
+    } catch (Exception e) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The capture could not be performed:" + e.getMessage(),
+                                      "Error",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return false;
     }
-
-    public TDiagramPanel getMainTDiagramPanel(int indexPanel) {
-        if (tabs.size() > indexPanel) {
-            TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexPanel));
-            return tp.tdp;
+    if (info) {
+        JOptionPane.showMessageDialog(frame,
+                                      "The capture was correctly performed and saved in " + file.getAbsolutePath(),
+                                      "Screen capture ok",
+                                      JOptionPane.INFORMATION_MESSAGE);
+    }
+    return true;
+}
+
+public void generateDocumentation() {
+    //TraceManager.addDev("Documentation");
+    ThreadGUIElement t = new ThreadGUIElement(frame, 1, tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName(),"Documentation", "Generating documentation ... Please wait");
+    t.go();
+    /*DocumentationGenerator docgen = new DocumentationGenerator(tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName());
+      docgen.setFirstHeadingNumber(2);
+      if (docgen.generateDocumentation()) {
+      JOptionPane.showMessageDialog(frame,
+      "All done!",
+      "Documentation generation",
+      JOptionPane.INFORMATION_MESSAGE);
+      } else {
+      JOptionPane.showMessageDialog(frame,
+      "The documentation generation could not be performed",
+      "Error",
+      JOptionPane.INFORMATION_MESSAGE);
+      }*/
+    //TraceManager.addDev("Documentation=" + docgen.getDocumentation());
+}
+
+public void generateDocumentationReq() {
+    TraceManager.addDev("Frame Req");
+    JDialogRequirementTable jdrt = new JDialogRequirementTable(frame, "Selecting table columns");
+    GraphicLib.centerOnParent(jdrt);
+    jdrt.setVisible(true);
+    if (!jdrt.hasBeenCancelled()) {
+        Point [] pts = jdrt.getColumnsInfo();
+        if (pts != null) {
+            for(int i=0; i<pts.length; i++) {
+                TraceManager.addDev("" + i + ": (" + pts[i].x + ", " + pts[i].y + ")");
+            }
+
+            JFrameRequirementTable jfrt = new JFrameRequirementTable("Requirement table", tabs, mainTabbedPane, pts);
+            jfrt.setIconImage(IconManager.img8);
+            jfrt.setSize(1024, 768);
+            GraphicLib.centerOnParent(jfrt);
+            jfrt.setVisible(true);
         } else {
-            return null;
+            TraceManager.addDev("No column to print");
         }
-
     }
+    TraceManager.addDev("Done");
+}
 
-    // TMLCP
-    public boolean isTMLCPSDCreated(int index, String s) {
-        return isTMLCPSDCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
-    }
+public int getTypeButtonSelected() {
+    return typeButtonSelected;
+}
 
-    public boolean isTMLCPSDCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
-        }
-        return (tp.panelAt(index) instanceof TMLSDPanel);
-    }
+public void actionOnButton(int type, int id) {
+    typeButtonSelected = type;
+    idButtonSelected = id;
+    //TDiagramPanel tdp1 = ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
+    TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+    //TraceManager.addDev("Selected TDiagramPanel=" + tdp1.getName());
+    tdp1.repaint();
+}
 
-    public boolean isTMLCPCreated(int index, String s) {
-        return isTMLCPCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
-    }
+public int getIdButtonSelected() {
+    return idButtonSelected;
+}
 
-    public boolean isTMLCPCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
-        }
-        return (tp.panelAt(index) instanceof TMLCPPanel);
+public void addAvatarBlock(TURTLEPanel tp, String s)        {
+    //TraceManager.addDev("ADD TML Task=" + s);
+    if (!(tp instanceof AvatarDesignPanel)) {
+        return;
     }
 
+    ((AvatarDesignPanel)tp).addAvatarStateMachineDiagramPanel(s);
+    setPanelMode();
+}
 
+public void addTClass(TURTLEPanel tp, String s)     {
+    if (!(tp instanceof DesignPanel)) {
+        return;
+    }
 
+    ((DesignPanel)tp).addTActivityDiagram(s);
+    setPanelMode();
+}
 
-    // IOD, SD
-
-    public boolean isSDCreated(int index, String s) {
-        return isSDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+public void addTOSClass(TURTLEPanel tp, String s)   {
+    if (!(tp instanceof TURTLEOSDesignPanel)) {
+        return;
     }
 
-    public boolean isIODCreated(int index, String s) {
-        return isIODCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
-    }
+    ((TURTLEOSDesignPanel)tp).addTURTLEOSActivityDiagram(s);
+    setPanelMode();
+}
 
-    public boolean isProActiveSMDCreated(int index, String s) {
-        return isProActiveSMDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+public void addTMLTask(TURTLEPanel tp, String s)    {
+    //TraceManager.addDev("ADD TML Task=" + s);
+    if (!(tp instanceof TMLDesignPanel)) {
+        return;
     }
 
-    public boolean isSDCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
-        }
-        return (tp.panelAt(index) instanceof SequenceDiagramPanel);
+    ((TMLDesignPanel)tp).addTMLActivityDiagram(s);
+    setPanelMode();
+}
+
+public void addTMLCPrimitiveComponent(TURTLEPanel tp, String s)     {
+    //TraceManager.addDev("ADD C Primitive Component=" + s);
+    if (!(tp instanceof TMLComponentDesignPanel)) {
+        return;
     }
 
-    public boolean isUseCaseDiagramCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
+    ((TMLComponentDesignPanel)tp).addTMLActivityDiagram(s);
+    setPanelMode();
+}
+
+public TMLActivityDiagramPanel getReferencedTMLActivityDiagramPanel(TDiagramPanel _tdp, String name) {
+    TURTLEPanel tp;
+    TMLActivityDiagramPanel tmladp;
+    //TraceManager.addDev("global search for: " + name);
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof TMLComponentDesignPanel) {
+            if (tp.hasTDiagramPanel(_tdp)) {
+                tmladp = ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
+                if (tmladp != null) {
+                    //TraceManager.addDev("Found");
+                    return tmladp;
+                }
+            }
         }
-        return (tp.panelAt(index) instanceof UseCaseDiagramPanel);
     }
 
-    public boolean isAvatarCDCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
+    TraceManager.addDev("Not found");
+    return null;
+}
+
+public TURTLEPanel getTURTLEPanelOfTDiagramPanel(TDiagramPanel _tdp) {
+    TURTLEPanel tp;
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof TMLComponentDesignPanel) {
+            if (tp.hasTDiagramPanel(_tdp)) {
+                return tp;
+
+            }
         }
-        return (tp.panelAt(index) instanceof AvatarCDPanel);
     }
+    return null;
+}
 
-    public boolean isAvatarADCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
+public ArrayList<EBRDDPanel> getAllEBRDDPanels() {
+    TURTLEPanel tp;
+    ArrayList<EBRDDPanel> al = new ArrayList<EBRDDPanel>();
+    //TraceManager.addDev("global search for: " + name);
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof RequirementPanel) {
+            ((RequirementPanel)tp).addAllEBRDDPanels(al);
         }
-        return (tp.panelAt(index) instanceof AvatarADPanel);
     }
 
-    public boolean isIODCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
+    return al;
+}
+
+public ArrayList<AvatarPDPanel> getAllAvatarPDPanels() {
+    TURTLEPanel tp;
+    ArrayList<AvatarPDPanel> al = new ArrayList<AvatarPDPanel>();
+    //TraceManager.addDev("global search for: " + name);
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof AvatarRequirementPanel) {
+            ((AvatarRequirementPanel)tp).addAllAvatarPDPanels(al);
         }
-        return (tp.panelAt(index) instanceof InteractionOverviewDiagramPanel);
     }
 
-    public boolean isProActiveSMDCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
+    return al;
+}
+
+public LinkedList getAllTMLComponents() {
+    TURTLEPanel tp;
+    LinkedList ll = new LinkedList();
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof TMLComponentDesignPanel) {
+            ll.addAll(((TMLComponentDesignPanel)tp).tmlctdp.getComponentList());
         }
-        return (tp.panelAt(index) instanceof ProactiveSMDPanel);
     }
+    return ll;
+}
 
-    public boolean openSequenceDiagram(String s) {
-        int index = getCurrentJTabbedPane().indexOfTab(s);
-        if (index > -1) {
-            getCurrentJTabbedPane().setSelectedIndex(index);
-            return true;
-        }
-        return false;
+public void removeTClass(TURTLEPanel tp, String s)  {
+    if (!(tp instanceof DesignPanel)) {
+        return;
     }
 
-    public boolean openIODiagram(String s) {
-        int index = getCurrentJTabbedPane().indexOfTab(s);
-        if (index > -1) {
-            getCurrentJTabbedPane().setSelectedIndex(index);
-            return true;
+    for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            tp.tabbedPane.removeTabAt(i);
+            tp.panels.removeElementAt(i);
+            setPanelMode();
+            return;
         }
-        return false;
     }
+}
 
-    public boolean openTMLCPSequenceDiagram(String s) {
-        int index = getCurrentJTabbedPane().indexOfTab(s);
-        if (index > -1) {
-            getCurrentJTabbedPane().setSelectedIndex(index);
-            return true;
-        }
-        return false;
+public void removeTOSClass(TURTLEPanel tp, String s)        {
+    if (!(tp instanceof TURTLEOSDesignPanel)) {
+        return;
     }
 
-    public boolean openTMLCPDiagram(String s) {
-        int index = getCurrentJTabbedPane().indexOfTab(s);
-        if (index > -1) {
-            getCurrentJTabbedPane().setSelectedIndex(index);
-            return true;
+    TraceManager.addDev("Removing tab ...");
+    for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            tp.tabbedPane.removeTabAt(i);
+            tp.panels.removeElementAt(i);
+            setPanelMode();
+            return;
         }
-        return false;
     }
+}
 
-
-
-    // TMLCP
-
-    public boolean createTMLCPSequenceDiagram(int index, String s) {
-        return createTMLCPSequenceDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+public void removeTMLTask(TURTLEPanel tp, String s) {
+    if (!(tp instanceof TMLDesignPanel)) {
+        return;
     }
 
-    public boolean createTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
-        if(isSDCreated(tp, s)) {
-            return false;
-        }
-
-        if (!(tp instanceof TMLCommunicationPatternPanel) ) {
-            return false;
+    for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            tp.tabbedPane.removeTabAt(i);
+            tp.panels.removeElementAt(i);
+            setPanelMode();
+            return;
         }
+    }
+}
 
+public void removeAvatarBlock(TURTLEPanel tp, String s)     {
+    if (!(tp instanceof AvatarDesignPanel)) {
+        return;
+    }
 
-        ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s);
-
-        setPanelMode();
-        return true;
+    for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            tp.tabbedPane.removeTabAt(i);
+            tp.panels.removeElementAt(i);
+            setPanelMode();
+            return;
+        }
     }
+}
 
+public void removeTMLCPrimitiveComponent(TURTLEPanel tp, String s)  {
+    //TraceManager.addDev("Removing panel 0:" + s);
+    if (!(tp instanceof TMLComponentDesignPanel)) {
+        return;
+    }
 
-    public boolean createUniqueTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
-        int i;
-        for(i=0; i<1000; i++) {
-            if(!isTMLCPSDCreated(tp, s+i)) {
-                break;
-            }
+    //TraceManager.addDev("Removing panel 1:" + s);
+    for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            tp.tabbedPane.removeTabAt(i);
+            tp.panels.removeElementAt(i);
+            setPanelMode();
+            return;
         }
+    }
+}
 
-        ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s+i);
+// for diagrams
+public void setEditMode() {
+    typeButtonSelected = TGComponentManager.EDIT;
+    idButtonSelected = -1;
+}
 
-        setPanelMode();
-        return true;
+public String getTabName(TURTLEPanel p) {
+    int index = tabs.indexOf(p);
+    if (index<0) {
+        return "";
     }
+    return mainTabbedPane.getTitleAt(index);
+}
 
+public int getMajorIndexOf(TDiagramPanel tdp) {
+    TURTLEPanel tp;
 
+    for(int i=0; i<tabs.size();i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp.panels.contains(tdp)) {
+            return i;
+        }
+    }
 
+    return -1;
+}
 
-    public boolean createTMLCPDiagram(int index, String s) {
-        return createTMLCPDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+public String getMajorTitle(TDiagramPanel tdp) {
+    int index = getMajorIndexOf(tdp);
+
+    if (index == -1) {
+        return "unknown";
     }
 
-    public boolean createTMLCPDiagram(TURTLEPanel tp, String s) {
-        if(isTMLCPCreated(tp, s)) {
-            return false;
-        }
+    return mainTabbedPane.getTitleAt(index);
+}
 
-        if (!(tp instanceof TMLCommunicationPatternPanel)) {
-            return false;
-        }
+public ArrayList<TMLComponentTaskDiagramPanel> getAllPanelsReferencingTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
+    TURTLEPanel tp;
+    ArrayList<TMLComponentTaskDiagramPanel> foundPanels = new ArrayList<TMLComponentTaskDiagramPanel>();
 
-        ((TMLCommunicationPatternPanel)tp).addCPDiagram(s);
-        setPanelMode();
-        return true;
+    for(int i=0; i<tabs.size();i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof TMLComponentDesignPanel) {
+            ((TMLComponentDesignPanel)tp).tmlctdp.getPanelsUsingAComponent(tmlcc, foundPanels);
+        }
     }
 
-    // End of TMLCP
+    return foundPanels;
+}
 
+public void updateReferenceToTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
+    TURTLEPanel tp;
 
-    public SequenceDiagramPanel getSequenceDiagramPanel(int index, String s) {
-        //TraceManager.addDev("Searching for " + s);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getSequenceDiagramPanel(tp, s);
+    for(int i=0; i<tabs.size();i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof TMLComponentDesignPanel) {
+            ((TMLComponentDesignPanel)tp).tmlctdp.updateReferenceToTMLCCompositeComponent(tmlcc);
+        }
     }
+}
 
-    public AttackTreeDiagramPanel getAttackTreeDiagramPanel(int index, String s) {
-        //TraceManager.addDev("Searching for " + s);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getAttackTreeDiagramPanel(tp, s);
+public TMLCCompositeComponent getCompositeComponent(String name) {
+    int index = name.indexOf("::");
+    if (index == -1) {
+        return null;
     }
 
-    public AttackTreeDiagramPanel getAttackTreeDiagramPanel(TURTLEPanel tp, String s) {
-        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                if (tp.panelAt(i) instanceof AttackTreeDiagramPanel)
-                    return  (AttackTreeDiagramPanel)(tp.panelAt(i));
-            }
-        }
+    String panelName = name.substring(0, index);
+    String componentName = name.substring(index+2, name.length());
+
+    TURTLEPanel tp = getTURTLEPanel(panelName);
+
+    if ((tp == null) || (!(tp instanceof TMLComponentDesignPanel))) {
         return null;
     }
 
 
-    public TMLCPPanel getTMLCPDiagramPanel(int index, String s) {
-        //TraceManager.addDev("Searching for " + s);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getTMLCPDiagramPanel(tp, s);
-    }
+    return ((TMLComponentDesignPanel)(tp)).tmlctdp.getCompositeComponentByName(componentName);
+}
 
-    public TMLCPPanel getTMLCPDiagramPanel(TURTLEPanel tp, String s) {
-        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                if (tp.panelAt(i) instanceof TMLCPPanel)
-                    return  (TMLCPPanel)(tp.panelAt(i));
-            }
-        }
+public AvatarSMDPanel getAvatarSMDPanel(int indexDesign, String name) {
+
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    if (tp == null) {
+        TraceManager.addDev("null TP");
         return null;
     }
-
-    public TMLSDPanel getTMLCPSDDiagramPanel(int index, String s) {
-        //TraceManager.addDev("Searching for " + s);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getTMLCPSDDiagramPanel(tp, s);
+    if (tp instanceof AvatarDesignPanel) {
+        return ((AvatarDesignPanel)tp).getAvatarSMDPanel(name);
     }
+    TraceManager.addDev("null ADP :" + name);
+    return null;
+}
 
-    public TMLSDPanel getTMLCPSDDiagramPanel(TURTLEPanel tp, String s) {
-        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                if (tp.panelAt(i) instanceof TMLSDPanel)
-                    return  (TMLSDPanel)(tp.panelAt(i));
-            }
-        }
+public TActivityDiagramPanel getActivityDiagramPanel(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    if (tp == null) {
         return null;
     }
-
-    public InteractionOverviewDiagramPanel getIODiagramPanel(int index, String s) {
-        //TraceManager.addDev("Searching for " + s);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getIODiagramPanel(tp, s);
+    if (tp instanceof DesignPanel) {
+        return ((DesignPanel)tp).getActivityDiagramPanel(name);
     }
+    return null;
+}
 
-    public SequenceDiagramPanel getSequenceDiagramPanel(TURTLEPanel tp, String s) {
-        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                if (tp.panelAt(i) instanceof SequenceDiagramPanel)
-                    return  (SequenceDiagramPanel)(tp.panelAt(i));
-            }
-        }
+public TURTLEOSActivityDiagramPanel getTURTLEOSActivityDiagramPanel(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    if (tp == null) {
         return null;
     }
+    if (tp instanceof TURTLEOSDesignPanel) {
+        return ((TURTLEOSDesignPanel)tp).getTURTLEOSActivityDiagramPanel(name);
+    }
+    return null;
+}
 
-    public InteractionOverviewDiagramPanel getIODiagramPanel(TURTLEPanel tp, String s) {
-        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                if (tp.panelAt(i) instanceof InteractionOverviewDiagramPanel)
-                    return  (InteractionOverviewDiagramPanel)(tp.panelAt(i));
-            }
-        }
+public TMLActivityDiagramPanel getTMLActivityDiagramPanel(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    if (tp == null) {
         return null;
     }
-
-    public UseCaseDiagramPanel getUseCaseDiagramPanel(int index, int indexTab, String s) {
-        //TraceManager.addDev("Searching for " + s + " at index =" + index);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getUseCaseDiagramPanel(tp, indexTab, s);
+    if (tp instanceof TMLDesignPanel) {
+        return ((TMLDesignPanel)tp).getTMLActivityDiagramPanel(name);
     }
+    if (tp instanceof TMLComponentDesignPanel) {
+        return ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
+    }
+    return null;
+}
 
-    public UseCaseDiagramPanel getUseCaseDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (UseCaseDiagramPanel)(tp.panelAt(indexTab));
-        }
+public ProactiveSMDPanel getSMDPanel(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    if (tp == null) {
         return null;
     }
-
-    public boolean createSequenceDiagram(int index, String s) {
-        return createSequenceDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    if (tp instanceof ProactiveDesignPanel) {
+        return ((ProactiveDesignPanel)tp).getSMDPanel(name);
+    }
+    return null;
+}
+
+public int getNbActivityDiagram() {
+    TDiagramPanel tdp;
+    int cpt = 0;
+
+    for(int i = 0; i<getCurrentJTabbedPane().getTabCount(); i++) {
+        tdp = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(i));
+        if (tdp instanceof TActivityDiagramPanel) {
+            cpt ++;
+        }
+    }
+    return cpt;
+}
+
+public void setAvatarBDName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setClassDiagramName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setDiplodocusMethodologyDiagramName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setAvatarMethodologyDiagramName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setTMLTaskDiagramName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setTMLComponentTaskDiagramName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setTMLArchitectureDiagramName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setAADName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public void setProacticeCSDName(int indexDesign, String name) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+    tp.tabbedPane.setTitleAt(0, name);
+}
+
+public TDiagramPanel getMainTDiagramPanel(int indexPanel) {
+    if (tabs.size() > indexPanel) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexPanel));
+        return tp.tdp;
+    } else {
+        return null;
     }
 
-    public boolean createSequenceDiagram(TURTLEPanel tp, String s) {
-        if(isSDCreated(tp, s)) {
-            return false;
-        }
+}
 
-        if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
-            return false;
-        }
+// TMLCP
+public boolean isTMLCPSDCreated(int index, String s) {
+    return isTMLCPSDCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
+}
 
-        if (tp instanceof AnalysisPanel) {
-            ((AnalysisPanel)tp).addSequenceDiagram(s);
-        } else if (tp instanceof AvatarAnalysisPanel) {
-            ((AvatarAnalysisPanel)tp).addSequenceDiagram(s);
-        }
-        setPanelMode();
-        return true;
+public boolean isTMLCPSDCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
     }
+    return (tp.panelAt(index) instanceof TMLSDPanel);
+}
 
+public boolean isTMLCPCreated(int index, String s) {
+    return isTMLCPCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+}
 
-    public boolean createUniqueSequenceDiagram(TURTLEPanel tp, String s) {
-        int i;
-        for(i=0; i<1000; i++) {
-            if(!isSDCreated(tp, s+i)) {
-                break;
-            }
-        }
-
-        if (tp instanceof AnalysisPanel) {
-            ((AnalysisPanel)tp).addSequenceDiagram(s+i);
-        } else if (tp instanceof AvatarAnalysisPanel) {
-            ((AvatarAnalysisPanel)tp).addSequenceDiagram(s+i);
-        }
-
-        setPanelMode();
-        return true;
+public boolean isTMLCPCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
     }
+    return (tp.panelAt(index) instanceof TMLCPPanel);
+}
 
-    public boolean createSequenceDiagramFromUCD(TURTLEPanel tp, String s, UseCaseDiagramPanel _ucdp) {
-        if (!createUniqueSequenceDiagram(tp, s)) {
-            return false;
-        }
 
-        if (! ((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
-            return false;
-        }
 
-        if (tp instanceof AnalysisPanel) {
-            ((AnalysisPanel)tp).addInstancesToLastSD(_ucdp);
-        } else if (tp instanceof AvatarAnalysisPanel) {
-            ((AvatarAnalysisPanel)tp).addInstancesToLastSD(_ucdp);
-        }
 
-        return true;
-    }
+// IOD, SD
 
+public boolean isSDCreated(int index, String s) {
+    return isSDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+}
 
+public boolean isIODCreated(int index, String s) {
+    return isIODCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+}
 
-    public boolean createIODiagram(int index, String s) {
-        return createIODiagram((TURTLEPanel)(tabs.elementAt(index)), s);
-    }
+public boolean isProActiveSMDCreated(int index, String s) {
+    return isProActiveSMDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+}
 
-    public boolean createIODiagram(TURTLEPanel tp, String s) {
-        if(isIODCreated(tp, s)) {
-            return false;
-        }
+public boolean isSDCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
+    }
+    return (tp.panelAt(index) instanceof SequenceDiagramPanel);
+}
 
-        if (!(tp instanceof AnalysisPanel)) {
-            return false;
-        }
+public boolean isUseCaseDiagramCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
+    }
+    return (tp.panelAt(index) instanceof UseCaseDiagramPanel);
+}
 
-        ((AnalysisPanel)tp).addIODiagram(s);
-        setPanelMode();
-        return true;
+public boolean isAvatarCDCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
     }
+    return (tp.panelAt(index) instanceof AvatarCDPanel);
+}
 
-    public boolean createUseCaseDiagram(int index, String s) {
-        return createUseCaseDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+public boolean isAvatarADCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
     }
+    return (tp.panelAt(index) instanceof AvatarADPanel);
+}
 
-    public boolean createUniqueUseCaseDiagram(TURTLEPanel tp, String s) {
-        if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
-            return false;
-        }
+public boolean isIODCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
+    }
+    return (tp.panelAt(index) instanceof InteractionOverviewDiagramPanel);
+}
 
-        int i;
-        for(i=0; i<1000; i++) {
-            if(!isUseCaseDiagramCreated(tp, s + " " + i)) {
-                break;
-            }
-        }
+public boolean isProActiveSMDCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
+    }
+    return (tp.panelAt(index) instanceof ProactiveSMDPanel);
+}
 
-        if (tp instanceof AnalysisPanel) {
-            ((AnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
-        } else {
-            ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
-        }
-        setPanelMode();
+public boolean openSequenceDiagram(String s) {
+    int index = getCurrentJTabbedPane().indexOfTab(s);
+    if (index > -1) {
+        getCurrentJTabbedPane().setSelectedIndex(index);
         return true;
     }
+    return false;
+}
 
-    public boolean createUseCaseDiagram(TURTLEPanel tp, String s) {
-        if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
-            return false;
-        }
+public boolean openIODiagram(String s) {
+    int index = getCurrentJTabbedPane().indexOfTab(s);
+    if (index > -1) {
+        getCurrentJTabbedPane().setSelectedIndex(index);
+        return true;
+    }
+    return false;
+}
 
-        if (tp instanceof AnalysisPanel) {
-            ((AnalysisPanel)tp).addUseCaseDiagram(s);
-        } else {
-            ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s);
-        }
-        setPanelMode();
+public boolean openTMLCPSequenceDiagram(String s) {
+    int index = getCurrentJTabbedPane().indexOfTab(s);
+    if (index > -1) {
+        getCurrentJTabbedPane().setSelectedIndex(index);
         return true;
     }
+    return false;
+}
 
-    public boolean createAvatarCD(int index, String s) {
-        return createAvatarCD((TURTLEPanel) (tabs.elementAt(index)), s);
+public boolean openTMLCPDiagram(String s) {
+    int index = getCurrentJTabbedPane().indexOfTab(s);
+    if (index > -1) {
+        getCurrentJTabbedPane().setSelectedIndex(index);
+        return true;
     }
+    return false;
+}
 
-    public boolean createUniqueAvatarCD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AvatarAnalysisPanel))  {
-            return false;
-        }
 
-        int i;
-        for(i=0; i<1000; i++) {
-            if(!isAvatarCDCreated(tp, s + " " + i)) {
-                break;
-            }
-        }
 
-        ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s + " " + i);
+// TMLCP
 
+public boolean createTMLCPSequenceDiagram(int index, String s) {
+    return createTMLCPSequenceDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+}
 
-        setPanelMode();
-        return true;
+public boolean createTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
+    if(isSDCreated(tp, s)) {
+        return false;
     }
 
-    public boolean createAvatarCD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AvatarAnalysisPanel))  {
-            return false;
-        }
+    if (!(tp instanceof TMLCommunicationPatternPanel) ) {
+        return false;
+    }
 
 
-        ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s);
+    ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s);
 
+    setPanelMode();
+    return true;
+}
 
-        setPanelMode();
-        return true;
-    }
 
-    public boolean createAvatarAD(int index, String s) {
-        return createAvatarAD((TURTLEPanel) (tabs.elementAt(index)), s);
+public boolean createUniqueTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
+    int i;
+    for(i=0; i<1000; i++) {
+        if(!isTMLCPSDCreated(tp, s+i)) {
+            break;
+        }
     }
 
-    public boolean createUniqueAvatarAD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AvatarAnalysisPanel)) {
-            return false;
-        }
+    ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s+i);
 
-        int i;
-        for(i=0; i<1000; i++) {
-            if(!isAvatarADCreated(tp, s + " " + i)) {
-                break;
-            }
-        }
+    setPanelMode();
+    return true;
+}
 
-        ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s + " " + i);
-        setPanelMode();
-        return true;
-    }
 
-    public boolean createAvatarAD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AvatarAnalysisPanel)) {
-            return false;
-        }
 
 
-        ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s);
+public boolean createTMLCPDiagram(int index, String s) {
+    return createTMLCPDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+}
 
-        setPanelMode();
-        return true;
+public boolean createTMLCPDiagram(TURTLEPanel tp, String s) {
+    if(isTMLCPCreated(tp, s)) {
+        return false;
     }
 
-    //Changed by Solange from public boolean...
-    public String createProActiveSMD(int index, String s) {
-        //Adde by Solange String name at  the beginning
-        String name=createProActiveSMD((TURTLEPanel)(tabs.elementAt(index)), s);
-        return(name); //changed from return true
+    if (!(tp instanceof TMLCommunicationPatternPanel)) {
+        return false;
     }
 
-    //Return changed by Solange from boolean to String
-    public String createProActiveSMD(TURTLEPanel tp, String s) {
+    ((TMLCommunicationPatternPanel)tp).addCPDiagram(s);
+    setPanelMode();
+    return true;
+}
 
-        //Added by Solange. It fills the lists of components, interfaces, etc
-        TURTLEPanel tp2 = getCurrentTURTLEPanel();
-        gtm.generateLists((ProactiveDesignPanel)tp2);
-        //
+// End of TMLCP
 
-        if (!(tp instanceof ProactiveDesignPanel)) {
-            return null; //Changed by Solange from return false
-        }
 
-        s=((ProactiveDesignPanel)tp).addSMD(s);
-        //Added by Solange
-        //  ProactiveSMDPanel temp=((ProactiveDesignPanel)tp).getSMDPanel(s);
-        //Added by Solange
-        //And removed by Emil
+public SequenceDiagramPanel getSequenceDiagramPanel(int index, String s) {
+    //TraceManager.addDev("Searching for " + s);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getSequenceDiagramPanel(tp, s);
+}
 
-        /*
-          LinkedList cmps=gtm.gpdtemp.getProCSDComponentsList();
-          for (int i=0;i<cmps.size();i++)
-          {
-          ProCSDComponent c = (ProCSDComponent)cmps.get(i);
-
-          if (c.getType()== TGComponentManager.PROCSD_COMPONENT)
-          {
-          if(c.getComponentID().equals(temp.getName()))
-          {
-          c.mySMD=temp;
-          i=cmps.size();
-          }
-          }
-          }
-        */
-        //
-        setPanelMode();
-        return(s); //Changes by Solange from return true
-    }
+public AttackTreeDiagramPanel getAttackTreeDiagramPanel(int index, String s) {
+    //TraceManager.addDev("Searching for " + s);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getAttackTreeDiagramPanel(tp, s);
+}
 
-    public boolean createAvatarRD(int index, String s) {
-        return createAvatarRD((TURTLEPanel)(tabs.elementAt(index)), s);
+public AttackTreeDiagramPanel getAttackTreeDiagramPanel(TURTLEPanel tp, String s) {
+    for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            if (tp.panelAt(i) instanceof AttackTreeDiagramPanel)
+                return  (AttackTreeDiagramPanel)(tp.panelAt(i));
+        }
     }
+    return null;
+}
 
-    public boolean createAvatarRD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AvatarRequirementPanel)) {
-            return false;
-        }
 
-        ((AvatarRequirementPanel)tp).addAvatarRD(s);
-        setPanelMode();
-        return true;
-    }
+public TMLCPPanel getTMLCPDiagramPanel(int index, String s) {
+    //TraceManager.addDev("Searching for " + s);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getTMLCPDiagramPanel(tp, s);
+}
 
-    public boolean createAvatarMAD(int index, String s) {
-        return createAvatarMAD((TURTLEPanel)(tabs.elementAt(index)), s);
+public TMLCPPanel getTMLCPDiagramPanel(TURTLEPanel tp, String s) {
+    for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            if (tp.panelAt(i) instanceof TMLCPPanel)
+                return  (TMLCPPanel)(tp.panelAt(i));
+        }
     }
+    return null;
+}
 
-    public boolean createAvatarMAD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AvatarMADsPanel)) {
-            return false;
-        }
+public TMLSDPanel getTMLCPSDDiagramPanel(int index, String s) {
+    //TraceManager.addDev("Searching for " + s);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getTMLCPSDDiagramPanel(tp, s);
+}
 
-        ((AvatarMADsPanel)tp).addAvatarMADPanel(s);
-        setPanelMode();
-        return true;
+public TMLSDPanel getTMLCPSDDiagramPanel(TURTLEPanel tp, String s) {
+    for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            if (tp.panelAt(i) instanceof TMLSDPanel)
+                return  (TMLSDPanel)(tp.panelAt(i));
+        }
     }
+    return null;
+}
 
-    public boolean createAvatarPD(int index, String s) {
-        return createAvatarPD((TURTLEPanel)(tabs.elementAt(index)), s);
-    }
+public InteractionOverviewDiagramPanel getIODiagramPanel(int index, String s) {
+    //TraceManager.addDev("Searching for " + s);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getIODiagramPanel(tp, s);
+}
 
-    public boolean createAvatarPD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AvatarRequirementPanel)) {
-            return false;
+public SequenceDiagramPanel getSequenceDiagramPanel(TURTLEPanel tp, String s) {
+    for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            if (tp.panelAt(i) instanceof SequenceDiagramPanel)
+                return  (SequenceDiagramPanel)(tp.panelAt(i));
         }
-
-        ((AvatarRequirementPanel)tp).addAvatarPD(s);
-        setPanelMode();
-        return true;
-    }
-    
-    public boolean createADDDiagram(int index, String s) {
-        return createADDDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
     }
+    return null;
+}
 
-    public boolean createADDDiagram(TURTLEPanel tp, String s) {
-        if (!(tp instanceof ADDPanel)) {
-            return false;
+public InteractionOverviewDiagramPanel getIODiagramPanel(TURTLEPanel tp, String s) {
+    for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            if (tp.panelAt(i) instanceof InteractionOverviewDiagramPanel)
+                return  (InteractionOverviewDiagramPanel)(tp.panelAt(i));
         }
+    }
+    return null;
+}
 
-        ((ADDPanel)tp).addDeploymentPanelDiagram(s);
-        setPanelMode();
-        return true;
+public UseCaseDiagramPanel getUseCaseDiagramPanel(int index, int indexTab, String s) {
+    //TraceManager.addDev("Searching for " + s + " at index =" + index);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getUseCaseDiagramPanel(tp, indexTab, s);
+}
+
+public UseCaseDiagramPanel getUseCaseDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (UseCaseDiagramPanel)(tp.panelAt(indexTab));
     }
+    return null;
+}
 
+public boolean createSequenceDiagram(int index, String s) {
+    return createSequenceDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+}
 
-    public boolean isRequirementCreated(int index, String s) {
-        return isRequirementCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
+public boolean createSequenceDiagram(TURTLEPanel tp, String s) {
+    if(isSDCreated(tp, s)) {
+        return false;
     }
 
-    public boolean isRequirementCreated(TURTLEPanel tp, String s) {
-        int index = tp.tabbedPane.indexOfTab(s);
-        if (index == -1) {
-            return false;
-        }
-        return (tp.panelAt(index) instanceof RequirementDiagramPanel);
+    if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
+        return false;
     }
 
-    public boolean createRequirementDiagram(int index, String s) {
-        return createRequirementDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    if (tp instanceof AnalysisPanel) {
+        ((AnalysisPanel)tp).addSequenceDiagram(s);
+    } else if (tp instanceof AvatarAnalysisPanel) {
+        ((AvatarAnalysisPanel)tp).addSequenceDiagram(s);
     }
+    setPanelMode();
+    return true;
+}
 
-    public boolean createRequirementDiagram(TURTLEPanel tp, String s) {
-        if (!(tp instanceof RequirementPanel)) {
-            return false;
-        }
 
-        ((RequirementPanel)tp).addRequirementDiagram(s);
-        setPanelMode();
-        return true;
+public boolean createUniqueSequenceDiagram(TURTLEPanel tp, String s) {
+    int i;
+    for(i=0; i<1000; i++) {
+        if(!isSDCreated(tp, s+i)) {
+            break;
+        }
     }
 
-    public boolean createAttackTreeDiagram(int index, String s) {
-        return createAttackTreeDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    if (tp instanceof AnalysisPanel) {
+        ((AnalysisPanel)tp).addSequenceDiagram(s+i);
+    } else if (tp instanceof AvatarAnalysisPanel) {
+        ((AvatarAnalysisPanel)tp).addSequenceDiagram(s+i);
     }
 
-    public boolean createAttackTreeDiagram(TURTLEPanel tp, String s) {
-        if (!(tp instanceof AttackTreePanel)) {
-            return false;
-        }
+    setPanelMode();
+    return true;
+}
 
-        ((AttackTreePanel)tp).addAttackTreeDiagram(s);
-        setPanelMode();
-        return true;
+public boolean createSequenceDiagramFromUCD(TURTLEPanel tp, String s, UseCaseDiagramPanel _ucdp) {
+    if (!createUniqueSequenceDiagram(tp, s)) {
+        return false;
     }
 
-    public boolean createEBRDD(int index, String s) {
-        return createEBRDD((TURTLEPanel)(tabs.elementAt(index)), s);
+    if (! ((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
+        return false;
     }
 
-    public boolean createEBRDD(TURTLEPanel tp, String s) {
-        if (!(tp instanceof RequirementPanel)) {
-            return false;
-        }
-
-        ((RequirementPanel)tp).addEBRDD(s);
-        setPanelMode();
-        return true;
+    if (tp instanceof AnalysisPanel) {
+        ((AnalysisPanel)tp).addInstancesToLastSD(_ucdp);
+    } else if (tp instanceof AvatarAnalysisPanel) {
+        ((AvatarAnalysisPanel)tp).addInstancesToLastSD(_ucdp);
     }
 
-    public void generateOntologyForCurrentDiagram() {
-        TraceManager.addDev("Ontology for current diagram");
-        try {
-            TURTLEPanel tp = getCurrentTURTLEPanel();
-            String modeling = gtm.makeOneDiagramXMLFromGraphicalModel(tp, tp.tabbedPane.getSelectedIndex());
-            TraceManager.addDev("Model made: " + modeling);
-        } catch (Exception e) {
-        }
+    return true;
+}
 
-    }
 
-    public void generateOntologyForCurrentSetOfDiagrams() {
-        TraceManager.addDev("Ontology for current set of diagrams");
-        try {
-            String modeling = gtm.makeXMLFromTurtleModeling(mainTabbedPane.getSelectedIndex());
-            TraceManager.addDev("Model made: " + modeling);
-        } catch (Exception e) {
-        }
 
-    }
+public boolean createIODiagram(int index, String s) {
+    return createIODiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+}
 
-    public void generateOntologyForAllDiagrams() {
-        TraceManager.addDev("Ontology for all diagrams");
-        try {
-            String modeling = gtm.makeXMLFromTurtleModeling(-1);
-            TraceManager.addDev("Model made");
-        } catch (Exception e) {
-        }
+public boolean createIODiagram(TURTLEPanel tp, String s) {
+    if(isIODCreated(tp, s)) {
+        return false;
+    }
 
+    if (!(tp instanceof AnalysisPanel)) {
+        return false;
     }
 
+    ((AnalysisPanel)tp).addIODiagram(s);
+    setPanelMode();
+    return true;
+}
 
+public boolean createUseCaseDiagram(int index, String s) {
+    return createUseCaseDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+}
 
-    public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getAvatarRDPanel(tp, indexTab, s);
+public boolean createUniqueUseCaseDiagram(TURTLEPanel tp, String s) {
+    if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
+        return false;
     }
 
-    public AvatarRDPanel getAvatarRDPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (AvatarRDPanel)(tp.panelAt(indexTab));
+    int i;
+    for(i=0; i<1000; i++) {
+        if(!isUseCaseDiagramCreated(tp, s + " " + i)) {
+            break;
         }
-        return null;
     }
 
-    public AvatarMADPanel getAvatarMADPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getAvatarMADPanel(tp, indexTab, s);
+    if (tp instanceof AnalysisPanel) {
+        ((AnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
+    } else {
+        ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
     }
+    setPanelMode();
+    return true;
+}
 
-    public AvatarMADPanel getAvatarMADPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (AvatarMADPanel)(tp.panelAt(indexTab));
-        }
-        return null;
+public boolean createUseCaseDiagram(TURTLEPanel tp, String s) {
+    if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
+        return false;
     }
 
-    public AvatarPDPanel getAvatarPDPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getAvatarPDPanel(tp, indexTab, s);
-    }
-    
-    public ADDDiagramPanel getAvatarADDPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getAvatarADDPanel(tp, indexTab, s);
+    if (tp instanceof AnalysisPanel) {
+        ((AnalysisPanel)tp).addUseCaseDiagram(s);
+    } else {
+        ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s);
     }
+    setPanelMode();
+    return true;
+}
 
+public boolean createAvatarCD(int index, String s) {
+    return createAvatarCD((TURTLEPanel) (tabs.elementAt(index)), s);
+}
 
-    public AvatarPDPanel getAvatarPDPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (AvatarPDPanel)(tp.panelAt(indexTab));
-        }
-        return null;
+public boolean createUniqueAvatarCD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AvatarAnalysisPanel))  {
+        return false;
     }
-    
-    public ADDDiagramPanel getAvatarADDPanel(TURTLEPanel tp, int indexTab, String s) {
-    		TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab));
-    		
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (ADDDiagramPanel)(tp.panelAt(indexTab));
+
+    int i;
+    for(i=0; i<1000; i++) {
+        if(!isAvatarCDCreated(tp, s + " " + i)) {
+            break;
         }
-        return null;
     }
 
-    public AvatarCDPanel getAvatarCDPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getAvatarCDPanel(tp, indexTab, s);
+    ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s + " " + i);
+
+
+    setPanelMode();
+    return true;
+}
+
+public boolean createAvatarCD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AvatarAnalysisPanel))  {
+        return false;
     }
 
 
-    public AvatarCDPanel getAvatarCDPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (AvatarCDPanel)(tp.panelAt(indexTab));
-        }
-        return null;
+    ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s);
+
+
+    setPanelMode();
+    return true;
+}
+
+public boolean createAvatarAD(int index, String s) {
+    return createAvatarAD((TURTLEPanel) (tabs.elementAt(index)), s);
+}
+
+public boolean createUniqueAvatarAD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AvatarAnalysisPanel)) {
+        return false;
     }
 
-    public AvatarADPanel getAvatarADPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getAvatarADPanel(tp, indexTab, s);
+    int i;
+    for(i=0; i<1000; i++) {
+        if(!isAvatarADCreated(tp, s + " " + i)) {
+            break;
+        }
     }
 
+    ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s + " " + i);
+    setPanelMode();
+    return true;
+}
 
-    public AvatarADPanel getAvatarADPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (AvatarADPanel)(tp.panelAt(indexTab));
-        }
-        return null;
+public boolean createAvatarAD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AvatarAnalysisPanel)) {
+        return false;
     }
 
-    public RequirementDiagramPanel getRequirementDiagramPanel(int index, String s) {
-        //TraceManager.addDev("Searching for " + s);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getRequirementDiagramPanel(tp, s);
+
+    ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s);
+
+    setPanelMode();
+    return true;
+}
+
+//Changed by Solange from public boolean...
+public String createProActiveSMD(int index, String s) {
+    //Adde by Solange String name at  the beginning
+    String name=createProActiveSMD((TURTLEPanel)(tabs.elementAt(index)), s);
+    return(name); //changed from return true
+}
+
+//Return changed by Solange from boolean to String
+public String createProActiveSMD(TURTLEPanel tp, String s) {
+
+    //Added by Solange. It fills the lists of components, interfaces, etc
+    TURTLEPanel tp2 = getCurrentTURTLEPanel();
+    gtm.generateLists((ProactiveDesignPanel)tp2);
+    //
+
+    if (!(tp instanceof ProactiveDesignPanel)) {
+        return null; //Changed by Solange from return false
     }
 
-    public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, String s) {
-        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                if (tp.panelAt(i) instanceof RequirementDiagramPanel)
-                    return  (RequirementDiagramPanel)(tp.panelAt(i));
-            }
-        }
-        return null;
+    s=((ProactiveDesignPanel)tp).addSMD(s);
+    //Added by Solange
+    //  ProactiveSMDPanel temp=((ProactiveDesignPanel)tp).getSMDPanel(s);
+    //Added by Solange
+    //And removed by Emil
+
+    /*
+      LinkedList cmps=gtm.gpdtemp.getProCSDComponentsList();
+      for (int i=0;i<cmps.size();i++)
+      {
+      ProCSDComponent c = (ProCSDComponent)cmps.get(i);
+
+      if (c.getType()== TGComponentManager.PROCSD_COMPONENT)
+      {
+      if(c.getComponentID().equals(temp.getName()))
+      {
+      c.mySMD=temp;
+      i=cmps.size();
+      }
+      }
+      }
+    */
+    //
+    setPanelMode();
+    return(s); //Changes by Solange from return true
+}
+
+public boolean createAvatarRD(int index, String s) {
+    return createAvatarRD((TURTLEPanel)(tabs.elementAt(index)), s);
+}
+
+public boolean createAvatarRD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AvatarRequirementPanel)) {
+        return false;
     }
 
-    public RequirementDiagramPanel getRequirementDiagramPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getRequirementDiagramPanel(tp, indexTab, s);
-    }
+    ((AvatarRequirementPanel)tp).addAvatarRD(s);
+    setPanelMode();
+    return true;
+}
 
+public boolean createAvatarMAD(int index, String s) {
+    return createAvatarMAD((TURTLEPanel)(tabs.elementAt(index)), s);
+}
 
-    public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (RequirementDiagramPanel)(tp.panelAt(indexTab));
-        }
-        return null;
+public boolean createAvatarMAD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AvatarMADsPanel)) {
+        return false;
     }
 
-    public EBRDDPanel getEBRDDPanel(int index, String s) {
-        //TraceManager.addDev("Searching for " + s);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getEBRDDPanel(tp, s);
-    }
+    ((AvatarMADsPanel)tp).addAvatarMADPanel(s);
+    setPanelMode();
+    return true;
+}
 
-    public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, String s) {
-        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-                if (tp.panelAt(i) instanceof EBRDDPanel)
-                    return  (EBRDDPanel)(tp.panelAt(i));
-            }
-        }
-        return null;
-    }
+public boolean createAvatarPD(int index, String s) {
+    return createAvatarPD((TURTLEPanel)(tabs.elementAt(index)), s);
+}
 
-    public EBRDDPanel getEBRDDPanel(int index, int indexTab, String s) {
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-        return getEBRDDPanel(tp, indexTab, s);
+public boolean createAvatarPD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AvatarRequirementPanel)) {
+        return false;
     }
 
+    ((AvatarRequirementPanel)tp).addAvatarPD(s);
+    setPanelMode();
+    return true;
+}
 
-    public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, int indexTab, String s) {
-        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-            return (EBRDDPanel)(tp.panelAt(indexTab));
-        }
-        return null;
+public boolean createADDDiagram(int index, String s) {
+    return createADDDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+}
+
+public boolean createADDDiagram(TURTLEPanel tp, String s) {
+    if (!(tp instanceof ADDPanel)) {
+        return false;
     }
 
+    ((ADDPanel)tp).addDeploymentPanelDiagram(s);
+    setPanelMode();
+    return true;
+}
 
-    public void alignInstances() {
-        //TraceManager.addDev("Align instances");
-        if (getCurrentTDiagramPanel() instanceof SequenceDiagramPanel) {
-            ((SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances();
-            changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
-            getCurrentTDiagramPanel().repaint();
-        }
 
-        if (getCurrentTDiagramPanel() instanceof TMLSDPanel) {
-            ((TMLSDPanel)(getCurrentTDiagramPanel())).alignInstances();
-            changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
-            getCurrentTDiagramPanel().repaint();
-        }
-    }
+public boolean isRequirementCreated(int index, String s) {
+    return isRequirementCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
+}
 
-    public void alignPartitions() {
-        //TraceManager.addDev("Align instances");
-        if (getCurrentTDiagramPanel() instanceof AvatarADPanel) {
-            ((AvatarADPanel)(getCurrentTDiagramPanel())).alignPartitions();
-            changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
-            getCurrentTDiagramPanel().repaint();
-        }
+public boolean isRequirementCreated(TURTLEPanel tp, String s) {
+    int index = tp.tabbedPane.indexOfTab(s);
+    if (index == -1) {
+        return false;
     }
+    return (tp.panelAt(index) instanceof RequirementDiagramPanel);
+}
 
-    public void enhanceDiagram() {
-        getCurrentTDiagramPanel().enhance();
-    }
+public boolean createRequirementDiagram(int index, String s) {
+    return createRequirementDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+}
 
-    public JTabbedPane getCurrentJTabbedPane() {
-        return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tabbedPane;
+public boolean createRequirementDiagram(TURTLEPanel tp, String s) {
+    if (!(tp instanceof RequirementPanel)) {
+        return false;
     }
 
-    public int getCurrentSelectedIndex() {
-        return mainTabbedPane.getSelectedIndex();
+    ((RequirementPanel)tp).addRequirementDiagram(s);
+    setPanelMode();
+    return true;
+}
+
+public boolean createAttackTreeDiagram(int index, String s) {
+    return createAttackTreeDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+}
+
+public boolean createAttackTreeDiagram(TURTLEPanel tp, String s) {
+    if (!(tp instanceof AttackTreePanel)) {
+        return false;
     }
 
+    ((AttackTreePanel)tp).addAttackTreeDiagram(s);
+    setPanelMode();
+    return true;
+}
 
-    public TDiagramPanel getCurrentTDiagramPanel() {
-        try {
-            TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
-            return (TDiagramPanel)(tp.panels.elementAt(tp.tabbedPane.getSelectedIndex()));
-        } catch (Exception e) {
-            return null;
-        }
+public boolean createEBRDD(int index, String s) {
+    return createEBRDD((TURTLEPanel)(tabs.elementAt(index)), s);
+}
+
+public boolean createEBRDD(TURTLEPanel tp, String s) {
+    if (!(tp instanceof RequirementPanel)) {
+        return false;
     }
 
-    public TDiagramPanel getCurrentMainTDiagramPanel() {
-        return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
+    ((RequirementPanel)tp).addEBRDD(s);
+    setPanelMode();
+    return true;
+}
+
+public void generateOntologyForCurrentDiagram() {
+    TraceManager.addDev("Ontology for current diagram");
+    try {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        String modeling = gtm.makeOneDiagramXMLFromGraphicalModel(tp, tp.tabbedPane.getSelectedIndex());
+        TraceManager.addDev("Model made: " + modeling);
+    } catch (Exception e) {
     }
 
-    public TURTLEPanel getCurrentTURTLEPanel() {
-        if (tabs.size() == 0) {
-            return null;
-        } else {
-            return (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
-        }
+}
+
+public void generateOntologyForCurrentSetOfDiagrams() {
+    TraceManager.addDev("Ontology for current set of diagrams");
+    try {
+        String modeling = gtm.makeXMLFromTurtleModeling(mainTabbedPane.getSelectedIndex());
+        TraceManager.addDev("Model made: " + modeling);
+    } catch (Exception e) {
     }
 
+}
 
-    public void reinitCountOfPanels() {
-        int i, j;
-        TURTLEPanel tp;
-        for(i = 0; i<mainTabbedPane.getTabCount(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
-                ((TDiagramPanel)(tp.panels.elementAt(j))).count = 0;
-            }
-        }
+public void generateOntologyForAllDiagrams() {
+    TraceManager.addDev("Ontology for all diagrams");
+    try {
+        String modeling = gtm.makeXMLFromTurtleModeling(-1);
+        TraceManager.addDev("Model made");
+    } catch (Exception e) {
     }
 
-    public void setPanelMode() {
-        int index;
-        TURTLEPanel tp = getCurrentTURTLEPanel();
-        index = tp.tabbedPane.getSelectedIndex();
+}
 
-        if (index < tp.panels.size() -1) {
-            setMode(FORWARD_DIAG);
-        } else {
-            setMode(NO_FORWARD_DIAG);
-        }
 
-        if (index > 0) {
-            setMode(BACKWARD_DIAG);
-        } else {
-            setMode(NO_BACKWARD_DIAG);
-        }
 
-        setMode(METHO_CHANGED);
+public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getAvatarRDPanel(tp, indexTab, s);
+}
 
+public AvatarRDPanel getAvatarRDPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (AvatarRDPanel)(tp.panelAt(indexTab));
     }
+    return null;
+}
 
-    public void paneMADAction(ChangeEvent e) {
-        //TraceManager.addDev("Pane design action size=" + tabs.size());
-        try {
+public AvatarMADPanel getAvatarMADPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getAvatarMADPanel(tp, indexTab, s);
+}
 
-            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-            //TraceManager.addDev("Pane design action 1");
-            if (activetdp != null) {
-                activetdp.activateActions(false);
-                unactivateDrawing();
-                activetdp.stopAddingConnector();
-            }
-            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-            tdp1.activateActions(true);
-            activetdp = tdp1;
+public AvatarMADPanel getAvatarMADPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (AvatarMADPanel)(tp.panelAt(indexTab));
+    }
+    return null;
+}
 
-            setEditMode();
-            setPanelMode();
-            //TraceManager.addDev("Pane design action 3");
+public AvatarPDPanel getAvatarPDPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getAvatarPDPanel(tp, indexTab, s);
+}
 
-            // activate the   drawing   of the right pane
-            basicActivateDrawing();
+public ADDDiagramPanel getAvatarADDPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getAvatarADDPanel(tp, indexTab, s);
+}
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane design action");
-        }
+
+public AvatarPDPanel getAvatarPDPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (AvatarPDPanel)(tp.panelAt(indexTab));
     }
+    return null;
+}
 
-    public void paneDesignAction(ChangeEvent e) {
-        //TraceManager.addDev("Pane design action size=" + tabs.size());
-        try {
+public ADDDiagramPanel getAvatarADDPanel(TURTLEPanel tp, int indexTab, String s) {
+    TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab));
 
-            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-            //TraceManager.addDev("Pane design action 1");
-            if (activetdp != null) {
-                activetdp.activateActions(false);
-                unactivateDrawing();
-                activetdp.stopAddingConnector();
-            }
-            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-            tdp1.activateActions(true);
-            activetdp = tdp1;
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (ADDDiagramPanel)(tp.panelAt(indexTab));
+    }
+    return null;
+}
 
-            setEditMode();
-            setPanelMode();
-            //TraceManager.addDev("Pane design action 3");
+public AvatarCDPanel getAvatarCDPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getAvatarCDPanel(tp, indexTab, s);
+}
 
-            // activate the   drawing   of the right pane
-            basicActivateDrawing();
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane design action");
-        }
+public AvatarCDPanel getAvatarCDPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (AvatarCDPanel)(tp.panelAt(indexTab));
     }
+    return null;
+}
 
-    public void paneDiplodocusMethodologyAction(ChangeEvent e) {
-        //TraceManager.addDev("Pane design action size=" + tabs.size());
-        try {
-
-            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-            //TraceManager.addDev("Pane design action 1");
-            if (activetdp != null) {
+public AvatarADPanel getAvatarADPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getAvatarADPanel(tp, indexTab, s);
+}
 
-                activetdp.activateActions(false);
-                unactivateDrawing();
-                activetdp.stopAddingConnector();
-            }
-            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-            tdp1.activateActions(true);
-            activetdp = tdp1;
 
-            setEditMode();
-            setPanelMode();
-            //TraceManager.addDev("Pane design action 3");
+public AvatarADPanel getAvatarADPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (AvatarADPanel)(tp.panelAt(indexTab));
+    }
+    return null;
+}
 
-            // activate the   drawing   of the right pane
-            basicActivateDrawing();
+public RequirementDiagramPanel getRequirementDiagramPanel(int index, String s) {
+    //TraceManager.addDev("Searching for " + s);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getRequirementDiagramPanel(tp, s);
+}
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane design action");
+public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, String s) {
+    for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            if (tp.panelAt(i) instanceof RequirementDiagramPanel)
+                return  (RequirementDiagramPanel)(tp.panelAt(i));
         }
     }
-    
-    public void paneAvatarMethodologyAction(ChangeEvent e) {
-        //TraceManager.addDev("Pane design action size=" + tabs.size());
-        try {
+    return null;
+}
 
-            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-            //TraceManager.addDev("Pane design action 1");
-            if (activetdp != null) {
+public RequirementDiagramPanel getRequirementDiagramPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getRequirementDiagramPanel(tp, indexTab, s);
+}
 
-                activetdp.activateActions(false);
-                unactivateDrawing();
-                activetdp.stopAddingConnector();
-            }
-            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-            tdp1.activateActions(true);
-            activetdp = tdp1;
 
-            setEditMode();
-            setPanelMode();
-            //TraceManager.addDev("Pane design action 3");
+public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (RequirementDiagramPanel)(tp.panelAt(indexTab));
+    }
+    return null;
+}
 
-            // activate the   drawing   of the right pane
-            basicActivateDrawing();
+public EBRDDPanel getEBRDDPanel(int index, String s) {
+    //TraceManager.addDev("Searching for " + s);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getEBRDDPanel(tp, s);
+}
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane design action");
+public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, String s) {
+    for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+            if (tp.panelAt(i) instanceof EBRDDPanel)
+                return  (EBRDDPanel)(tp.panelAt(i));
         }
     }
+    return null;
+}
 
-    public void paneAnalysisAction(ChangeEvent e) {
-        //TraceManager.addDev("Pane analysis action size=" + tabs.size());
-        try {
+public EBRDDPanel getEBRDDPanel(int index, int indexTab, String s) {
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+    return getEBRDDPanel(tp, indexTab, s);
+}
 
-            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-            //TraceManager.addDev("Pane analysis action 1 on " + tdp1.getName());
-            if (activetdp != null) {
-                activetdp.activateActions(false);
-                unactivateDrawing();
-                activetdp.stopAddingConnector();
-            }
-            //TraceManager.addDev("Pane analysis action 2");
-            tdp1.activateActions(true);
-            activetdp = tdp1;
 
-            setEditMode();
-            setPanelMode();
-            //TraceManager.addDev("Pane analysis action 3");
+public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, int indexTab, String s) {
+    if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (EBRDDPanel)(tp.panelAt(indexTab));
+    }
+    return null;
+}
 
-            // activate the   drawing   of the right pane
-            basicActivateDrawing();
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane analysis action");
-        }
+public void alignInstances() {
+    //TraceManager.addDev("Align instances");
+    if (getCurrentTDiagramPanel() instanceof SequenceDiagramPanel) {
+        ((SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances();
+        changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
+        getCurrentTDiagramPanel().repaint();
     }
 
-    public void paneDeployAction(ChangeEvent e) {
-        //TraceManager.addDev("Pane design action size=" + tabs.size());
-        try {
+    if (getCurrentTDiagramPanel() instanceof TMLSDPanel) {
+        ((TMLSDPanel)(getCurrentTDiagramPanel())).alignInstances();
+        changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
+        getCurrentTDiagramPanel().repaint();
+    }
+}
 
-            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-            //TraceManager.addDev("Pane design action 1");
-            if (activetdp != null) {
-                activetdp.activateActions(false);
-                unactivateDrawing();
-                activetdp.stopAddingConnector();
-            }
-            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-            tdp1.activateActions(true);
-            activetdp = tdp1;
+public void alignPartitions() {
+    //TraceManager.addDev("Align instances");
+    if (getCurrentTDiagramPanel() instanceof AvatarADPanel) {
+        ((AvatarADPanel)(getCurrentTDiagramPanel())).alignPartitions();
+        changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
+        getCurrentTDiagramPanel().repaint();
+    }
+}
 
-            setEditMode();
-            setPanelMode();
-            //TraceManager.addDev("Pane design action 3");
+public void enhanceDiagram() {
+    getCurrentTDiagramPanel().enhance();
+}
 
-            // activate the   drawing   of the right pane
-            basicActivateDrawing();
+public JTabbedPane getCurrentJTabbedPane() {
+    return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tabbedPane;
+}
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane design action");
-        }
-    }
+public int getCurrentSelectedIndex() {
+    return mainTabbedPane.getSelectedIndex();
+}
 
-    public void paneRequirementAction(ChangeEvent e) {
-        try {
 
-            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-            //TraceManager.addDev("Pane design action 1");
-            if (activetdp != null) {
-                activetdp.activateActions(false);
-                unactivateDrawing();
-                activetdp.stopAddingConnector();
-            }
-            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-            tdp1.activateActions(true);
-            activetdp = tdp1;
+public TDiagramPanel getCurrentTDiagramPanel() {
+    try {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
+        return (TDiagramPanel)(tp.panels.elementAt(tp.tabbedPane.getSelectedIndex()));
+    } catch (Exception e) {
+        return null;
+    }
+}
 
-            setEditMode();
-            setPanelMode();
+public TDiagramPanel getCurrentMainTDiagramPanel() {
+    return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
+}
+
+public TURTLEPanel getCurrentTURTLEPanel() {
+    if (tabs.size() == 0) {
+        return null;
+    } else {
+        return (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
+    }
+}
 
-            // activate the   drawing   of the right pane
-            basicActivateDrawing();
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane design action");
+public void reinitCountOfPanels() {
+    int i, j;
+    TURTLEPanel tp;
+    for(i = 0; i<mainTabbedPane.getTabCount(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
+            ((TDiagramPanel)(tp.panels.elementAt(j))).count = 0;
         }
     }
+}
 
-    // nameTab : array of strings not to be removed
-    public void removeAnalysisDiagrams(String [] nameTab) {
-        int i, j;
-        String value;
-        boolean found;
+public void setPanelMode() {
+    int index;
+    TURTLEPanel tp = getCurrentTURTLEPanel();
+    index = tp.tabbedPane.getSelectedIndex();
 
-        for(i=1; i<getCurrentJTabbedPane().getTabCount(); i++) {
-            value = getCurrentJTabbedPane().getTitleAt(i);
-            found = false;
-            for(j=0; j<nameTab.length; j++) {
-                if (nameTab[j] != null) {
-                    if (nameTab[j].compareTo(value) ==0) {
-                        found = true;
-                        break;
-                    }
+    if (index < tp.panels.size() -1) {
+        setMode(FORWARD_DIAG);
+    } else {
+        setMode(NO_FORWARD_DIAG);
+    }
 
-                }
-            }
-            if (!found) {
-                TraceManager.addDev("Removing" + getCurrentJTabbedPane().getTitleAt(i));
-                getCurrentJTabbedPane().remove(i);
-                getCurrentTURTLEPanel().removeElementAt(i);
-                i--;
-            }
-        }
+    if (index > 0) {
+        setMode(BACKWARD_DIAG);
+    } else {
+        setMode(NO_BACKWARD_DIAG);
     }
 
-    public void renameTab(TDiagramPanel tdp) {
-        String value;
-        int index, index1;
+    setMode(METHO_CHANGED);
 
-        index = getCurrentJTabbedPane().getSelectedIndex();
-        value = getCurrentJTabbedPane().getTitleAt(index);
+}
 
-        //String s = (String)JOptionPane.showInputDialog(this, "Name of the diagram:", JOptionPane.QUESTION_MESSAGE);
-        String s = (String)JOptionPane.showInputDialog(frame, "Name of the diagram:", "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, value);
+public void paneMADAction(ChangeEvent e) {
+    //TraceManager.addDev("Pane design action size=" + tabs.size());
+    try {
 
-        if ((s != null) && (s.length() > 0)){
-            // name already in use?
-            index1 = getCurrentJTabbedPane().indexOfTab(s);
-            /*if (methoMode == METHO_ANALYSIS) {
-              index1 = mainAnalysisTabbedPane.indexOfTab(s);
+        TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+        //TraceManager.addDev("Pane design action 1");
+        if (activetdp != null) {
+            activetdp.activateActions(false);
+            unactivateDrawing();
+            activetdp.stopAddingConnector();
+        }
+        //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+        tdp1.activateActions(true);
+        activetdp = tdp1;
 
-              } else {
-              index1 = getCurrentJTabbedPane.indexOfTab(s);
+        setEditMode();
+        setPanelMode();
+        //TraceManager.addDev("Pane design action 3");
 
-              }*/
-            if (index1 > -1) {
-                JOptionPane.showMessageDialog(frame, "Name is already in use", "Error", JOptionPane.INFORMATION_MESSAGE);
-            } else {
-                /*if (methoMode == METHO_ANALYSIS) {
-                  mainAnalysisTabbedPane.setTitleAt(index, s);
-                  } else {
-                  mainDesignTabbedPane.setTitleAt(index, s);
-                  }*/
-                if (isAValidTabName(s)) {
-                    JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
-                } else {
-                    getCurrentJTabbedPane().setTitleAt(index, s);
-                    tdp.setName(s);
-                    changeMade(tdp, TDiagramPanel.NEW_COMPONENT);
-                }
-            }
-        }
+        // activate the   drawing   of the right pane
+        basicActivateDrawing();
+
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane design action");
     }
+}
 
-    public void deleteTab(TDiagramPanel tdp) {
-        //TraceManager.addDev("Delete");
+public void paneDesignAction(ChangeEvent e) {
+    //TraceManager.addDev("Pane design action size=" + tabs.size());
+    try {
 
-        // We know the selected tab -> remove this tab
+        TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+        //TraceManager.addDev("Pane design action 1");
+        if (activetdp != null) {
+            activetdp.activateActions(false);
+            unactivateDrawing();
+            activetdp.stopAddingConnector();
+        }
+        //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+        tdp1.activateActions(true);
+        activetdp = tdp1;
 
-        int index;
-        JTabbedPane jtp = getCurrentJTabbedPane();
-        index = jtp.getSelectedIndex();
-        getCurrentTURTLEPanel().panels.removeElementAt(index);
-        jtp.remove(index);
+        setEditMode();
+        setPanelMode();
+        //TraceManager.addDev("Pane design action 3");
 
-        // Signal the change
-        changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        // activate the   drawing   of the right pane
+        basicActivateDrawing();
 
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane design action");
     }
+}
 
-    private void basicActivateDrawing() {
-        activetdp.setDraw(true);
-        if (activetdp.mode == TDiagramPanel.SELECTED_COMPONENTS) {
-            setMode(MainGUI.CUTCOPY_OK);
-            setMode(MainGUI.EXPORT_LIB_OK);
-        } else {
-            setMode(MainGUI.CUTCOPY_KO);
-            setMode(MainGUI.EXPORT_LIB_KO);
+public void paneDiplodocusMethodologyAction(ChangeEvent e) {
+    //TraceManager.addDev("Pane design action size=" + tabs.size());
+    try {
+
+        TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+        //TraceManager.addDev("Pane design action 1");
+        if (activetdp != null) {
+
+            activetdp.activateActions(false);
+            unactivateDrawing();
+            activetdp.stopAddingConnector();
         }
-    }
+        //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+        tdp1.activateActions(true);
+        activetdp = tdp1;
+
+        setEditMode();
+        setPanelMode();
+        //TraceManager.addDev("Pane design action 3");
 
-    private void unactivateDrawing() {
-        activetdp.setDraw(false);
+        // activate the   drawing   of the right pane
+        basicActivateDrawing();
+
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane design action");
     }
+}
 
-    private void activateDrawing(TDiagramPanel tdp, JTabbedPane good, Vector goodV, JTabbedPane wrong, Vector wrongV) {
-        int i;
-        TDiagramPanel tdp2;
+public void paneAvatarMethodologyAction(ChangeEvent e) {
+    //TraceManager.addDev("Pane design action size=" + tabs.size());
+    try {
 
-        for(i=0; i<good.getTabCount(); i++) {
-            tdp2 = (TDiagramPanel)(goodV.elementAt(i));
-            if (tdp2 == tdp) {
-                tdp2.setDraw(true);
-                if (tdp2.mode == TDiagramPanel.SELECTED_COMPONENTS) {
-                    setMode(MainGUI.CUTCOPY_OK);
-                    setMode(MainGUI.EXPORT_LIB_OK);
-                } else {
-                    setMode(MainGUI.CUTCOPY_KO);
-                    setMode(MainGUI.EXPORT_LIB_KO);
-                }
-            } else {
-                tdp2.setDraw(false);
-            }
-        }
+        TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+        //TraceManager.addDev("Pane design action 1");
+        if (activetdp != null) {
 
-        for(i=0; i<wrong.getTabCount(); i++) {
-            tdp2 = (TDiagramPanel)(wrongV.elementAt(i));
-            tdp2.setDraw(false);
+            activetdp.activateActions(false);
+            unactivateDrawing();
+            activetdp.stopAddingConnector();
         }
-    }
+        //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+        tdp1.activateActions(true);
+        activetdp = tdp1;
 
-    public void paneAction(ChangeEvent e) {
-        //TraceManager.addDev("Pane action");
-        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-        if (tdp1 != null) {
-            //TraceManager.addDev("Stop Adding connector in maingui");
-            tdp1.stopAddingConnector();
-        }
+        setEditMode();
+        setPanelMode();
+        //TraceManager.addDev("Pane design action 3");
 
-        try {
-            if (getCurrentTURTLEPanel() instanceof DesignPanel) {
-                setMethodologicalMode(METHO_DESIGN);
-                paneDesignAction(e);
-            } else if (getCurrentTURTLEPanel() instanceof AnalysisPanel) {
-                setMethodologicalMode(METHO_ANALYSIS);
-                paneAnalysisAction(e);
-            } else {
-                setMethodologicalMode(METHO_DEPLOY);
-                paneDeployAction(e);
-            }
+        // activate the   drawing   of the right pane
+        basicActivateDrawing();
 
-            if ((getCurrentTURTLEPanel() instanceof AvatarDesignPanel) || (getCurrentTURTLEPanel() instanceof AvatarRequirementPanel)) {
-                mainBar.showAvatarActions(true);
-            } else if ((getCurrentTURTLEPanel() instanceof TMLDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLComponentDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLArchiPanel)){
-                mainBar.showDiplodocusActions(true);
-            }  else {
-                mainBar.showAvatarActions(false);
-            }
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane design action");
+    }
+}
 
-            setMode(PANEL_CHANGED);
+public void paneAnalysisAction(ChangeEvent e) {
+    //TraceManager.addDev("Pane analysis action size=" + tabs.size());
+    try {
 
-            setEditMode();
-            setPanelMode();
+        TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+        //TraceManager.addDev("Pane analysis action 1 on " + tdp1.getName());
+        if (activetdp != null) {
+            activetdp.activateActions(false);
+            unactivateDrawing();
+            activetdp.stopAddingConnector();
+        }
+        //TraceManager.addDev("Pane analysis action 2");
+        tdp1.activateActions(true);
+        activetdp = tdp1;
 
+        setEditMode();
+        setPanelMode();
+        //TraceManager.addDev("Pane analysis action 3");
 
-        } catch (Exception ex) {
-            //TraceManager.addDev("Exception pane action: " + ex.getMessage());
-        }
-    }
+        // activate the   drawing   of the right pane
+        basicActivateDrawing();
 
-    public JFrame getFrame() {
-        return frame;
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane analysis action");
     }
+}
 
-    public boolean newTClassName(TURTLEPanel tp, String old, String niou) {
-        JTabbedPane jtp = tp.tabbedPane;
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            if (jtp.getTitleAt(i).equals(niou)) {
-                return false;
-            }
-        }
-        //TraceManager.addDev("old " + old + " niou " + niou);
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-            if (jtp.getTitleAt(i).equals(old)) {
-                jtp.setTitleAt(i, niou);
-                jtp.setToolTipTextAt(i, "Opens the activity diagram of " + niou);
-                TDiagramPanel tdp;
-                //change panel name
-                for(int j=0; j<tp.panels.size(); j++) {
-                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-                    if (tdp.getName().equals(old)) {
-                        tdp.setName(niou);
-                    }
-                }
+public void paneDeployAction(ChangeEvent e) {
+    //TraceManager.addDev("Pane design action size=" + tabs.size());
+    try {
 
-                return true;
-            }
+        TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+        //TraceManager.addDev("Pane design action 1");
+        if (activetdp != null) {
+            activetdp.activateActions(false);
+            unactivateDrawing();
+            activetdp.stopAddingConnector();
         }
-        // internal error
-        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-        return false;
-    }
+        //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+        tdp1.activateActions(true);
+        activetdp = tdp1;
 
-    public boolean newTOSClassName(TURTLEPanel tp, String old, String niou) {
-        JTabbedPane jtp = tp.tabbedPane;
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            if (jtp.getTitleAt(i).equals(niou)) {
-                return false;
-            }
-        }
-        //TraceManager.addDev("old " + old + " niou " + niou);
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-            if (jtp.getTitleAt(i).equals(old)) {
-                jtp.setTitleAt(i, niou);
-                jtp.setToolTipTextAt(i, "Opens the TURTLE-OS activity diagram of " + niou);
-                TDiagramPanel tdp;
-                //change panel name
-                for(int j=0; j<tp.panels.size(); j++) {
-                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-                    if (tdp.getName().equals(old)) {
-                        tdp.setName(niou);
-                    }
-                }
+        setEditMode();
+        setPanelMode();
+        //TraceManager.addDev("Pane design action 3");
 
-                return true;
-            }
-        }
-        // internal error
-        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-        return false;
+        // activate the   drawing   of the right pane
+        basicActivateDrawing();
+
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane design action");
     }
+}
 
-    public boolean newTMLTaskName(TURTLEPanel tp, String old, String niou) {
-        //TraceManager.addDev("Panel=" + tp + " Old  task name = " + old + " New task name=" + niou);
-        JTabbedPane jtp = tp.tabbedPane;
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
-            if (jtp.getTitleAt(i).equals(niou)) {
-                return false;
-            }
-        }
-        //TraceManager.addDev("old " + old + " niou " + niou);
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-            //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
-            if (jtp.getTitleAt(i).equals(old)) {
-                jtp.setTitleAt(i, niou);
-                jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
-                TDiagramPanel tdp;
-                //change panel name
-                for(int j=0; j<tp.panels.size(); j++) {
-                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-                    if (tdp.getName().equals(old)) {
-                        tdp.setName(niou);
-                        //TraceManager.addDev("Renamed to " + niou);
-                    }
-                }
+public void paneRequirementAction(ChangeEvent e) {
+    try {
 
-                return true;
-            }
+        TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+        //TraceManager.addDev("Pane design action 1");
+        if (activetdp != null) {
+            activetdp.activateActions(false);
+            unactivateDrawing();
+            activetdp.stopAddingConnector();
         }
-        // internal error
-        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-        return false;
-    }
+        //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+        tdp1.activateActions(true);
+        activetdp = tdp1;
 
-    public boolean newAvatarBDBlockName(TURTLEPanel tp, String old, String niou) {
-        //TraceManager.addDev("Panel=" + tp + " Old  task name = " + old + " New task name=" + niou);
-        JTabbedPane jtp = tp.tabbedPane;
-        int i;
-        for(i = 0; i<jtp.getTabCount(); i++) {
-            //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
-            if (jtp.getTitleAt(i).equals(niou)) {
-                return false;
-            }
-        }
-        //TraceManager.addDev("old " + old + " niou " + niou);
-        //TraceManager.addDev("nb Of panels:"+ jtp.getTabCount());
-        for(i = 0; i<jtp.getTabCount(); i++) {
-            //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-            //TraceManager.addDev("jtp  = >" + jtp.getTitleAt(i) + "<");
-            //TraceManager.addDev("old  = >" + old + "<");
-            if (jtp.getTitleAt(i).compareTo(old) == 0) {
-                jtp.setTitleAt(i, niou);
-                jtp.setToolTipTextAt(i, "Opens the state machine of " + niou);
-                TDiagramPanel tdp;
-                //change panel name
-                for(int j=0; j<tp.panels.size(); j++) {
-                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-                    if (tdp.getName().equals(old)) {
-                        tdp.setName(niou);
-                        //TraceManager.addDev("Renamed to " + niou);
-                    }
-                }
+        setEditMode();
+        setPanelMode();
 
-                return true;
-            }
-        }
-        // internal error
-        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-        return false;
-    }
+        // activate the   drawing   of the right pane
+        basicActivateDrawing();
 
-    public boolean nameComponentInUse(TURTLEPanel tp, String old, String niou) {
-        JTabbedPane jtp = tp.tabbedPane;
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            if (jtp.getTitleAt(i).equals(niou)) {
-                return true;
-            }
-        }
-        return false;
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane design action");
     }
+}
 
-    public boolean newTMLComponentTaskName(TURTLEPanel tp, String old, String niou) {
-        JTabbedPane jtp = tp.tabbedPane;
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            if (jtp.getTitleAt(i).equals(niou)) {
-                return false;
-            }
-        }
-        TraceManager.addDev("old " + old + " niou " + niou);
-        for(int i = 0; i<jtp.getTabCount(); i++) {
-            TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-            if (jtp.getTitleAt(i).equals(old)) {
-                jtp.setTitleAt(i, niou);
-                jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
-                TDiagramPanel tdp;
-                //change panel name
-                for(int j=0; j<tp.panels.size(); j++) {
-                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-                    if (tdp.getName().equals(old)) {
-                        tdp.setName(niou);
-                    }
+// nameTab : array of strings not to be removed
+public void removeAnalysisDiagrams(String [] nameTab) {
+    int i, j;
+    String value;
+    boolean found;
+
+    for(i=1; i<getCurrentJTabbedPane().getTabCount(); i++) {
+        value = getCurrentJTabbedPane().getTitleAt(i);
+        found = false;
+        for(j=0; j<nameTab.length; j++) {
+            if (nameTab[j] != null) {
+                if (nameTab[j].compareTo(value) ==0) {
+                    found = true;
+                    break;
                 }
 
-                return true;
             }
         }
-        // internal error
-        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-        return false;
+        if (!found) {
+            TraceManager.addDev("Removing" + getCurrentJTabbedPane().getTitleAt(i));
+            getCurrentJTabbedPane().remove(i);
+            getCurrentTURTLEPanel().removeElementAt(i);
+            i--;
+        }
     }
+}
 
-    public void cloneTab(int index) {
-        String s = gtm.makeXMLFromTurtleModeling(index);
-        try {
-            gtm.loadModelingFromXML(s);
-            changeMade(null, -1);
-        } catch (MalformedModelingException mme) {
-            JOptionPane.showMessageDialog(frame, "Modeling could not be loaded (unsupported file) ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            frame.setTitle("TTool: unamed project");
-        }
+public void renameTab(TDiagramPanel tdp) {
+    String value;
+    int index, index1;
 
-    }
+    index = getCurrentJTabbedPane().getSelectedIndex();
+    value = getCurrentJTabbedPane().getTitleAt(index);
 
-    public void requestRemoveTab(int index) {
-        if (index >= tabs.size()) {
-            return;
-        }
+    //String s = (String)JOptionPane.showInputDialog(this, "Name of the diagram:", JOptionPane.QUESTION_MESSAGE);
+    String s = (String)JOptionPane.showInputDialog(frame, "Name of the diagram:", "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, value);
 
-        tabs.removeElementAt(index);
-        mainTabbedPane.remove(index);
-        changeMade(null, -1);
-    }
+    if ((s != null) && (s.length() > 0)){
+        // name already in use?
+        index1 = getCurrentJTabbedPane().indexOfTab(s);
+        /*if (methoMode == METHO_ANALYSIS) {
+          index1 = mainAnalysisTabbedPane.indexOfTab(s);
 
-    public void requestMoveRightTab(int index) {
-        //TraceManager.addDev("Move right");
-        if (index > tabs.size()-2) {
-            return;
-        }
-        requestMoveTabFromTo(index, index + 1);
-        changeMade(null, -1);
-    }
+          } else {
+          index1 = getCurrentJTabbedPane.indexOfTab(s);
 
-    public void requestMoveLeftTab(int index) {
-        //TraceManager.addDev("Move left");
-        if (index < 1) {
-            return;
+          }*/
+        if (index1 > -1) {
+            JOptionPane.showMessageDialog(frame, "Name is already in use", "Error", JOptionPane.INFORMATION_MESSAGE);
+        } else {
+            /*if (methoMode == METHO_ANALYSIS) {
+              mainAnalysisTabbedPane.setTitleAt(index, s);
+              } else {
+              mainDesignTabbedPane.setTitleAt(index, s);
+              }*/
+            if (isAValidTabName(s)) {
+                JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
+            } else {
+                getCurrentJTabbedPane().setTitleAt(index, s);
+                tdp.setName(s);
+                changeMade(tdp, TDiagramPanel.NEW_COMPONENT);
+            }
         }
-        requestMoveTabFromTo(index, index-1);
-        changeMade(null, -1);
     }
+}
 
-    public void requestMoveTabFromTo(int src, int dst) {
-
-        // Get all the properties
-        Component comp = mainTabbedPane.getComponentAt(src);
-        String label = mainTabbedPane.getTitleAt(src);
-        Icon icon = mainTabbedPane.getIconAt(src);
-        Icon iconDis = mainTabbedPane.getDisabledIconAt(src);
-        String tooltip = mainTabbedPane.getToolTipTextAt(src);
-        boolean enabled = mainTabbedPane.isEnabledAt(src);
-        int keycode = mainTabbedPane.getMnemonicAt(src);
-        int mnemonicLoc = mainTabbedPane.getDisplayedMnemonicIndexAt(src);
-        Color fg = mainTabbedPane.getForegroundAt(src);
-        Color bg = mainTabbedPane.getBackgroundAt(src);
+public void deleteTab(TDiagramPanel tdp) {
+    //TraceManager.addDev("Delete");
 
-        // Remove the tab
-        mainTabbedPane.remove(src);
+    // We know the selected tab -> remove this tab
 
-        // Add a new tab
-        mainTabbedPane.insertTab(label, icon, comp, tooltip, dst);
+    int index;
+    JTabbedPane jtp = getCurrentJTabbedPane();
+    index = jtp.getSelectedIndex();
+    getCurrentTURTLEPanel().panels.removeElementAt(index);
+    jtp.remove(index);
 
-        // Restore all properties
-        mainTabbedPane.setDisabledIconAt(dst, iconDis);
-        mainTabbedPane.setEnabledAt(dst, enabled);
-        mainTabbedPane.setMnemonicAt(dst, keycode);
-        mainTabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc);
-        mainTabbedPane.setForegroundAt(dst, fg);
-        mainTabbedPane.setBackgroundAt(dst, bg);
+    // Signal the change
+    changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
 
-        Object o = tabs.elementAt(src);
-        tabs.removeElementAt(src);
-        tabs.insertElementAt(o, dst);
+}
 
-        mainTabbedPane.setSelectedIndex(dst);
+private void basicActivateDrawing() {
+    activetdp.setDraw(true);
+    if (activetdp.mode == TDiagramPanel.SELECTED_COMPONENTS) {
+        setMode(MainGUI.CUTCOPY_OK);
+        setMode(MainGUI.EXPORT_LIB_OK);
+    } else {
+        setMode(MainGUI.CUTCOPY_KO);
+        setMode(MainGUI.EXPORT_LIB_KO);
     }
+}
 
+private void unactivateDrawing() {
+    activetdp.setDraw(false);
+}
 
+private void activateDrawing(TDiagramPanel tdp, JTabbedPane good, Vector goodV, JTabbedPane wrong, Vector wrongV) {
+    int i;
+    TDiagramPanel tdp2;
 
-    public void requestRenameTab(int index) {
-        String oldName = mainTabbedPane.getTitleAt(index);
-        String s = (String)JOptionPane.showInputDialog(frame, "Name: ", "Renaming a tab=", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, mainTabbedPane.getTitleAt(index));
-        if ((s != null) && (s.length() > 0)){
-            // name already in use?
-            if (s.compareTo(oldName) != 0) {
-                if (isAValidTabName(s)) {
-                    mainTabbedPane.setTitleAt(index, s);
-                    changeMade(getCurrentTDiagramPanel(), ((TURTLEPanel)(tabs.elementAt(index))).tdp.MOVE_COMPONENT);
-
-                    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-                    if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) {
-                        renameMapping(oldName, s);
-                    }
-                } else {
-                    JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
-                }
-
+    for(i=0; i<good.getTabCount(); i++) {
+        tdp2 = (TDiagramPanel)(goodV.elementAt(i));
+        if (tdp2 == tdp) {
+            tdp2.setDraw(true);
+            if (tdp2.mode == TDiagramPanel.SELECTED_COMPONENTS) {
+                setMode(MainGUI.CUTCOPY_OK);
+                setMode(MainGUI.EXPORT_LIB_OK);
+            } else {
+                setMode(MainGUI.CUTCOPY_KO);
+                setMode(MainGUI.EXPORT_LIB_KO);
             }
+        } else {
+            tdp2.setDraw(false);
         }
-        changeMade(null, -1);
     }
 
-    public void renameMapping(String oldName, String newName) {
-        TURTLEPanel tp;
-
-        for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof TMLArchiPanel) {
-                ((TMLArchiPanel)tp).renameMapping(oldName, newName);
-            }
-        }
+    for(i=0; i<wrong.getTabCount(); i++) {
+        tdp2 = (TDiagramPanel)(wrongV.elementAt(i));
+        tdp2.setDraw(false);
+    }
+}
 
+public void paneAction(ChangeEvent e) {
+    //TraceManager.addDev("Pane action");
+    TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+    if (tdp1 != null) {
+        //TraceManager.addDev("Stop Adding connector in maingui");
+        tdp1.stopAddingConnector();
     }
-    
-    public void renameDeployment(String oldName, String newName) {
-        TURTLEPanel tp;
 
-        for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (tp instanceof ADDPanel) {
-                ((ADDPanel)tp).renameDeployment(oldName, newName);
-            }
+    try {
+        if (getCurrentTURTLEPanel() instanceof DesignPanel) {
+            setMethodologicalMode(METHO_DESIGN);
+            paneDesignAction(e);
+        } else if (getCurrentTURTLEPanel() instanceof AnalysisPanel) {
+            setMethodologicalMode(METHO_ANALYSIS);
+            paneAnalysisAction(e);
+        } else {
+            setMethodologicalMode(METHO_DEPLOY);
+            paneDeployAction(e);
         }
 
-    }
+        if ((getCurrentTURTLEPanel() instanceof AvatarDesignPanel) || (getCurrentTURTLEPanel() instanceof AvatarRequirementPanel) || (getCurrentTURTLEPanel() instanceof AttackTreePanel)) {
+            mainBar.showAvatarActions(true);
+        } else if ((getCurrentTURTLEPanel() instanceof TMLDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLComponentDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLArchiPanel)){
+            mainBar.showDiplodocusActions(true);
+        }  else {
+            mainBar.showAvatarActions(false);
+        }
 
-    public boolean selectTDiagramPanel(TDiagramPanel tdp) {
-        return (selectTab(getPoint(tdp)) == tdp);
+        setMode(PANEL_CHANGED);
+
+        setEditMode();
+        setPanelMode();
+
+
+    } catch (Exception ex) {
+        //TraceManager.addDev("Exception pane action: " + ex.getMessage());
     }
+}
 
-    public boolean selectTab(TURTLEPanel tp, String s) {
-        int j;
-        int index1 = tabs.indexOf(tp);
+public JFrame getFrame() {
+    return frame;
+}
 
-        if (mainTabbedPane.getSelectedIndex() != index1) {
-            mainTabbedPane.setSelectedIndex(index1);
+public boolean newTClassName(TURTLEPanel tp, String old, String niou) {
+    JTabbedPane jtp = tp.tabbedPane;
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        if (jtp.getTitleAt(i).equals(niou)) {
+            return false;
         }
-
-        for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
-            if (tp.tabbedPane.getTitleAt(j).equals(s)) {
-                tp.tabbedPane.setSelectedIndex(j);
-                return true;
+    }
+    //TraceManager.addDev("old " + old + " niou " + niou);
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+        if (jtp.getTitleAt(i).equals(old)) {
+            jtp.setTitleAt(i, niou);
+            jtp.setToolTipTextAt(i, "Opens the activity diagram of " + niou);
+            TDiagramPanel tdp;
+            //change panel name
+            for(int j=0; j<tp.panels.size(); j++) {
+                tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                if (tdp.getName().equals(old)) {
+                    tdp.setName(niou);
+                }
             }
+
+            return true;
         }
+    }
+    // internal error
+    ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+    return false;
+}
 
-        return false;
+public boolean newTOSClassName(TURTLEPanel tp, String old, String niou) {
+    JTabbedPane jtp = tp.tabbedPane;
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        if (jtp.getTitleAt(i).equals(niou)) {
+            return false;
+        }
     }
+    //TraceManager.addDev("old " + old + " niou " + niou);
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+        if (jtp.getTitleAt(i).equals(old)) {
+            jtp.setTitleAt(i, niou);
+            jtp.setToolTipTextAt(i, "Opens the TURTLE-OS activity diagram of " + niou);
+            TDiagramPanel tdp;
+            //change panel name
+            for(int j=0; j<tp.panels.size(); j++) {
+                tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                if (tdp.getName().equals(old)) {
+                    tdp.setName(niou);
+                }
+            }
 
-    public boolean selectTab(String s) {
-        return selectTab(getCurrentTURTLEPanel(), s);
+            return true;
+        }
     }
+    // internal error
+    ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+    return false;
+}
 
-    public void openTMLTaskActivityDiagram(String panel, String tab) {
-        int index = mainTabbedPane.indexOfTab(panel);
-        if (index != -1) {
-            mainTabbedPane.setSelectedIndex(index);
+public boolean newTMLTaskName(TURTLEPanel tp, String old, String niou) {
+    //TraceManager.addDev("Panel=" + tp + " Old  task name = " + old + " New task name=" + niou);
+    JTabbedPane jtp = tp.tabbedPane;
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
+        if (jtp.getTitleAt(i).equals(niou)) {
+            return false;
         }
-        openTMLTaskActivityDiagram(tab);
     }
+    //TraceManager.addDev("old " + old + " niou " + niou);
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+        //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
+        if (jtp.getTitleAt(i).equals(old)) {
+            jtp.setTitleAt(i, niou);
+            jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
+            TDiagramPanel tdp;
+            //change panel name
+            for(int j=0; j<tp.panels.size(); j++) {
+                tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                if (tdp.getName().equals(old)) {
+                    tdp.setName(niou);
+                    //TraceManager.addDev("Renamed to " + niou);
+                }
+            }
 
-    public void openTMLTaskActivityDiagram(String tab) {
-        selectTab(getCurrentTURTLEPanel(), tab);
+            return true;
+        }
     }
+    // internal error
+    ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+    return false;
+}
 
-    public void refreshCurrentPanel() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
+public boolean newAvatarBDBlockName(TURTLEPanel tp, String old, String niou) {
+    //TraceManager.addDev("Panel=" + tp + " Old  task name = " + old + " New task name=" + niou);
+    JTabbedPane jtp = tp.tabbedPane;
+    int i;
+    for(i = 0; i<jtp.getTabCount(); i++) {
+        //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
+        if (jtp.getTitleAt(i).equals(niou)) {
+            return false;
         }
     }
+    //TraceManager.addDev("old " + old + " niou " + niou);
+    //TraceManager.addDev("nb Of panels:"+ jtp.getTabCount());
+    for(i = 0; i<jtp.getTabCount(); i++) {
+        //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+        //TraceManager.addDev("jtp  = >" + jtp.getTitleAt(i) + "<");
+        //TraceManager.addDev("old  = >" + old + "<");
+        if (jtp.getTitleAt(i).compareTo(old) == 0) {
+            jtp.setTitleAt(i, niou);
+            jtp.setToolTipTextAt(i, "Opens the state machine of " + niou);
+            TDiagramPanel tdp;
+            //change panel name
+            for(int j=0; j<tp.panels.size(); j++) {
+                tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                if (tdp.getName().equals(old)) {
+                    tdp.setName(niou);
+                    //TraceManager.addDev("Renamed to " + niou);
+                }
+            }
 
-    public void openAVATARSMD(String tab) {
-        TDiagramPanel cur = getCurrentTDiagramPanel();
-        selectTab(getCurrentTURTLEPanel(), tab);
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp == cur) {
-            tdp.repaint();
+            return true;
         }
     }
+    // internal error
+    ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+    return false;
+}
 
-    public boolean selectHighLevelTab(String s) {
-        TURTLEPanel tp = getTURTLEPanel(s);
-        if (s != null) {
-            selectTab(tp);
+public boolean nameComponentInUse(TURTLEPanel tp, String old, String niou) {
+    JTabbedPane jtp = tp.tabbedPane;
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        if (jtp.getTitleAt(i).equals(niou)) {
             return true;
         }
-        return false;
     }
+    return false;
+}
 
-    public TDiagramPanel selectTab(Point p) {
-        mainTabbedPane.setSelectedIndex(p.x);
-        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(p.x));
-        tp.tabbedPane.setSelectedIndex(p.y);
-        return (TDiagramPanel)(tp.panels.elementAt(p.y));
-
+public boolean newTMLComponentTaskName(TURTLEPanel tp, String old, String niou) {
+    JTabbedPane jtp = tp.tabbedPane;
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        if (jtp.getTitleAt(i).equals(niou)) {
+            return false;
+        }
     }
+    TraceManager.addDev("old " + old + " niou " + niou);
+    for(int i = 0; i<jtp.getTabCount(); i++) {
+        TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+        if (jtp.getTitleAt(i).equals(old)) {
+            jtp.setTitleAt(i, niou);
+            jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
+            TDiagramPanel tdp;
+            //change panel name
+            for(int j=0; j<tp.panels.size(); j++) {
+                tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                if (tdp.getName().equals(old)) {
+                    tdp.setName(niou);
+                }
+            }
 
-    public Point getCurrentSelectedPoint() {
-        Point p = new Point();
-
-        p.x = mainTabbedPane.getSelectedIndex();
-        if (getCurrentTURTLEPanel() == null) {
-            p.y = -1;
-        } else {
-            p.y = getCurrentTURTLEPanel().tabbedPane.getSelectedIndex();
+            return true;
         }
+    }
+    // internal error
+    ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+    return false;
+}
 
-        return p;
+public void cloneTab(int index) {
+    String s = gtm.makeXMLFromTurtleModeling(index);
+    try {
+        gtm.loadModelingFromXML(s);
+        changeMade(null, -1);
+    } catch (MalformedModelingException mme) {
+        JOptionPane.showMessageDialog(frame, "Modeling could not be loaded (unsupported file) ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+        frame.setTitle("TTool: unamed project");
     }
 
-    public Point getPoint(TDiagramPanel tdp) {
-        Point p = new Point();
+}
 
-        int index;
-        TURTLEPanel tp;
+public void requestRemoveTab(int index) {
+    if (index >= tabs.size()) {
+        return;
+    }
 
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            index = tp.panels.indexOf(tdp);
-            if (index > -1) {
-                p.x = i;
-                p.y = index;
-                return p;
-            }
-        }
-        p.x = 0;
-        p.y = 0;
+    tabs.removeElementAt(index);
+    mainTabbedPane.remove(index);
+    changeMade(null, -1);
+}
 
-        return p;
+public void requestMoveRightTab(int index) {
+    //TraceManager.addDev("Move right");
+    if (index > tabs.size()-2) {
+        return;
     }
+    requestMoveTabFromTo(index, index + 1);
+    changeMade(null, -1);
+}
 
-    public DesignPanel getDesignPanel(String name) {
-        int index = mainTabbedPane.indexOfTab(name);
-        try {
-            TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-
-            if (tp instanceof DesignPanel) {
-                return (DesignPanel)tp;
+public void requestMoveLeftTab(int index) {
+    //TraceManager.addDev("Move left");
+    if (index < 1) {
+        return;
+    }
+    requestMoveTabFromTo(index, index-1);
+    changeMade(null, -1);
+}
+
+public void requestMoveTabFromTo(int src, int dst) {
+
+    // Get all the properties
+    Component comp = mainTabbedPane.getComponentAt(src);
+    String label = mainTabbedPane.getTitleAt(src);
+    Icon icon = mainTabbedPane.getIconAt(src);
+    Icon iconDis = mainTabbedPane.getDisabledIconAt(src);
+    String tooltip = mainTabbedPane.getToolTipTextAt(src);
+    boolean enabled = mainTabbedPane.isEnabledAt(src);
+    int keycode = mainTabbedPane.getMnemonicAt(src);
+    int mnemonicLoc = mainTabbedPane.getDisplayedMnemonicIndexAt(src);
+    Color fg = mainTabbedPane.getForegroundAt(src);
+    Color bg = mainTabbedPane.getBackgroundAt(src);
+
+    // Remove the tab
+    mainTabbedPane.remove(src);
+
+    // Add a new tab
+    mainTabbedPane.insertTab(label, icon, comp, tooltip, dst);
+
+    // Restore all properties
+    mainTabbedPane.setDisabledIconAt(dst, iconDis);
+    mainTabbedPane.setEnabledAt(dst, enabled);
+    mainTabbedPane.setMnemonicAt(dst, keycode);
+    mainTabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc);
+    mainTabbedPane.setForegroundAt(dst, fg);
+    mainTabbedPane.setBackgroundAt(dst, bg);
+
+    Object o = tabs.elementAt(src);
+    tabs.removeElementAt(src);
+    tabs.insertElementAt(o, dst);
+
+    mainTabbedPane.setSelectedIndex(dst);
+}
+
+
+
+public void requestRenameTab(int index) {
+    String oldName = mainTabbedPane.getTitleAt(index);
+    String s = (String)JOptionPane.showInputDialog(frame, "Name: ", "Renaming a tab=", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, mainTabbedPane.getTitleAt(index));
+    if ((s != null) && (s.length() > 0)){
+        // name already in use?
+        if (s.compareTo(oldName) != 0) {
+            if (isAValidTabName(s)) {
+                mainTabbedPane.setTitleAt(index, s);
+                changeMade(getCurrentTDiagramPanel(), ((TURTLEPanel)(tabs.elementAt(index))).tdp.MOVE_COMPONENT);
+
+                TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+                if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) {
+                    renameMapping(oldName, s);
+                }
             } else {
-                return null;
+                JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
             }
-        } catch (Exception e) {
-            return null;
+
         }
     }
+    changeMade(null, -1);
+}
 
-    public boolean selectMainTab(String id) {
-        TURTLEPanel tp;
+public void renameMapping(String oldName, String newName) {
+    TURTLEPanel tp;
 
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            if (getTabName(tp).compareTo(id) == 0) {
-                selectTab(tp);
-                return true;
-            }
+    for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof TMLArchiPanel) {
+            ((TMLArchiPanel)tp).renameMapping(oldName, newName);
         }
-
-        return false;
     }
 
-    public void selectTab(TURTLEPanel tp) {
-        int index1 = tabs.indexOf(tp);
-        mainTabbedPane.setSelectedIndex(index1);
-    }
+}
 
-    public void selectTab(TDiagramPanel tdp) {
-        int index;
-        TURTLEPanel tp;
+public void renameDeployment(String oldName, String newName) {
+    TURTLEPanel tp;
 
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            index = tp.panels.indexOf(tdp);
-            if (index > -1) {
-                selectTab(tp);
-                tp.tabbedPane.setSelectedIndex(index);
-            }
+    for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (tp instanceof ADDPanel) {
+            ((ADDPanel)tp).renameDeployment(oldName, newName);
         }
     }
 
-    public void toggleAttributes() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
-            //TraceManager.addDev("Toggle attributes");
-            TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
-            tdcp.setAttributesVisible(!tdcp.areAttributesVisible());
-            tdcp.checkAllMySize();
-            tdcp.repaint();
-            changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+}
+
+public boolean selectTDiagramPanel(TDiagramPanel tdp) {
+    return (selectTab(getPoint(tdp)) == tdp);
+}
+
+public boolean selectTab(TURTLEPanel tp, String s) {
+    int j;
+    int index1 = tabs.indexOf(tp);
+
+    if (mainTabbedPane.getSelectedIndex() != index1) {
+        mainTabbedPane.setSelectedIndex(index1);
     }
 
-    // AVATAR Simulation
-    public void setAVATARIDs(boolean b) {
-        TDiagramPanel.AVATAR_ID_ON = b;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
+    for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
+        if (tp.tabbedPane.getTitleAt(j).equals(s)) {
+            tp.tabbedPane.setSelectedIndex(j);
+            return true;
         }
     }
 
-    public void toggleAVATARIDs() {
-        setAVATARIDs(!TDiagramPanel.AVATAR_ID_ON);
-        TraceManager.addDev("AVATAR id: " + TDiagramPanel.AVATAR_ID_ON);
-    }
+    return false;
+}
 
-    // For simulation purpose
-    public void resetAllDIPLOIDs() {
-        TURTLEPanel tp;
+public boolean selectTab(String s) {
+    return selectTab(getCurrentTURTLEPanel(), s);
+}
 
-        for(int i=0; i<tabs.size(); i++) {
-            tp = (TURTLEPanel)(tabs.elementAt(i));
-            tp.resetAllDIPLOIDs();
-        }
+public void openTMLTaskActivityDiagram(String panel, String tab) {
+    int index = mainTabbedPane.indexOfTab(panel);
+    if (index != -1) {
+        mainTabbedPane.setSelectedIndex(index);
     }
+    openTMLTaskActivityDiagram(tab);
+}
 
-    public void toggleDiploIDs() {
-        setDiploIDs(!TDiagramPanel.DIPLO_ID_ON);
-    }
+public void openTMLTaskActivityDiagram(String tab) {
+    selectTab(getCurrentTURTLEPanel(), tab);
+}
 
-    public void toggleTEPEIDs() {
-        setTEPEIDs(!TDiagramPanel.TEPE_ID_ON);
+public void refreshCurrentPanel() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+}
 
-    public void toggleDiploAnimate() {
-        setDiploAnimate(!TDiagramPanel.DIPLO_ANIMATE_ON);
+public void openAVATARSMD(String tab) {
+    TDiagramPanel cur = getCurrentTDiagramPanel();
+    selectTab(getCurrentTURTLEPanel(), tab);
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp == cur) {
+        tdp.repaint();
     }
+}
 
-    public int isRunningAvatarComponent(TGComponent _tgc) {
-        if(jfais.isVisible()) {
-            if (jfais.isRunningComponent(_tgc)) {
-                return 1;
-            }
-            if (jfais.isSelectedComponentFromTransaction(_tgc)) {
-                return 2;
-            }
-        }
-        return 0;
+public boolean selectHighLevelTab(String s) {
+    TURTLEPanel tp = getTURTLEPanel(s);
+    if (s != null) {
+        selectTab(tp);
+        return true;
     }
+    return false;
+}
 
-    public String[] hasMessageInformationForAvatarConnector(AvatarBDPortConnector _conn) {
-        if(jfais.isVisible()) {
-            return jfais.getFirstMessagesOnEachConnectorSide(_conn);
-        }
-        return null;
-    }
+public TDiagramPanel selectTab(Point p) {
+    mainTabbedPane.setSelectedIndex(p.x);
+    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(p.x));
+    tp.tabbedPane.setSelectedIndex(p.y);
+    return (TDiagramPanel)(tp.panels.elementAt(p.y));
 
-    public void setDiploAnimate(boolean b) {
-        TDiagramPanel.DIPLO_ANIMATE_ON = b;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
-    }
+}
 
-    public void setAvatarAnimate(boolean b) {
-        TDiagramPanel.AVATAR_ANIMATE_ON = b;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
-    }
+public Point getCurrentSelectedPoint() {
+    Point p = new Point();
 
-    public void setDiploIDs(boolean b) {
-        TDiagramPanel.DIPLO_ID_ON = b;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
+    p.x = mainTabbedPane.getSelectedIndex();
+    if (getCurrentTURTLEPanel() == null) {
+        p.y = -1;
+    } else {
+        p.y = getCurrentTURTLEPanel().tabbedPane.getSelectedIndex();
     }
 
-    public void setTEPEIDs(boolean b) {
-        TDiagramPanel.TEPE_ID_ON = b;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
-    }
+    return p;
+}
 
-    public void setTransationProgression(boolean b) {
-        TDiagramPanel.DIPLO_TRANSACTION_PROGRESSION_ON = b;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
-    }
+public Point getPoint(TDiagramPanel tdp) {
+    Point p = new Point();
 
-    public synchronized RunningInfo isRunningID(int id) {
-        if (runningIDs == null) {
-            return null;
-        }
+    int index;
+    TURTLEPanel tp;
 
-        for(RunningInfo ri: runningIDs) {
-            if (ri.id == id) {
-                return ri;
-            }
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        index = tp.panels.indexOf(tdp);
+        if (index > -1) {
+            p.x = i;
+            p.y = index;
+            return p;
         }
-
-        return null;
     }
+    p.x = 0;
+    p.y = 0;
 
-    public synchronized LoadInfo isLoadID(int id) {
-        if (loadIDs == null) {
-            return null;
-        }
+    return p;
+}
 
-        for(LoadInfo li: loadIDs) {
-            if (li.id == id) {
-                return li;
-            }
-        }
+public DesignPanel getDesignPanel(String name) {
+    int index = mainTabbedPane.indexOfTab(name);
+    try {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
 
+        if (tp instanceof DesignPanel) {
+            return (DesignPanel)tp;
+        } else {
+            return null;
+        }
+    } catch (Exception e) {
         return null;
     }
+}
 
-    public synchronized void resetRunningID() {
-        if (runningIDs != null) {
-            runningIDs.clear();
-        }
-        runningIDs = null;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
-    }
+public boolean selectMainTab(String id) {
+    TURTLEPanel tp;
 
-    public synchronized void resetLoadID() {
-        if (loadIDs != null) {
-            loadIDs.clear();
-        }
-        loadIDs = null;
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        if (getTabName(tp).compareTo(id) == 0) {
+            selectTab(tp);
+            return true;
         }
     }
 
-    public synchronized void addRunningIDTaskState(int _id, String _state) {
-        if (runningIDs == null) {
-            return;
-        }
+    return false;
+}
 
-        if (_state == null) {
-            _state = "unknown";
-        }
+public void selectTab(TURTLEPanel tp) {
+    int index1 = tabs.indexOf(tp);
+    mainTabbedPane.setSelectedIndex(index1);
+}
 
-        for(RunningInfo ri: runningIDs) {
-            if (ri.id == _id) {
-                ri.state = _state.toLowerCase();
-                //TraceManager.addDev("Updated state on UML diagram");
-                TDiagramPanel tdp = getCurrentTDiagramPanel();
-                if (tdp != null) {
-                    tdp.repaint();
-                }
-                return;
-            }
+public void selectTab(TDiagramPanel tdp) {
+    int index;
+    TURTLEPanel tp;
+
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        index = tp.panels.indexOf(tdp);
+        if (index > -1) {
+            selectTab(tp);
+            tp.tabbedPane.setSelectedIndex(index);
         }
+    }
+}
 
+public void toggleAttributes() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
+        //TraceManager.addDev("Toggle attributes");
+        TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
+        tdcp.setAttributesVisible(!tdcp.areAttributesVisible());
+        tdcp.checkAllMySize();
+        tdcp.repaint();
+        changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
     }
+}
 
-    public synchronized void addRunningID(int _id, int _nextCommand, String _progression, String _startTime, String _finishTime, String _transStartTime, String _transFinishTime, String _state) {
-        if (runningIDs == null) {
-            runningIDs = new ArrayList<RunningInfo>();
-        }
-        RunningInfo ri = new RunningInfo();
-        if (_state == null) {
-            _state = "unknown";
-        }
-        ri.id = _id;
-        ri.nextCommand = _nextCommand;
-        ri.progression = _progression;
-        ri.startTime = _startTime;
-        ri.finishTime = _finishTime;
-        ri.transStartTime = _transStartTime;
-        ri.transFinishTime = _transFinishTime;
-        ri.state = _state.toLowerCase();
-        runningIDs.add(ri);
-        //TraceManager.addDev("Running id " + id +  " added");
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
+// AVATAR Simulation
+public void setAVATARIDs(boolean b) {
+    TDiagramPanel.AVATAR_ID_ON = b;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+}
 
-    public synchronized void addLoadInfo(int _id, double _load, long _energy) {
-        if (loadIDs == null) {
-            loadIDs = new ArrayList<LoadInfo>();
-        }
+public void toggleAVATARIDs() {
+    setAVATARIDs(!TDiagramPanel.AVATAR_ID_ON);
+    TraceManager.addDev("AVATAR id: " + TDiagramPanel.AVATAR_ID_ON);
+}
 
-        removeLoadId(_id);
-        LoadInfo li = new LoadInfo();
-        li.id = _id;
-        li.load = _load;
-        li.energy = _energy;
-        loadIDs.add(li);
-        //TraceManager.addDev("Running id " + _id +  " added load=" + _load);
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.repaint();
-        }
+// For simulation purpose
+public void resetAllDIPLOIDs() {
+    TURTLEPanel tp;
+
+    for(int i=0; i<tabs.size(); i++) {
+        tp = (TURTLEPanel)(tabs.elementAt(i));
+        tp.resetAllDIPLOIDs();
     }
+}
 
-    public synchronized void removeRunningId(Integer id) {
-        if (runningIDs == null) {
-            return ;
-        }
+public void toggleDiploIDs() {
+    setDiploIDs(!TDiagramPanel.DIPLO_ID_ON);
+}
 
-        for(RunningInfo ri: runningIDs) {
-            if (ri.id == id.intValue()) {
-                runningIDs.remove(ri);
-                //TraceManager.addDev("Running id " + i +  " removed");
-                return;
-            }
-        }
-        getCurrentTDiagramPanel().repaint();
-    }
+public void toggleTEPEIDs() {
+    setTEPEIDs(!TDiagramPanel.TEPE_ID_ON);
+}
 
-    public synchronized void removeLoadId(int _id) {
-        if (loadIDs == null) {
-            return ;
-        }
+public void toggleDiploAnimate() {
+    setDiploAnimate(!TDiagramPanel.DIPLO_ANIMATE_ON);
+}
 
-        for(LoadInfo li: loadIDs) {
-            if (li.id == _id) {
-                loadIDs.remove(li);
-                //TraceManager.addDev("Running id " + i +  " removed");
-                return;
-            }
+public int isRunningAvatarComponent(TGComponent _tgc) {
+    if(jfais.isVisible()) {
+        if (jfais.isRunningComponent(_tgc)) {
+            return 1;
+        }
+        if (jfais.isSelectedComponentFromTransaction(_tgc)) {
+            return 2;
         }
-        getCurrentTDiagramPanel().repaint();
     }
+    return 0;
+}
 
-    public void toggleGates() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
-            //TraceManager.addDev("Toggle gates");
-            TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
-            tdcp.setGatesVisible(!tdcp.areGatesVisible());
-            tdcp.checkAllMySize();
-            tdcp.repaint();
-            changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+public String[] hasMessageInformationForAvatarConnector(AvatarBDPortConnector _conn) {
+    if(jfais.isVisible()) {
+        return jfais.getFirstMessagesOnEachConnectorSide(_conn);
     }
+    return null;
+}
 
-    public void toggleSynchro() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
-            //TraceManager.addDev("Toggle synchro");
-            TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
-            tdcp.setSynchroVisible(!tdcp.areSynchroVisible());
-            tdcp.checkAllMySize();
-            tdcp.repaint();
-            changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+public void setDiploAnimate(boolean b) {
+    TDiagramPanel.DIPLO_ANIMATE_ON = b;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+}
 
-    public void toggleJava() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if ((tdp != null) && (tdp instanceof TActivityDiagramPanel)){
-            //TraceManager.addDev("Toggle synchro");
-            TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp;
-            tadp.setJavaVisible(!tadp.isJavaVisible());
-            tadp.checkAllMySize();
-            tadp.repaint();
-            changeMade(tadp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+public void setAvatarAnimate(boolean b) {
+    TDiagramPanel.AVATAR_ANIMATE_ON = b;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+}
 
-    public void toggleInternalComment() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null) {
-            tdp.setInternalCommentVisible((tdp.getInternalCommentVisible() + 1) % 3);
-            tdp.checkAllMySize();
-            tdp.repaint();
-            changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+public void setDiploIDs(boolean b) {
+    TDiagramPanel.DIPLO_ID_ON = b;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+}
 
-    public void toggleAttr() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if (tdp != null){
-            //TraceManager.addDev("Toggle attributes");
-            tdp.setAttributes((tdp.getAttributeState() + 1) % 3);
-            tdp.checkAllMySize();
-            tdp.repaint();
-            changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+public void setTEPEIDs(boolean b) {
+    TDiagramPanel.TEPE_ID_ON = b;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+}
 
-    public void toggleChannels() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
-            //TraceManager.addDev("Toggle attributes");
-            TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
-            tmltdp.setChannelsVisible(!tmltdp.areChannelsVisible());
-            tmltdp.checkAllMySize();
-            tmltdp.repaint();
-            changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+public void setTransationProgression(boolean b) {
+    TDiagramPanel.DIPLO_TRANSACTION_PROGRESSION_ON = b;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+}
 
-    public void toggleEvents() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
-            //TraceManager.addDev("Toggle attributes");
-            TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
-            tmltdp.setEventsVisible(!tmltdp.areEventsVisible());
-            tmltdp.checkAllMySize();
-            tmltdp.repaint();
-            changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-        }
+public synchronized RunningInfo isRunningID(int id) {
+    if (runningIDs == null) {
+        return null;
     }
 
-    public void toggleRequests() {
-        TDiagramPanel tdp = getCurrentTDiagramPanel();
-        if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
-            //TraceManager.addDev("Toggle attributes");
-            TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
-            tmltdp.setRequestsVisible(!tmltdp.areRequestsVisible());
-            tmltdp.checkAllMySize();
-            tmltdp.repaint();
-            changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    for(RunningInfo ri: runningIDs) {
+        if (ri.id == id) {
+            return ri;
         }
     }
 
-    public boolean isAValidTabName(String name) {
-        return name.matches("((\\w)*(\\s)*)*");
+    return null;
+                                }
+
+public synchronized LoadInfo isLoadID(int id) {
+    if (loadIDs == null) {
+        return null;
     }
 
+    for(LoadInfo li: loadIDs) {
+        if (li.id == id) {
+            return li;
+        }
+    }
 
+    return null;
+                             }
 
-    public void windowClosing(WindowEvent e) {
-        //frame.setVisible(false);
-        quitApplication();
+public synchronized void resetRunningID() {
+    if (runningIDs != null) {
+        runningIDs.clear();
     }
-
-    public void windowClosed(WindowEvent e) {
+    runningIDs = null;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+                         }
 
-    public void windowOpened(WindowEvent e) {
+public synchronized void resetLoadID() {
+    if (loadIDs != null) {
+        loadIDs.clear();
     }
-
-    public void windowIconified(WindowEvent e) {
+    loadIDs = null;
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+                         }
 
-    public void windowDeiconified(WindowEvent e) {
+public synchronized void addRunningIDTaskState(int _id, String _state) {
+    if (runningIDs == null) {
+        return;
     }
 
-    public void windowActivated(WindowEvent e) {
+    if (_state == null) {
+        _state = "unknown";
     }
 
-    public void windowDeactivated(WindowEvent e) {
+    for(RunningInfo ri: runningIDs) {
+        if (ri.id == _id) {
+            ri.state = _state.toLowerCase();
+            //TraceManager.addDev("Updated state on UML diagram");
+            TDiagramPanel tdp = getCurrentTDiagramPanel();
+            if (tdp != null) {
+                tdp.repaint();
+            }
+            return;
+        }
     }
 
+                         }
 
-    // TGUIACtions Event listener
-
-    public void keyTyped(KeyEvent e) {
-        TraceManager.addDev("KEY TYPED");
+public synchronized void addRunningID(int _id, int _nextCommand, String _progression, String _startTime, String _finishTime, String _transStartTime, String _transFinishTime, String _state) {
+    if (runningIDs == null) {
+        runningIDs = new ArrayList<RunningInfo>();
+    }
+    RunningInfo ri = new RunningInfo();
+    if (_state == null) {
+        _state = "unknown";
     }
+    ri.id = _id;
+    ri.nextCommand = _nextCommand;
+    ri.progression = _progression;
+    ri.startTime = _startTime;
+    ri.finishTime = _finishTime;
+    ri.transStartTime = _transStartTime;
+    ri.transFinishTime = _transFinishTime;
+    ri.state = _state.toLowerCase();
+    runningIDs.add(ri);
+    //TraceManager.addDev("Running id " + id +  " added");
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
+    }
+                         }
 
-    public void keyPressed(KeyEvent e) {
-        TraceManager.addDev("KEY PRESSED: ");
+public synchronized void addLoadInfo(int _id, double _load, long _energy) {
+    if (loadIDs == null) {
+        loadIDs = new ArrayList<LoadInfo>();
     }
 
-    public void keyReleased(KeyEvent e) {
-        TraceManager.addDev("KEY RELEASED: ");
+    removeLoadId(_id);
+    LoadInfo li = new LoadInfo();
+    li.id = _id;
+    li.load = _load;
+    li.energy = _energy;
+    loadIDs.add(li);
+    //TraceManager.addDev("Running id " + _id +  " added load=" + _load);
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.repaint();
     }
+                         }
 
-    public void actionPerformed(ActionEvent evt)  {
-        String command = evt.getActionCommand();
-        //TraceManager.addDev("Command:" + command);
-        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-        if (tdp1 != null) {
-            //TraceManager.addDev("Stop Adding connector in maingui");
-            tdp1.stopAddingConnector();
-        }
-
-
-        // Compare the action command to the known actions.
-        if (command.equals(actions[TGUIAction.ACT_NEW].getActionCommand()))  {
-            newProject();
-        } else if (command.equals(actions[TGUIAction.ACT_NEW_DESIGN].getActionCommand())) {
-            newDesign();
-        } else if (command.equals(actions[TGUIAction.ACT_NEW_ANALYSIS].getActionCommand())) {
-            newAnalysis();
-        } else if (command.equals(actions[TGUIAction.ACT_OPEN].getActionCommand())) {
-            openProject();
-        } else if (command.equals(actions[TGUIAction.ACT_MERGE].getActionCommand())) {
-            mergeProject();
-        } else if (command.equals(actions[TGUIAction.ACT_OPEN_LAST].getActionCommand())) {
-            openLastProject();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE].getActionCommand())) {
-            saveProject();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_AS].getActionCommand())) {
-            saveAsProject();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_TIF].getActionCommand())) {
-            saveTIF();
-        } else if (command.equals(actions[TGUIAction.ACT_OPEN_TIF].getActionCommand())) {
-            openTIF();
-        } else if (command.equals(actions[TGUIAction.ACT_OPEN_SD].getActionCommand())) {
-            openSD();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_LOTOS].getActionCommand())) {
-            saveLastLotos();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_DTA].getActionCommand())) {
-            saveLastDTA();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_RG].getActionCommand())) {
-            saveLastRG();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_TLSA].getActionCommand())) {
-            saveLastTLSA();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUT].getActionCommand())) {
-            saveLastRGAUT();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTPROJ].getActionCommand())) {
-            saveLastRGAUTProj();
-        } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTMODIFIED].getActionCommand())) {
-            saveLastModifiedRG();
-        } else if (command.equals(actions[TGUIAction.ACT_EXPORT_LIB].getActionCommand())) {
-            exportLibrary();
-        } else if (command.equals(actions[TGUIAction.ACT_IMPORT_LIB].getActionCommand())) {
-            importLibrary();
-        } else if (command.equals(actions[TGUIAction.ACT_QUIT].getActionCommand())) {
-            quitApplication();
-        } else if (command.equals(actions[TGUIAction.ACT_CUT].getActionCommand())) {
-            cut();
-        } else if (command.equals(actions[TGUIAction.ACT_COPY].getActionCommand())) {
-            copy();
-        } else if (command.equals(actions[TGUIAction.ACT_PASTE].getActionCommand())) {
-            paste();
-        } else if (command.equals(actions[TGUIAction.ACT_DELETE].getActionCommand())) {
-            delete();
-        } else if (command.equals(actions[TGUIAction.ACT_ZOOM_MORE].getActionCommand())) {
-            zoomMore();
-        } else if (command.equals(actions[TGUIAction.ACT_ZOOM_LESS].getActionCommand())) {
-            zoomLess();
-        } else if (command.equals(actions[TGUIAction.ACT_BACKWARD].getActionCommand())) {
-            backward();
-        } else if (command.equals(actions[TGUIAction.ACT_FORWARD].getActionCommand())) {
-            forward();
-        } else if (command.equals(actions[TGUIAction.ACT_FIRST_DIAG].getActionCommand())) {
-            firstDiag();
-        } else if (command.equals(actions[TGUIAction.ACT_BACK_DIAG].getActionCommand())) {
-            backDiag();
-        } else if (command.equals(actions[TGUIAction.ACT_NEXT_DIAG].getActionCommand())) {
-            nextDiag();
-        }  else if (command.equals(actions[TGUIAction.ACT_LAST_DIAG].getActionCommand())) {
-            lastDiag();
-        } else if (command.equals(actions[TGUIAction.ACT_ABOUT].getActionCommand())) {
-            aboutVersion();
-	} 
-        //@author: Huy TRUONG.
-        //open a external search box for ACT_EXTERNAL_SEARCH
-        else if (command.equals(actions[TGUIAction.ACT_EXTERNAL_SEARCH].getActionCommand())) {
-            showExternalSearch();}
-        else if (command.equals(actions[TGUIAction.ACT_INTERNAL_SEARCH].getActionCommand())) {
-            doInternalSearch();
-        //--
+public synchronized void removeRunningId(Integer id) {
+    if (runningIDs == null) {
+        return ;
+    }
 
-        } else if (command.equals(actions[TGUIAction.ACT_TTOOL_CONFIGURATION].getActionCommand())) {
-            showTToolConfiguration();
-        } else if (command.equals(actions[TGUIAction.ACT_TURTLE_WEBSITE].getActionCommand())) {
-            aboutTURTLE();
-        } else if (command.equals(actions[TGUIAction.ACT_TURTLE_DOCUMENTATION].getActionCommand())) {
-            helpTURTLE();
-        } else if (command.equals(actions[TGUIAction.ACT_DIPLODOCUS_DOCUMENTATION].getActionCommand())) {
-            helpDIPLODOCUS();
-        } else if (command.equals(actions[TGUIAction.ACT_MODEL_CHECKING].getActionCommand())) {
-            modelChecking();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_RTLOTOS].getActionCommand())) {
-            generateRTLOTOS();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_LOTOS].getActionCommand())) {
-            generateLOTOS();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_AUT].getActionCommand())) {
-            generateAUT();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_AUTS].getActionCommand())) {
-            generateAUTS();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_UPPAAL].getActionCommand())) {
-            generateUPPAAL();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_PROVERIF].getActionCommand())) {
-            generateProVerif();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_JAVA].getActionCommand())) {
-            generateJava();
-        } else if (command.equals(actions[TGUIAction.ACT_SIMU_JAVA].getActionCommand())) {
-            simuJava();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_SYSTEMC].getActionCommand())) {
-            generateSystemC();
-        } else if (command.equals(actions[TGUIAction.ACT_SIMU_SYSTEMC].getActionCommand())) {
-            interactiveSimulationSystemC();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_TMLTXT].getActionCommand())) {
-            generateTMLTxt();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_CCODE].getActionCommand())) {
-            generateCcode();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_DESIGN].getActionCommand())) {
-            generateDesign();
-        } else if (command.equals(actions[TGUIAction.ACT_CHECKCODE].getActionCommand())) {
-            checkCode();
-        } else if (command.equals(actions[TGUIAction.ACT_SIMULATION].getActionCommand())) {
-            simulation();
-        } else if (command.equals(actions[TGUIAction.ACT_VALIDATION].getActionCommand())) {
-            formalValidation();
-        } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_LOTOS_RG].getActionCommand())) {
-            oneClickLOTOSRG();
-        } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_RTLOTOS_RG].getActionCommand())) {
-            oneClickRTLOTOSRG();
-        } else if (command.equals(actions[TGUIAction.ACT_PROJECTION].getActionCommand())) {
-            projection();
-        }  else if (command.equals(actions[TGUIAction.ACT_GRAPH_MODIFICATION].getActionCommand())) {
-            modifyGraph();
-        } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION].getActionCommand())) {
-            bisimulation();
-        } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION_CADP].getActionCommand())) {
-            bisimulationCADP();
-        } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_AUT].getActionCommand())) {
-            seekDeadlockAUT();
-        } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_SAVED_AUT].getActionCommand())) {
-            seekDeadlockSavedAUT();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUT].getActionCommand())) {
-            statAUT();
-        }  else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTDIPLODOCUS].getActionCommand())) {
-            statAUTDiplodocus();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTPROJ].getActionCommand())) {
-            statAUTProj();
-        }  else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_SAVED_AUT].getActionCommand())) {
-            statSavedAUT();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUT].getActionCommand())) {
-            pmAUT();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUTPROJ].getActionCommand())) {
-            pmAUTProj();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_SAVED_AUT].getActionCommand())) {
-            pmSavedAUT();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_RTLOTOS].getActionCommand())) {
-            showFormalSpecification();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_JAVA].getActionCommand())) {
-            showJavaCode();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES].getActionCommand())) {
-            showBirdEyesView();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES_EMB].getActionCommand())) {
-            showEmbeddedBirdEyesView();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_WAVE].getActionCommand())) {
-            showWave();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_SUGGESTED_DESIGN].getActionCommand())) {
-            showSuggestedDesign();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM].getActionCommand())) {
-            showSimulationTrace();
-        }  else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM_CHRONO].getActionCommand())) {
-            showSimulationTraceChrono();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_DTADOT].getActionCommand())) {
-            showDTA();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGDOT].getActionCommand())) {
-            showRG();
-        }  else if (command.equals(actions[TGUIAction.ACT_VIEW_TLSADOT].getActionCommand())) {
-            showTLSA();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTDOT].getActionCommand())) {
-            showRGAut();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTPROJDOT].getActionCommand())) {
-            showRGAutProj();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].getActionCommand())) {
-            showModifiedAUTDOT();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_RG_DIPLODOCUS].getActionCommand())) {
-            showRGDiplodocus();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_LOT].getActionCommand())) {
-            showSavedRTLOTOS();
-        } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_DOT].getActionCommand())) {
-            showGGraph();
-        } else if (command.equals(actions[TGUIAction.ACT_SCREEN_CAPTURE].getActionCommand())) {
-            screenCapture();
-        } else if (command.equals(actions[TGUIAction.ACT_TTOOL_WINDOW_CAPTURE].getActionCommand())) {
-            windowCapture();
-        } else if (command.equals(actions[TGUIAction.ACT_DIAGRAM_CAPTURE].getActionCommand())) {
-            diagramCapture();
-        } else if (command.equals(actions[TGUIAction.ACT_SVG_DIAGRAM_CAPTURE].getActionCommand())) {
-            svgDiagramCapture();
-        } else if (command.equals(actions[TGUIAction.ACT_ALL_DIAGRAM_CAPTURE].getActionCommand())) {
-            allDiagramCapture();
-        } else if (command.equals(actions[TGUIAction.ACT_SELECTED_CAPTURE].getActionCommand())) {
-            selectedCapture();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC].getActionCommand())) {
-            generateDocumentation();
-        } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC_REQ].getActionCommand())) {
-            generateDocumentationReq();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTRIBUTES].getActionCommand())) {
-            toggleAttributes();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_DIPLO_ID].getActionCommand())) {
-            toggleDiploIDs();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_TEPE_ID].getActionCommand())) {
-            toggleTEPEIDs();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_AVATAR_ID].getActionCommand())) {
-            toggleAVATARIDs();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_GATES].getActionCommand())) {
-            toggleGates();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_SYNCHRO].getActionCommand())) {
-            toggleSynchro();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_CHANNELS].getActionCommand())) {
-            toggleChannels();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_EVENTS].getActionCommand())) {
-            toggleEvents();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_REQUESTS].getActionCommand())) {
-            toggleRequests();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_JAVA].getActionCommand())) {
-            toggleJava();
-        }  else if (command.equals(actions[TGUIAction.ACT_TOGGLE_INTERNAL_COMMENT].getActionCommand())) {
-            toggleInternalComment();
-        } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTR].getActionCommand())) {
-            toggleAttr();
-        } else if (command.equals(actions[TGUIAction.ACT_ENHANCE].getActionCommand())) {
-            enhanceDiagram();
-        } else if (command.equals(actions[TGUIAction.ACT_NC].getActionCommand())) {
-            NC();
-        } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_1].getActionCommand())) {
-            executeUserCommand(ConfigurationTTool.ExternalCommand1Host, ConfigurationTTool.ExternalCommand1);
-        } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_2].getActionCommand())) {
-            executeUserCommand(ConfigurationTTool.ExternalCommand2Host, ConfigurationTTool.ExternalCommand2);
-        } else if (command.equals(actions[TGUIAction.CONNECTOR_COMMENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMMENT);
-        } else if (command.equals(actions[TGUIAction.TCD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.UML_NOTE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UML_NOTE);
-
-            // AVATAR actions
-        } else if (command.equals(actions[TGUIAction.ACT_AVATAR_SIM].getActionCommand())) {
-            avatarSimulation();
-        } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_UPPAAL].getActionCommand())) {
-            avatarUPPAALVerification();
-        } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_PROVERIF].getActionCommand())) {
-            avatarProVerifVerification();
-        } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_STATICANALYSIS].getActionCommand())) {
-            avatarStaticAnalysis();
-        } else if (command.equals(actions[TGUIAction.ACT_AVATAR_EXECUTABLE_GENERATION].getActionCommand())) {
-            avatarExecutableCodeGeneration();
-
-            // AVATAR BD
-        } else if (command.equals(actions[TGUIAction.ABD_BLOCK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_BLOCK);
-        } else if (command.equals(actions[TGUIAction.ABD_CRYPTOBLOCK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_CRYPTOBLOCK);
-        } else if (command.equals(actions[TGUIAction.ABD_DATATYPE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_DATATYPE);
-        } else if (command.equals(actions[TGUIAction.ABD_COMPOSITION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_COMPOSITION_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ABD_PORT_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_PORT_CONNECTOR);
-
-            // AVATAR SMD
-        } else if (command.equals(actions[TGUIAction.ASMD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.ASMD_START].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.ASMD_STOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.ASMD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARSMD_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ASMD_SEND_SIGNAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SEND_SIGNAL);
-        } else if (command.equals(actions[TGUIAction.ASMD_RECEIVE_SIGNAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RECEIVE_SIGNAL);
-        } else if (command.equals(actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL);
-        } else if (command.equals(actions[TGUIAction.ASMD_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STATE);
-        } else if (command.equals(actions[TGUIAction.ASMD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.ASMD_RANDOM].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RANDOM);
-        } else if (command.equals(actions[TGUIAction.ASMD_SET_TIMER].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SET_TIMER);
-        } else if (command.equals(actions[TGUIAction.ASMD_RESET_TIMER].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RESET_TIMER);
-        } else if (command.equals(actions[TGUIAction.ASMD_EXPIRE_TIMER].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_EXPIRE_TIMER);
-
-            // AVATAR MAD
-        } else if (command.equals(actions[TGUIAction.AMAD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.AMAD_ASSUMPTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ASSUMPTION);
-        } else if (command.equals(actions[TGUIAction.AMAD_DIAGRAM_REFERENCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_DIAGRAM_REFERENCE);
-        } else if (command.equals(actions[TGUIAction.AMAD_ELEMENT_REFERENCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ELEMENT_REFERENCE);
-        } else if (command.equals(actions[TGUIAction.AMAD_COMPOSITION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_COMPOSITION_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.AMAD_VERSIONING_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_VERSIONING_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.AMAD_IMPACT_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_IMPACT_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.AMAD_MEET_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_MEET_CONNECTOR);
-
-            // AVATAR RD
-        } else if (command.equals(actions[TGUIAction.ARD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.ARD_REQUIREMENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_REQUIREMENT);
-        } else if (command.equals(actions[TGUIAction.ARD_PROPERTY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_PROPERTY);
-        } else if (command.equals(actions[TGUIAction.ARD_DERIVE_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_DERIVE_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ARD_REFINE_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_REFINE_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ARD_VERIFY_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_VERIFY_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ARD_COPY_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COPY_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ARD_COMPOSITION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COMPOSITION_CONNECTOR);
-
-            // AVATAR PD
-        } else if (command.equals(actions[TGUIAction.APD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.APD_BLOCK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BLOCK);
-        } else if (command.equals(actions[TGUIAction.APD_LOGICAL_CONSTRAINT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_LOGICAL_CONSTRAINT);
-        } else if (command.equals(actions[TGUIAction.APD_TEMPORAL_CONSTRAINT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_TEMPORAL_CONSTRAINT);
-        } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE);
-        } else if (command.equals(actions[TGUIAction.APD_SIGNAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_SIGNAL);
-        } else if (command.equals(actions[TGUIAction.APD_ALIAS].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ALIAS);
-        } else if (command.equals(actions[TGUIAction.APD_BOOLEQ].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BOOLEQ);
-        } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_SETTING].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE_SETTING);
-        } else if (command.equals(actions[TGUIAction.APD_PROPERTY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY);
-        } else if (command.equals(actions[TGUIAction.APD_PROPERTY_RELATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY_RELATION);
-        }
-
-        else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_ATTRIBUTE_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.APD_SIGNAL_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_SIGNAL_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.APD_PROPERTY_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_PROPERTY_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.APD_COMPOSITION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_COMPOSITION_CONNECTOR);
-
-            // AVATAR CD
-        } else if (command.equals(actions[TGUIAction.ACD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.ACD_BLOCK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_BLOCK);
-        } else if (command.equals(actions[TGUIAction.ACD_ACTOR_STICKMAN].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_STICKMAN);
-        } else if (command.equals(actions[TGUIAction.ACD_ACTOR_BOX].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_BOX);
-
-        } else if (command.equals(actions[TGUIAction.ACD_ASSOCIATION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_ASSOCIATION_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ACD_COMPOSITION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_COMPOSITION_CONNECTOR);
-
-            // AVATAR AD
-        } else if (command.equals(actions[TGUIAction.AAD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.AAD_ASSOCIATION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AAD_ASSOCIATION_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.AAD_START_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.AAD_STOP_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.AAD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.AAD_JUNCTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_JUNCTION);
-        } else if (command.equals(actions[TGUIAction.AAD_PARALLEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARALLEL);
-        } else if (command.equals(actions[TGUIAction.AAD_ACTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTION);
-        } else if (command.equals(actions[TGUIAction.AAD_ACTIVITY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTIVITY);
-        } else if (command.equals(actions[TGUIAction.AAD_STOP_FLOW].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_FLOW);
-        } else if (command.equals(actions[TGUIAction.AAD_SEND_SIGNAL_ACTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_SEND_SIGNAL_ACTION);
-        } else if (command.equals(actions[TGUIAction.AAD_ACCEPT_EVENT_ACTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACCEPT_EVENT_ACTION);
-        } else if (command.equals(actions[TGUIAction.AAD_PARTITION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARTITION);
-        } else if (command.equals(actions[TGUIAction.AAD_ALIGN_PARTITION].getActionCommand())) {
-            alignPartitions();
-            
-        // Avatar DD
-        } else if (command.equals(actions[TGUIAction.ADD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.ADD_LINK].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ADD_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ADD_CPUNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CPUNODE);
-        } else if (command.equals(actions[TGUIAction.ADD_BUSNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BUSNODE);
-        } else if (command.equals(actions[TGUIAction.ADD_BRIDGENODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BRIDGENODE);
-        }  else if (command.equals(actions[TGUIAction.ADD_TTYNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TTYNODE);
-        }  else if (command.equals(actions[TGUIAction.ADD_RAMNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_RAMNODE);
-        }  else if (command.equals(actions[TGUIAction.ADD_ROMNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ROMNODE);
-        }  else if (command.equals(actions[TGUIAction.ADD_DMANODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_DMANODE);
-            }  else if (command.equals(actions[TGUIAction.ADD_ICUNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ICUNODE);
-            }  else if (command.equals(actions[TGUIAction.ADD_COPROMWMRNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_COPROMWMRNODE);
-            }  else if (command.equals(actions[TGUIAction.ADD_TIMERNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TIMERNODE);
-        }  else if (command.equals(actions[TGUIAction.ADD_BLOCKARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ARTIFACT);
-        }  else if (command.equals(actions[TGUIAction.ADD_CHANNELARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CHANNELARTIFACT);
-
-        } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION);
-        } else if (command.equals(actions[TGUIAction.TCD_CONNECTOR_ATTRIBUTE].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ATTRIBUTE);
-        } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION_NAVIGATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION_NAVIGATION);
-        } else if (command.equals(actions[TGUIAction.TCD_NEW_TCLASS].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TCLASS);
-        } else if (command.equals(actions[TGUIAction.TCD_NEW_TOBJECT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TOBJECT);
-        } else if (command.equals(actions[TGUIAction.TCD_NEW_TDATA].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TDATA);
-        } else if (command.equals(actions[TGUIAction.TCD_PARALLEL_OPERATOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PARALLEL_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TCD_SYNCHRO_OPERATOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SYNCHRO_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TCD_INVOCATION_OPERATOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_INVOCATION_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TCD_SEQUENCE_OPERATOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SEQUENCE_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TCD_PREEMPTION_OPERATOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PREEMPTION_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.AD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.AD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_AD_DIAGRAM);
-        } else if (command.equals(actions[TGUIAction.AD_ACTION_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ACTION_STATE);
-        } else if (command.equals(actions[TGUIAction.AD_ARRAY_GET].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_GET);
-        } else if (command.equals(actions[TGUIAction.AD_ARRAY_SET].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_SET);
-        } else if (command.equals(actions[TGUIAction.AD_PARALLEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PARALLEL);
-        } else if (command.equals(actions[TGUIAction.AD_SEQUENCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_SEQUENCE);
-        } else if (command.equals(actions[TGUIAction.AD_PREEMPTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PREEMPTION);
-        } else if (command.equals(actions[TGUIAction.AD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.AD_START].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.AD_STOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.AD_JUNCTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_JUNCTION);
-        } else if (command.equals(actions[TGUIAction.AD_DETERMINISTIC_DELAY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DETERMINISTIC_DELAY);
-        } else if (command.equals(actions[TGUIAction.AD_NON_DETERMINISTIC_DELAY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_NON_DETERMINISTIC_DELAY);
-        } else if (command.equals(actions[TGUIAction.AD_DELAY_NON_DETERMINISTIC_DELAY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DELAY_NON_DETERMINISTIC_DELAY);
-        } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER);
-        } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER_WITH_LATENCY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER_WITH_LATENCY);
-        } else if (command.equals(actions[TGUIAction.AD_TIME_CAPTURE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_CAPTURE);
-        } else if (command.equals(actions[TGUIAction.IOD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.IOD_CONNECTOR].getActionCommand())) {
-            //TraceManager.addDev("Connector interaction");
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INTERACTION);
-        } else if (command.equals(actions[TGUIAction.IOD_START].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.IOD_STOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.IOD_PARALLEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PARALLEL);
-        } else if (command.equals(actions[TGUIAction.IOD_PREEMPTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PREEMPTION);
-        } else if (command.equals(actions[TGUIAction.IOD_SEQUENCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_SEQUENCE);
-        } else if (command.equals(actions[TGUIAction.IOD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.IOD_JUNCTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_JUNCTION);
-        } else if (command.equals(actions[TGUIAction.IOD_REF_SD].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_SD);
-        } else if (command.equals(actions[TGUIAction.IOD_REF_IOD].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_IOD);
-        } else if (command.equals(actions[TGUIAction.SD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.SD_INSTANCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_INSTANCE);
-        } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_SYNC].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_SYNC_SD);
-        } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_ASYNC].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_SD);
-        } else if (command.equals(actions[TGUIAction.SD_ABSOLUTE_TIME_CONSTRAINT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ABSOLUTE_TIME_CONSTRAINT);
-        } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_RELATIVE_TIME_CONSTRAINT);
-        } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_RELATIVE_TIME_SD);
-        } else if (command.equals(actions[TGUIAction.SD_ACTION_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ACTION_STATE);
-        } else if (command.equals(actions[TGUIAction.SD_GUARD].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_GUARD);
-        } else if (command.equals(actions[TGUIAction.SD_TIME_INTERVAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIME_INTERVAL);
-        } else if (command.equals(actions[TGUIAction.SD_TIMER_SETTING].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_SETTING);
-        } else if (command.equals(actions[TGUIAction.SD_TIMER_EXPIRATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_EXPIRATION);
-        } else if (command.equals(actions[TGUIAction.SD_TIMER_CANCELLATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_CANCELLATION);
-        } else if (command.equals(actions[TGUIAction.SD_COREGION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_COREGION);
-        } else if (command.equals(actions[TGUIAction.SD_ALIGN_INSTANCES].getActionCommand())) {
-            alignInstances();
-        } else if (command.equals(actions[TGUIAction.UCD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.UCD_ACTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTOR);
-        } else if (command.equals(actions[TGUIAction.UCD_ACTORBOX].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTORBOX);
-        } else if (command.equals(actions[TGUIAction.UCD_USECASE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_USECASE);
-        } else if (command.equals(actions[TGUIAction.UCD_BORDER].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_BORDER);
-        } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_ACTOR_UC].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ACTOR_UCD);
-        } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_INCLUDE].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INCLUDE_UCD);
-        } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_EXTEND].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EXTEND_UCD);
-        } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_SPECIA].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_SPECIA_UCD);
-        } else if (command.equals(actions[TGUIAction.TDD_LINK].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_DD);
-        } else if (command.equals(actions[TGUIAction.TDD_NODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_NODE);
-        } else if (command.equals(actions[TGUIAction.TDD_ARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_ARTIFACT);
-        } else if (command.equals(actions[TGUIAction.NCDD_LINK].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_NC);
-        } else if (command.equals(actions[TGUIAction.NCDD_EQNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_EQNODE);
-        } else if (command.equals(actions[TGUIAction.NCDD_SWITCHNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_SWITCHNODE);
-        } else if (command.equals(actions[TGUIAction.NCDD_TRAFFIC_ARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_TRAFFIC_ARTIFACT);
-        } else if (command.equals(actions[TGUIAction.NCDD_ROUTE_ARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_ROUTE_ARTIFACT);
-        } else if (command.equals(actions[TGUIAction.TMLTD_TASK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_TASK);
-        } else if (command.equals(actions[TGUIAction.EBRDD_START].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.EBRDD_STOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD);
-        } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR_ERC].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD_ERC);
-        } else if (command.equals(actions[TGUIAction.EBRDD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.EBRDD_ERC].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERC);
-        } else if (command.equals(actions[TGUIAction.EBRDD_ESO].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ESO);
-        } else if (command.equals(actions[TGUIAction.EBRDD_ERB].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERB);
-        } else if (command.equals(actions[TGUIAction.EBRDD_SEQUENCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_SEQUENCE);
-        } else if (command.equals(actions[TGUIAction.EBRDD_ACTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ACTION);
-        } else if (command.equals(actions[TGUIAction.EBRDD_FOR_LOOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_FOR_LOOP);
-        } else if (command.equals(actions[TGUIAction.EBRDD_VARIABLE_DECLARATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_VARIABLE_DECLARATION);
-        } else if (command.equals(actions[TGUIAction.TMLAD_START].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.TMLAD_STOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.TMLAD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLAD);
-        } else if (command.equals(actions[TGUIAction.TMLTD_ASSOC].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_ASSOCIATION_NAV);
-        } else if (command.equals(actions[TGUIAction.TMLTD_CHANNEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_CHANNEL_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TMLTD_REQ].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_REQUEST_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TMLTD_EVENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_EVENT_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TMLTD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_COMPOSITION_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TMLTD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.TMLAD_WRITE_CHANNEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WRITE_CHANNEL);
-        } else if (command.equals(actions[TGUIAction.TMLAD_SEND_REQUEST].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_REQUEST);
-        } else if (command.equals(actions[TGUIAction.TMLAD_READ_REQUEST_ARG].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_REQUEST_ARG);
-        } else if (command.equals(actions[TGUIAction.TMLAD_SEND_EVENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_EVENT);
-        } else if (command.equals(actions[TGUIAction.TMLAD_WAIT_EVENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WAIT_EVENT);
-        } else if (command.equals(actions[TGUIAction.TMLAD_NOTIFIED_EVENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_NOTIFIED_EVENT);
-        } else if (command.equals(actions[TGUIAction.TMLAD_READ_CHANNEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_CHANNEL);
-        }  else if (command.equals(actions[TGUIAction.TMLAD_ACTION_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_ACTION_STATE);
-        }  else if (command.equals(actions[TGUIAction.TMLAD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.TMLAD_EXECI].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI);
-        } else if (command.equals(actions[TGUIAction.TMLAD_EXECI_INTERVAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI_INTERVAL);
-        } else if (command.equals(actions[TGUIAction.TMLAD_EXECC].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC);
-        } else if (command.equals(actions[TGUIAction.TMLAD_EXECC_INTERVAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC_INTERVAL);
-        } else if (command.equals(actions[TGUIAction.TMLAD_DELAY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_DELAY);
-        } else if (command.equals(actions[TGUIAction.TMLAD_INTERVAL_DELAY].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_INTERVAL_DELAY);
-        } else if (command.equals(actions[TGUIAction.TMLAD_FOR_LOOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_LOOP);
-        } else if (command.equals(actions[TGUIAction.TMLAD_FOR_STATIC_LOOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_STATIC_LOOP);
-        } else if (command.equals(actions[TGUIAction.TMLAD_FOR_EVER_LOOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_EVER_LOOP);
-        } else if (command.equals(actions[TGUIAction.TMLAD_SEQUENCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEQUENCE);
-        } else if (command.equals(actions[TGUIAction.TMLAD_UNORDERED_SEQUENCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_UNORDERED_SEQUENCE);
-        } else if (command.equals(actions[TGUIAction.TMLAD_SELECT_EVT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SELECT_EVT);
-        } else if (command.equals(actions[TGUIAction.TMLAD_RANDOM].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_RANDOM);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_CCOMPONENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CCOMPONENT);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_CREMOTECOMPONENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CREMOTECOMPONENT);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_PCOMPONENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_PCOMPONENT);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_RCOMPONENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_RCOMPONENT);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_CPORT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CPORT);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_FORK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_FORK);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_JOIN].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_JOIN);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_COPORT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_COPORT);
-        } else if (command.equals(actions[TGUIAction.TMLCTD_PORT_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PORT_TMLC);
-
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_LINK].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_TMLARCHI);
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_CPUNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPUNODE);
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_BUSNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BUSNODE);
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_CPNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPNODE);
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_BRIDGENODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BRIDGENODE);
-        }  else if (command.equals(actions[TGUIAction.TMLARCHI_HWANODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_HWANODE);
-        }  else if (command.equals(actions[TGUIAction.TMLARCHI_MEMORYNODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_MEMORYNODE);
-        }  else if (command.equals(actions[TGUIAction.TMLARCHI_DMANODE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_DMANODE);
-        }  else if (command.equals(actions[TGUIAction.TMLARCHI_ARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_ARTIFACT);
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_COMMUNICATION_ARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_COMMUNICATION_ARTIFACT);
-        } else if (command.equals(actions[TGUIAction.TMLARCHI_PORT_ARTIFACT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_PORT_ARTIFACT);
-
-
-
-            // Communication patterns
-        } else if (command.equals(actions[TGUIAction.TMLCP_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.TMLCP_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLCP);
-        } else if (command.equals(actions[TGUIAction.TMLCP_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_CHOICE);
-        } else if (command.equals(actions[TGUIAction.TMLCP_FORK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FORK);
-        } else if (command.equals(actions[TGUIAction.TMLCP_JOIN].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JOIN);
-        } else if (command.equals(actions[TGUIAction.TMLCP_REF_CP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_CP);
-        } else if (command.equals(actions[TGUIAction.TMLCP_REF_SD].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_SD);
-        } else if (command.equals(actions[TGUIAction.TMLCP_START].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE);
-        } else if (command.equals(actions[TGUIAction.TMLCP_STOP].getActionCommand())) {
-            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.TMLSD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        } else if (command.equals(actions[TGUIAction.TMLSD_MESSAGE_ASYNC].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_TMLSD);
-        } else if (command.equals(actions[TGUIAction.TMLSD_STORAGE_INSTANCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_STORAGE_INSTANCE);
-        } else if (command.equals(actions[TGUIAction.TMLSD_CONTROLLER_INSTANCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_CONTROLLER_INSTANCE);
-        } else if (command.equals(actions[TGUIAction.TMLSD_TRANSFER_INSTANCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_TRANSFER_INSTANCE);
-        } else if (command.equals(actions[TGUIAction.TMLSD_ACTION_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_ACTION_STATE);
-
-
-            // Attack Tree Diagrams
-        } else if (command.equals(actions[TGUIAction.ATD_BLOCK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_BLOCK);
-        } else if (command.equals(actions[TGUIAction.ATD_ATTACK].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_ATTACK);
-        } else if (command.equals(actions[TGUIAction.ATD_CONSTRAINT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_CONSTRAINT);
-        } else if (command.equals(actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_COMPOSITION_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.ATD_ATTACK_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_ATTACK_CONNECTOR);
-
-            // TURTLE-OS
-        } else if (command.equals(actions[TGUIAction.TOS_TCLASS].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_TCLASS);
-        } else if (command.equals(actions[TGUIAction.TOS_CONNECTOR_ATTRIBUTE].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ATTRIBUTE);
-        } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION);
-        } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION_NAVIGATION].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION_NAVIGATION);
-        } else if (command.equals(actions[TGUIAction.TOS_CALL_OPERATOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_CALL_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TOS_EVT_OPERATOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_EVT_OPERATOR);
-        } else if (command.equals(actions[TGUIAction.TOSAD_ACTION_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_ACTION_STATE);
-        } else if (command.equals(actions[TGUIAction.TOSAD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.TOSAD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOSAD_CONNECTOR);
-        } else if (command.equals(actions[TGUIAction.TOSAD_INT_TIME_INTERVAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_INT_TIME_INTERVAL);
-        } else if (command.equals(actions[TGUIAction.TOSAD_JUNCTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_JUNCTION);
-        } else if (command.equals(actions[TGUIAction.TOSAD_START_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.TOSAD_STOP_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.TOSAD_TIME_INTERVAL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_TIME_INTERVAL);
-
-
-            // Ontologies
-        } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_DIAGRAM].getActionCommand())) {
-            generateOntologyForCurrentDiagram();
-        } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_SET_OF_DIAGRAMS].getActionCommand())) {
-            generateOntologyForCurrentSetOfDiagrams();
-        } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_ALL_DIAGRAMS].getActionCommand())) {
-            generateOntologyForAllDiagrams();
-
-            // Requirement diagrams
-        } else if (command.equals(actions[TGUIAction.TREQ_REQUIREMENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_REQUIREMENT);
-        } else if (command.equals(actions[TGUIAction.TREQ_OBSERVER].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_OBSERVER);
-        } else if (command.equals(actions[TGUIAction.TREQ_EBRDD].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_EBRDD);
-        } else if (command.equals(actions[TGUIAction.TREQ_DERIVE].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DERIVE_REQ);
-        } else if (command.equals(actions[TGUIAction.TREQ_COPY].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COPY_REQ);
-        } else if (command.equals(actions[TGUIAction.TREQ_COMPOSITION].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMPOSITION_REQ);
-        } else if (command.equals(actions[TGUIAction.TREQ_VERIFY].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_VERIFY_REQ);
-        } else if (command.equals(actions[TGUIAction.PROSMD_START].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_START_STATE);
-        } else if (command.equals(actions[TGUIAction.PROSMD_SENDMSG].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SENDMSG);
-        } else if (command.equals(actions[TGUIAction.PROSMD_GETMSG].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_GETMSG);
-        } else if (command.equals(actions[TGUIAction.PROSMD_CHOICE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_CHOICE);
-        } else if (command.equals(actions[TGUIAction.PROSMD_STOP].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STOP_STATE);
-        } else if (command.equals(actions[TGUIAction.PROSMD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROSMD);
-        } else if (command.equals(actions[TGUIAction.PROSMD_JUNCTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_JUNCTION);
-        } else if (command.equals(actions[TGUIAction.PROSMD_SUBMACHINE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SUBMACHINE);
-        } else if (command.equals(actions[TGUIAction.PROSMD_ACTION].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_ACTION);
-        } else if (command.equals(actions[TGUIAction.PROSMD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        }  else if (command.equals(actions[TGUIAction.PROSMD_PARALLEL].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_PARALLEL);
-        }  else if (command.equals(actions[TGUIAction.PROSMD_STATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STATE);
-        }  else if (command.equals(actions[TGUIAction.PROCSD_COMPONENT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_COMPONENT);
-            //Delegate ports removed, by Solange
-            /*
-              } else if (command.equals(actions[TGUIAction.PROCSD_DELEGATE_PORT].getActionCommand())) {
-              actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_DELEGATE_PORT);
-            */
-        } else if (command.equals(actions[TGUIAction.PROCSD_IN_PORT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_IN_PORT);
-        } else if (command.equals(actions[TGUIAction.PROCSD_OUT_PORT].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_OUT_PORT);
-        } else if (command.equals(actions[TGUIAction.PROCSD_EDIT].getActionCommand())) {
-            actionOnButton(TGComponentManager.EDIT, -1);
-        }  else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD);
-        }
-        else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_PORT_INTERFACE].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD_PORT_INTERFACE);}
-        else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_DELEGATE].getActionCommand())) {
-            actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DELEGATE_PROCSD);
-        }  else if (command.equals(actions[TGUIAction.PROCSD_INTERFCE].getActionCommand())) {
-            actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_INTERFACE);
-            // Command for the action created by Solange. Window appears.
-        }   else if (command.equals(actions[TGUIAction.PRUEBA_1].getActionCommand())) {
-            JOptionPane.showMessageDialog(frame, "In Port: Color CYAN\nOut Port: Color LIGHT GRAY", "Help color of the ports", JOptionPane.INFORMATION_MESSAGE);
-        }   else if (command.endsWith(".dot")) {
-            viewAutomata(command);
-        }
-    }
-
-    private  class PopupListener extends MouseAdapter /* popup menus onto tabs */ {
-        private MainGUI mgui;
-        private JPopupMenu menu;
-
-        private JMenuItem rename, remove, moveRight, moveLeft, newDesign, newAnalysis, newDeployment, newRequirement, newTMLDesign, newTMLComponentDesign, newTMLArchi, newProactiveDesign, newTURTLEOSDesign,
-            newNCDesign, sort, clone, newAttackTree, newAVATARBD, newAVATARRequirement, newMAD, newTMLCP, newTMLMethodo, newAvatarMethodo, newAVATARDD;
-        private JMenuItem newAVATARAnalysis;
-
-        public PopupListener(MainGUI _mgui) {
-            mgui = _mgui;
-            createMenu();
-        }
-
-        public void mousePressed(MouseEvent e) {
-            checkForPopup(e);
-        }
-        public void mouseReleased(MouseEvent e) {
-            checkForPopup(e);
-        }
-        public void mouseClicked(MouseEvent e) {
-            checkForPopup(e);
-        }
-
-        private void checkForPopup(MouseEvent e) {
-            if(e.isPopupTrigger()) {
-                Component c = e.getComponent();
-                //TraceManager.addDev("e =" + e + " Component=" + c);
-                updateMenu(mgui.getCurrentSelectedIndex());
-                menu.show(c, e.getX(), e.getY());
-            }
+    for(RunningInfo ri: runningIDs) {
+        if (ri.id == id.intValue()) {
+            runningIDs.remove(ri);
+            //TraceManager.addDev("Running id " + i +  " removed");
+            return;
         }
+    }
+    getCurrentTDiagramPanel().repaint();
+                         }
 
-        private void createMenu() {
-            rename = createMenuItem("Rename");
-            remove = createMenuItem("Remove");
-            moveLeft = createMenuItem("Move to the left");
-            moveRight = createMenuItem("Move to the right");
-            sort = createMenuItem("Sort");
-            clone = createMenuItem("Clone");
-            newAnalysis = createMenuItem("New TURTLE Analysis");
-            newDesign = createMenuItem("New TURTLE Design");
-            newDeployment = createMenuItem("New TURTLE Deployment");
-            newAttackTree = createMenuItem("New AVATAR Attack Tree");
-            newRequirement = createMenuItem("New TURTLE Requirement Diagram");
-            newTMLMethodo = createMenuItem("New DIPLODOCUS Methodology");
-            
-            newTMLDesign = createMenuItem("New DIPLODOCUS Design");
-            newTMLComponentDesign = createMenuItem("New Component-based DIPLODOCUS Design");
-            newTMLArchi = createMenuItem("New DIPLODOCUS Architecture");
-            newTMLCP = createMenuItem("New DIPLODOCUS Communication Pattern");
-            newProactiveDesign = createMenuItem("New Proactive Design");
-            newTURTLEOSDesign = createMenuItem("New TURTLE-OS Design");
-            newNCDesign = createMenuItem("New Network Calculus Design");
-            newMAD = createMenuItem("New AVATAR Modeling Assumptions Diagram");
-            newAVATARRequirement = createMenuItem("New AVATAR Requirement Diagrams");
-            newAVATARAnalysis = createMenuItem("New AVATAR Analysis");
-            newAVATARBD = createMenuItem("New AVATAR Design");
-            newAVATARDD = createMenuItem("New AVATAR Deployment Diagram");
-            newAvatarMethodo = createMenuItem("New AVATAR Methodology");
-
-            menu = new JPopupMenu("Views");
-            menu.add(moveLeft);
-            menu.add(moveRight);
-
-            menu.addSeparator();
-
-            menu.add(rename);
-            menu.add(remove);
-
-            menu.addSeparator();
+public synchronized void removeLoadId(int _id) {
+    if (loadIDs == null) {
+        return ;
+    }
 
-            menu.add(sort);
+    for(LoadInfo li: loadIDs) {
+        if (li.id == _id) {
+            loadIDs.remove(li);
+            //TraceManager.addDev("Running id " + i +  " removed");
+            return;
+        }
+    }
+    getCurrentTDiagramPanel().repaint();
+                         }
+
+public void toggleGates() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
+        //TraceManager.addDev("Toggle gates");
+        TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
+        tdcp.setGatesVisible(!tdcp.areGatesVisible());
+        tdcp.checkAllMySize();
+        tdcp.repaint();
+        changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
+
+public void toggleSynchro() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
+        //TraceManager.addDev("Toggle synchro");
+        TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
+        tdcp.setSynchroVisible(!tdcp.areSynchroVisible());
+        tdcp.checkAllMySize();
+        tdcp.repaint();
+        changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
+
+public void toggleJava() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if ((tdp != null) && (tdp instanceof TActivityDiagramPanel)){
+        //TraceManager.addDev("Toggle synchro");
+        TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp;
+        tadp.setJavaVisible(!tadp.isJavaVisible());
+        tadp.checkAllMySize();
+        tadp.repaint();
+        changeMade(tadp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
+
+public void toggleInternalComment() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null) {
+        tdp.setInternalCommentVisible((tdp.getInternalCommentVisible() + 1) % 3);
+        tdp.checkAllMySize();
+        tdp.repaint();
+        changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
 
-            menu.addSeparator();
+public void toggleAttr() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if (tdp != null){
+        //TraceManager.addDev("Toggle attributes");
+        tdp.setAttributes((tdp.getAttributeState() + 1) % 3);
+        tdp.checkAllMySize();
+        tdp.repaint();
+        changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
 
-            menu.add(clone);
+public void toggleChannels() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
+        //TraceManager.addDev("Toggle attributes");
+        TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
+        tmltdp.setChannelsVisible(!tmltdp.areChannelsVisible());
+        tmltdp.checkAllMySize();
+        tmltdp.repaint();
+        changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
+
+public void toggleEvents() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
+        //TraceManager.addDev("Toggle attributes");
+        TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
+        tmltdp.setEventsVisible(!tmltdp.areEventsVisible());
+        tmltdp.checkAllMySize();
+        tmltdp.repaint();
+        changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
+
+public void toggleRequests() {
+    TDiagramPanel tdp = getCurrentTDiagramPanel();
+    if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
+        //TraceManager.addDev("Toggle attributes");
+        TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
+        tmltdp.setRequestsVisible(!tmltdp.areRequestsVisible());
+        tmltdp.checkAllMySize();
+        tmltdp.repaint();
+        changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+    }
+}
+
+public boolean isAValidTabName(String name) {
+    return name.matches("((\\w)*(\\s)*)*");
+}
+
+
+
+public void windowClosing(WindowEvent e) {
+    //frame.setVisible(false);
+    quitApplication();
+}
+
+public void windowClosed(WindowEvent e) {
+}
+
+public void windowOpened(WindowEvent e) {
+}
+
+public void windowIconified(WindowEvent e) {
+}
+
+public void windowDeiconified(WindowEvent e) {
+}
+
+public void windowActivated(WindowEvent e) {
+}
+
+public void windowDeactivated(WindowEvent e) {
+}
+
+
+// TGUIACtions Event listener
+
+public void keyTyped(KeyEvent e) {
+    TraceManager.addDev("KEY TYPED");
+}
+
+public void keyPressed(KeyEvent e) {
+    TraceManager.addDev("KEY PRESSED: ");
+}
+
+public void keyReleased(KeyEvent e) {
+    TraceManager.addDev("KEY RELEASED: ");
+}
+
+public void actionPerformed(ActionEvent evt)  {
+    String command = evt.getActionCommand();
+    //TraceManager.addDev("Command:" + command);
+    TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+    if (tdp1 != null) {
+        //TraceManager.addDev("Stop Adding connector in maingui");
+        tdp1.stopAddingConnector();
+    }
+
+
+    // Compare the action command to the known actions.
+    if (command.equals(actions[TGUIAction.ACT_NEW].getActionCommand()))  {
+        newProject();
+    } else if (command.equals(actions[TGUIAction.ACT_NEW_DESIGN].getActionCommand())) {
+        newDesign();
+    } else if (command.equals(actions[TGUIAction.ACT_NEW_ANALYSIS].getActionCommand())) {
+        newAnalysis();
+    } else if (command.equals(actions[TGUIAction.ACT_OPEN].getActionCommand())) {
+        openProject();
+    } else if (command.equals(actions[TGUIAction.ACT_MERGE].getActionCommand())) {
+        mergeProject();
+    } else if (command.equals(actions[TGUIAction.ACT_OPEN_LAST].getActionCommand())) {
+        openLastProject();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE].getActionCommand())) {
+        saveProject();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_AS].getActionCommand())) {
+        saveAsProject();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_TIF].getActionCommand())) {
+        saveTIF();
+    } else if (command.equals(actions[TGUIAction.ACT_OPEN_TIF].getActionCommand())) {
+        openTIF();
+    } else if (command.equals(actions[TGUIAction.ACT_OPEN_SD].getActionCommand())) {
+        openSD();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_LOTOS].getActionCommand())) {
+        saveLastLotos();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_DTA].getActionCommand())) {
+        saveLastDTA();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_RG].getActionCommand())) {
+        saveLastRG();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_TLSA].getActionCommand())) {
+        saveLastTLSA();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUT].getActionCommand())) {
+        saveLastRGAUT();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTPROJ].getActionCommand())) {
+        saveLastRGAUTProj();
+    } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTMODIFIED].getActionCommand())) {
+        saveLastModifiedRG();
+    } else if (command.equals(actions[TGUIAction.ACT_EXPORT_LIB].getActionCommand())) {
+        exportLibrary();
+    } else if (command.equals(actions[TGUIAction.ACT_IMPORT_LIB].getActionCommand())) {
+        importLibrary();
+    } else if (command.equals(actions[TGUIAction.ACT_QUIT].getActionCommand())) {
+        quitApplication();
+    } else if (command.equals(actions[TGUIAction.ACT_CUT].getActionCommand())) {
+        cut();
+    } else if (command.equals(actions[TGUIAction.ACT_COPY].getActionCommand())) {
+        copy();
+    } else if (command.equals(actions[TGUIAction.ACT_PASTE].getActionCommand())) {
+        paste();
+    } else if (command.equals(actions[TGUIAction.ACT_DELETE].getActionCommand())) {
+        delete();
+    } else if (command.equals(actions[TGUIAction.ACT_ZOOM_MORE].getActionCommand())) {
+        zoomMore();
+    } else if (command.equals(actions[TGUIAction.ACT_ZOOM_LESS].getActionCommand())) {
+        zoomLess();
+    } else if (command.equals(actions[TGUIAction.ACT_BACKWARD].getActionCommand())) {
+        backward();
+    } else if (command.equals(actions[TGUIAction.ACT_FORWARD].getActionCommand())) {
+        forward();
+    } else if (command.equals(actions[TGUIAction.ACT_FIRST_DIAG].getActionCommand())) {
+        firstDiag();
+    } else if (command.equals(actions[TGUIAction.ACT_BACK_DIAG].getActionCommand())) {
+        backDiag();
+    } else if (command.equals(actions[TGUIAction.ACT_NEXT_DIAG].getActionCommand())) {
+        nextDiag();
+    }  else if (command.equals(actions[TGUIAction.ACT_LAST_DIAG].getActionCommand())) {
+        lastDiag();
+    } else if (command.equals(actions[TGUIAction.ACT_ABOUT].getActionCommand())) {
+        aboutVersion();
+    }
+    //@author: Huy TRUONG.
+    //open a external search box for ACT_EXTERNAL_SEARCH
+    else if (command.equals(actions[TGUIAction.ACT_EXTERNAL_SEARCH].getActionCommand())) {
+        showExternalSearch();}
+    else if (command.equals(actions[TGUIAction.ACT_INTERNAL_SEARCH].getActionCommand())) {
+        doInternalSearch();
+        //--
 
-            menu.addSeparator();
+    } else if (command.equals(actions[TGUIAction.ACT_TTOOL_CONFIGURATION].getActionCommand())) {
+        showTToolConfiguration();
+    } else if (command.equals(actions[TGUIAction.ACT_TURTLE_WEBSITE].getActionCommand())) {
+        aboutTURTLE();
+    } else if (command.equals(actions[TGUIAction.ACT_TURTLE_DOCUMENTATION].getActionCommand())) {
+        helpTURTLE();
+    } else if (command.equals(actions[TGUIAction.ACT_DIPLODOCUS_DOCUMENTATION].getActionCommand())) {
+        helpDIPLODOCUS();
+    } else if (command.equals(actions[TGUIAction.ACT_MODEL_CHECKING].getActionCommand())) {
+        modelChecking();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_RTLOTOS].getActionCommand())) {
+        generateRTLOTOS();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_LOTOS].getActionCommand())) {
+        generateLOTOS();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_AUT].getActionCommand())) {
+        generateAUT();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_AUTS].getActionCommand())) {
+        generateAUTS();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_UPPAAL].getActionCommand())) {
+        generateUPPAAL();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_PROVERIF].getActionCommand())) {
+        generateProVerif();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_JAVA].getActionCommand())) {
+        generateJava();
+    } else if (command.equals(actions[TGUIAction.ACT_SIMU_JAVA].getActionCommand())) {
+        simuJava();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_SYSTEMC].getActionCommand())) {
+        generateSystemC();
+    } else if (command.equals(actions[TGUIAction.ACT_SIMU_SYSTEMC].getActionCommand())) {
+        interactiveSimulationSystemC();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_TMLTXT].getActionCommand())) {
+        generateTMLTxt();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_CCODE].getActionCommand())) {
+        generateCcode();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_DESIGN].getActionCommand())) {
+        generateDesign();
+    } else if (command.equals(actions[TGUIAction.ACT_CHECKCODE].getActionCommand())) {
+        checkCode();
+    } else if (command.equals(actions[TGUIAction.ACT_SIMULATION].getActionCommand())) {
+        simulation();
+    } else if (command.equals(actions[TGUIAction.ACT_VALIDATION].getActionCommand())) {
+        formalValidation();
+    } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_LOTOS_RG].getActionCommand())) {
+        oneClickLOTOSRG();
+    } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_RTLOTOS_RG].getActionCommand())) {
+        oneClickRTLOTOSRG();
+    } else if (command.equals(actions[TGUIAction.ACT_PROJECTION].getActionCommand())) {
+        projection();
+    }  else if (command.equals(actions[TGUIAction.ACT_GRAPH_MODIFICATION].getActionCommand())) {
+        modifyGraph();
+    } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION].getActionCommand())) {
+        bisimulation();
+    } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION_CADP].getActionCommand())) {
+        bisimulationCADP();
+    } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_AUT].getActionCommand())) {
+        seekDeadlockAUT();
+    } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_SAVED_AUT].getActionCommand())) {
+        seekDeadlockSavedAUT();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUT].getActionCommand())) {
+        statAUT();
+    }  else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTDIPLODOCUS].getActionCommand())) {
+        statAUTDiplodocus();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTPROJ].getActionCommand())) {
+        statAUTProj();
+    }  else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_SAVED_AUT].getActionCommand())) {
+        statSavedAUT();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUT].getActionCommand())) {
+        pmAUT();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUTPROJ].getActionCommand())) {
+        pmAUTProj();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_SAVED_AUT].getActionCommand())) {
+        pmSavedAUT();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_RTLOTOS].getActionCommand())) {
+        showFormalSpecification();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_JAVA].getActionCommand())) {
+        showJavaCode();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES].getActionCommand())) {
+        showBirdEyesView();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES_EMB].getActionCommand())) {
+        showEmbeddedBirdEyesView();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_WAVE].getActionCommand())) {
+        showWave();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_SUGGESTED_DESIGN].getActionCommand())) {
+        showSuggestedDesign();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM].getActionCommand())) {
+        showSimulationTrace();
+    }  else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM_CHRONO].getActionCommand())) {
+        showSimulationTraceChrono();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_DTADOT].getActionCommand())) {
+        showDTA();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGDOT].getActionCommand())) {
+        showRG();
+    }  else if (command.equals(actions[TGUIAction.ACT_VIEW_TLSADOT].getActionCommand())) {
+        showTLSA();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTDOT].getActionCommand())) {
+        showRGAut();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTPROJDOT].getActionCommand())) {
+        showRGAutProj();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].getActionCommand())) {
+        showModifiedAUTDOT();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_RG_DIPLODOCUS].getActionCommand())) {
+        showRGDiplodocus();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_LOT].getActionCommand())) {
+        showSavedRTLOTOS();
+    } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_DOT].getActionCommand())) {
+        showGGraph();
+    } else if (command.equals(actions[TGUIAction.ACT_SCREEN_CAPTURE].getActionCommand())) {
+        screenCapture();
+    } else if (command.equals(actions[TGUIAction.ACT_TTOOL_WINDOW_CAPTURE].getActionCommand())) {
+        windowCapture();
+    } else if (command.equals(actions[TGUIAction.ACT_DIAGRAM_CAPTURE].getActionCommand())) {
+        diagramCapture();
+    } else if (command.equals(actions[TGUIAction.ACT_SVG_DIAGRAM_CAPTURE].getActionCommand())) {
+        svgDiagramCapture();
+    } else if (command.equals(actions[TGUIAction.ACT_ALL_DIAGRAM_CAPTURE].getActionCommand())) {
+        allDiagramCapture();
+    } else if (command.equals(actions[TGUIAction.ACT_SELECTED_CAPTURE].getActionCommand())) {
+        selectedCapture();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC].getActionCommand())) {
+        generateDocumentation();
+    } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC_REQ].getActionCommand())) {
+        generateDocumentationReq();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTRIBUTES].getActionCommand())) {
+        toggleAttributes();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_DIPLO_ID].getActionCommand())) {
+        toggleDiploIDs();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_TEPE_ID].getActionCommand())) {
+        toggleTEPEIDs();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_AVATAR_ID].getActionCommand())) {
+        toggleAVATARIDs();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_GATES].getActionCommand())) {
+        toggleGates();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_SYNCHRO].getActionCommand())) {
+        toggleSynchro();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_CHANNELS].getActionCommand())) {
+        toggleChannels();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_EVENTS].getActionCommand())) {
+        toggleEvents();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_REQUESTS].getActionCommand())) {
+        toggleRequests();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_JAVA].getActionCommand())) {
+        toggleJava();
+    }  else if (command.equals(actions[TGUIAction.ACT_TOGGLE_INTERNAL_COMMENT].getActionCommand())) {
+        toggleInternalComment();
+    } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTR].getActionCommand())) {
+        toggleAttr();
+    } else if (command.equals(actions[TGUIAction.ACT_ENHANCE].getActionCommand())) {
+        enhanceDiagram();
+    } else if (command.equals(actions[TGUIAction.ACT_NC].getActionCommand())) {
+        NC();
+    } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_1].getActionCommand())) {
+        executeUserCommand(ConfigurationTTool.ExternalCommand1Host, ConfigurationTTool.ExternalCommand1);
+    } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_2].getActionCommand())) {
+        executeUserCommand(ConfigurationTTool.ExternalCommand2Host, ConfigurationTTool.ExternalCommand2);
+    } else if (command.equals(actions[TGUIAction.CONNECTOR_COMMENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMMENT);
+    } else if (command.equals(actions[TGUIAction.TCD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.UML_NOTE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UML_NOTE);
+
+        // AVATAR actions
+    } else if (command.equals(actions[TGUIAction.ACT_AVATAR_SIM].getActionCommand())) {
+        avatarSimulation();
+    } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_UPPAAL].getActionCommand())) {
+        avatarUPPAALVerification();
+    } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_PROVERIF].getActionCommand())) {
+        avatarProVerifVerification();
+    } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_STATICANALYSIS].getActionCommand())) {
+        avatarStaticAnalysis();
+    } else if (command.equals(actions[TGUIAction.ACT_AVATAR_EXECUTABLE_GENERATION].getActionCommand())) {
+        avatarExecutableCodeGeneration();
+
+        // AVATAR BD
+    } else if (command.equals(actions[TGUIAction.ABD_BLOCK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_BLOCK);
+    } else if (command.equals(actions[TGUIAction.ABD_CRYPTOBLOCK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_CRYPTOBLOCK);
+    } else if (command.equals(actions[TGUIAction.ABD_DATATYPE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_DATATYPE);
+    } else if (command.equals(actions[TGUIAction.ABD_COMPOSITION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_COMPOSITION_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ABD_PORT_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_PORT_CONNECTOR);
+
+        // AVATAR SMD
+    } else if (command.equals(actions[TGUIAction.ASMD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.ASMD_START].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.ASMD_STOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.ASMD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARSMD_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ASMD_SEND_SIGNAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SEND_SIGNAL);
+    } else if (command.equals(actions[TGUIAction.ASMD_RECEIVE_SIGNAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RECEIVE_SIGNAL);
+    } else if (command.equals(actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL);
+    } else if (command.equals(actions[TGUIAction.ASMD_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STATE);
+    } else if (command.equals(actions[TGUIAction.ASMD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.ASMD_RANDOM].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RANDOM);
+    } else if (command.equals(actions[TGUIAction.ASMD_SET_TIMER].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SET_TIMER);
+    } else if (command.equals(actions[TGUIAction.ASMD_RESET_TIMER].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RESET_TIMER);
+    } else if (command.equals(actions[TGUIAction.ASMD_EXPIRE_TIMER].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_EXPIRE_TIMER);
+
+        // AVATAR MAD
+    } else if (command.equals(actions[TGUIAction.AMAD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.AMAD_ASSUMPTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ASSUMPTION);
+    } else if (command.equals(actions[TGUIAction.AMAD_DIAGRAM_REFERENCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_DIAGRAM_REFERENCE);
+    } else if (command.equals(actions[TGUIAction.AMAD_ELEMENT_REFERENCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ELEMENT_REFERENCE);
+    } else if (command.equals(actions[TGUIAction.AMAD_COMPOSITION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_COMPOSITION_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.AMAD_VERSIONING_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_VERSIONING_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.AMAD_IMPACT_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_IMPACT_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.AMAD_MEET_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_MEET_CONNECTOR);
+
+        // AVATAR RD
+    } else if (command.equals(actions[TGUIAction.ARD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.ARD_REQUIREMENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_REQUIREMENT);
+    } else if (command.equals(actions[TGUIAction.ARD_PROPERTY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_PROPERTY);
+    } else if (command.equals(actions[TGUIAction.ARD_DERIVE_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_DERIVE_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ARD_REFINE_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_REFINE_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ARD_VERIFY_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_VERIFY_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ARD_COPY_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COPY_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ARD_COMPOSITION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COMPOSITION_CONNECTOR);
+
+        // AVATAR PD
+    } else if (command.equals(actions[TGUIAction.APD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.APD_BLOCK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BLOCK);
+    } else if (command.equals(actions[TGUIAction.APD_LOGICAL_CONSTRAINT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_LOGICAL_CONSTRAINT);
+    } else if (command.equals(actions[TGUIAction.APD_TEMPORAL_CONSTRAINT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_TEMPORAL_CONSTRAINT);
+    } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE);
+    } else if (command.equals(actions[TGUIAction.APD_SIGNAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_SIGNAL);
+    } else if (command.equals(actions[TGUIAction.APD_ALIAS].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ALIAS);
+    } else if (command.equals(actions[TGUIAction.APD_BOOLEQ].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BOOLEQ);
+    } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_SETTING].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE_SETTING);
+    } else if (command.equals(actions[TGUIAction.APD_PROPERTY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY);
+    } else if (command.equals(actions[TGUIAction.APD_PROPERTY_RELATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY_RELATION);
+    }
+
+    else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_ATTRIBUTE_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.APD_SIGNAL_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_SIGNAL_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.APD_PROPERTY_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_PROPERTY_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.APD_COMPOSITION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_COMPOSITION_CONNECTOR);
+
+        // AVATAR CD
+    } else if (command.equals(actions[TGUIAction.ACD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.ACD_BLOCK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_BLOCK);
+    } else if (command.equals(actions[TGUIAction.ACD_ACTOR_STICKMAN].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_STICKMAN);
+    } else if (command.equals(actions[TGUIAction.ACD_ACTOR_BOX].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_BOX);
+
+    } else if (command.equals(actions[TGUIAction.ACD_ASSOCIATION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_ASSOCIATION_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ACD_COMPOSITION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_COMPOSITION_CONNECTOR);
+
+        // AVATAR AD
+    } else if (command.equals(actions[TGUIAction.AAD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.AAD_ASSOCIATION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AAD_ASSOCIATION_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.AAD_START_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.AAD_STOP_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.AAD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.AAD_JUNCTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_JUNCTION);
+    } else if (command.equals(actions[TGUIAction.AAD_PARALLEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARALLEL);
+    } else if (command.equals(actions[TGUIAction.AAD_ACTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTION);
+    } else if (command.equals(actions[TGUIAction.AAD_ACTIVITY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTIVITY);
+    } else if (command.equals(actions[TGUIAction.AAD_STOP_FLOW].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_FLOW);
+    } else if (command.equals(actions[TGUIAction.AAD_SEND_SIGNAL_ACTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_SEND_SIGNAL_ACTION);
+    } else if (command.equals(actions[TGUIAction.AAD_ACCEPT_EVENT_ACTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACCEPT_EVENT_ACTION);
+    } else if (command.equals(actions[TGUIAction.AAD_PARTITION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARTITION);
+    } else if (command.equals(actions[TGUIAction.AAD_ALIGN_PARTITION].getActionCommand())) {
+        alignPartitions();
 
-            if (!avatarOnly) {
+        // Avatar DD
+    } else if (command.equals(actions[TGUIAction.ADD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.ADD_LINK].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ADD_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ADD_CPUNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CPUNODE);
+    } else if (command.equals(actions[TGUIAction.ADD_BUSNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BUSNODE);
+    } else if (command.equals(actions[TGUIAction.ADD_BRIDGENODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BRIDGENODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_TTYNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TTYNODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_RAMNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_RAMNODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_ROMNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ROMNODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_DMANODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_DMANODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_ICUNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ICUNODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_COPROMWMRNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_COPROMWMRNODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_TIMERNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TIMERNODE);
+    }  else if (command.equals(actions[TGUIAction.ADD_BLOCKARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ARTIFACT);
+    }  else if (command.equals(actions[TGUIAction.ADD_CHANNELARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CHANNELARTIFACT);
+
+    } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION);
+    } else if (command.equals(actions[TGUIAction.TCD_CONNECTOR_ATTRIBUTE].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ATTRIBUTE);
+    } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION_NAVIGATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION_NAVIGATION);
+    } else if (command.equals(actions[TGUIAction.TCD_NEW_TCLASS].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TCLASS);
+    } else if (command.equals(actions[TGUIAction.TCD_NEW_TOBJECT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TOBJECT);
+    } else if (command.equals(actions[TGUIAction.TCD_NEW_TDATA].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TDATA);
+    } else if (command.equals(actions[TGUIAction.TCD_PARALLEL_OPERATOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PARALLEL_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TCD_SYNCHRO_OPERATOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SYNCHRO_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TCD_INVOCATION_OPERATOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_INVOCATION_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TCD_SEQUENCE_OPERATOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SEQUENCE_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TCD_PREEMPTION_OPERATOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PREEMPTION_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.AD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.AD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_AD_DIAGRAM);
+    } else if (command.equals(actions[TGUIAction.AD_ACTION_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ACTION_STATE);
+    } else if (command.equals(actions[TGUIAction.AD_ARRAY_GET].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_GET);
+    } else if (command.equals(actions[TGUIAction.AD_ARRAY_SET].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_SET);
+    } else if (command.equals(actions[TGUIAction.AD_PARALLEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PARALLEL);
+    } else if (command.equals(actions[TGUIAction.AD_SEQUENCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_SEQUENCE);
+    } else if (command.equals(actions[TGUIAction.AD_PREEMPTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PREEMPTION);
+    } else if (command.equals(actions[TGUIAction.AD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.AD_START].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.AD_STOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.AD_JUNCTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_JUNCTION);
+    } else if (command.equals(actions[TGUIAction.AD_DETERMINISTIC_DELAY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DETERMINISTIC_DELAY);
+    } else if (command.equals(actions[TGUIAction.AD_NON_DETERMINISTIC_DELAY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_NON_DETERMINISTIC_DELAY);
+    } else if (command.equals(actions[TGUIAction.AD_DELAY_NON_DETERMINISTIC_DELAY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DELAY_NON_DETERMINISTIC_DELAY);
+    } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER);
+    } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER_WITH_LATENCY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER_WITH_LATENCY);
+    } else if (command.equals(actions[TGUIAction.AD_TIME_CAPTURE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_CAPTURE);
+    } else if (command.equals(actions[TGUIAction.IOD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.IOD_CONNECTOR].getActionCommand())) {
+        //TraceManager.addDev("Connector interaction");
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INTERACTION);
+    } else if (command.equals(actions[TGUIAction.IOD_START].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.IOD_STOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.IOD_PARALLEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PARALLEL);
+    } else if (command.equals(actions[TGUIAction.IOD_PREEMPTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PREEMPTION);
+    } else if (command.equals(actions[TGUIAction.IOD_SEQUENCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_SEQUENCE);
+    } else if (command.equals(actions[TGUIAction.IOD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.IOD_JUNCTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_JUNCTION);
+    } else if (command.equals(actions[TGUIAction.IOD_REF_SD].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_SD);
+    } else if (command.equals(actions[TGUIAction.IOD_REF_IOD].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_IOD);
+    } else if (command.equals(actions[TGUIAction.SD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.SD_INSTANCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_INSTANCE);
+    } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_SYNC].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_SYNC_SD);
+    } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_ASYNC].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_SD);
+    } else if (command.equals(actions[TGUIAction.SD_ABSOLUTE_TIME_CONSTRAINT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ABSOLUTE_TIME_CONSTRAINT);
+    } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_RELATIVE_TIME_CONSTRAINT);
+    } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_RELATIVE_TIME_SD);
+    } else if (command.equals(actions[TGUIAction.SD_ACTION_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ACTION_STATE);
+    } else if (command.equals(actions[TGUIAction.SD_GUARD].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_GUARD);
+    } else if (command.equals(actions[TGUIAction.SD_TIME_INTERVAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIME_INTERVAL);
+    } else if (command.equals(actions[TGUIAction.SD_TIMER_SETTING].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_SETTING);
+    } else if (command.equals(actions[TGUIAction.SD_TIMER_EXPIRATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_EXPIRATION);
+    } else if (command.equals(actions[TGUIAction.SD_TIMER_CANCELLATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_CANCELLATION);
+    } else if (command.equals(actions[TGUIAction.SD_COREGION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_COREGION);
+    } else if (command.equals(actions[TGUIAction.SD_ALIGN_INSTANCES].getActionCommand())) {
+        alignInstances();
+    } else if (command.equals(actions[TGUIAction.UCD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.UCD_ACTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTOR);
+    } else if (command.equals(actions[TGUIAction.UCD_ACTORBOX].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTORBOX);
+    } else if (command.equals(actions[TGUIAction.UCD_USECASE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_USECASE);
+    } else if (command.equals(actions[TGUIAction.UCD_BORDER].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_BORDER);
+    } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_ACTOR_UC].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ACTOR_UCD);
+    } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_INCLUDE].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INCLUDE_UCD);
+    } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_EXTEND].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EXTEND_UCD);
+    } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_SPECIA].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_SPECIA_UCD);
+    } else if (command.equals(actions[TGUIAction.TDD_LINK].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_DD);
+    } else if (command.equals(actions[TGUIAction.TDD_NODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_NODE);
+    } else if (command.equals(actions[TGUIAction.TDD_ARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_ARTIFACT);
+    } else if (command.equals(actions[TGUIAction.NCDD_LINK].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_NC);
+    } else if (command.equals(actions[TGUIAction.NCDD_EQNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_EQNODE);
+    } else if (command.equals(actions[TGUIAction.NCDD_SWITCHNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_SWITCHNODE);
+    } else if (command.equals(actions[TGUIAction.NCDD_TRAFFIC_ARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_TRAFFIC_ARTIFACT);
+    } else if (command.equals(actions[TGUIAction.NCDD_ROUTE_ARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_ROUTE_ARTIFACT);
+    } else if (command.equals(actions[TGUIAction.TMLTD_TASK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_TASK);
+    } else if (command.equals(actions[TGUIAction.EBRDD_START].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.EBRDD_STOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD);
+    } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR_ERC].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD_ERC);
+    } else if (command.equals(actions[TGUIAction.EBRDD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.EBRDD_ERC].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERC);
+    } else if (command.equals(actions[TGUIAction.EBRDD_ESO].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ESO);
+    } else if (command.equals(actions[TGUIAction.EBRDD_ERB].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERB);
+    } else if (command.equals(actions[TGUIAction.EBRDD_SEQUENCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_SEQUENCE);
+    } else if (command.equals(actions[TGUIAction.EBRDD_ACTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ACTION);
+    } else if (command.equals(actions[TGUIAction.EBRDD_FOR_LOOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_FOR_LOOP);
+    } else if (command.equals(actions[TGUIAction.EBRDD_VARIABLE_DECLARATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_VARIABLE_DECLARATION);
+    } else if (command.equals(actions[TGUIAction.TMLAD_START].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.TMLAD_STOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.TMLAD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLAD);
+    } else if (command.equals(actions[TGUIAction.TMLTD_ASSOC].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_ASSOCIATION_NAV);
+    } else if (command.equals(actions[TGUIAction.TMLTD_CHANNEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_CHANNEL_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TMLTD_REQ].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_REQUEST_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TMLTD_EVENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_EVENT_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TMLTD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_COMPOSITION_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TMLTD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.TMLAD_WRITE_CHANNEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WRITE_CHANNEL);
+    } else if (command.equals(actions[TGUIAction.TMLAD_SEND_REQUEST].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_REQUEST);
+    } else if (command.equals(actions[TGUIAction.TMLAD_READ_REQUEST_ARG].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_REQUEST_ARG);
+    } else if (command.equals(actions[TGUIAction.TMLAD_SEND_EVENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_EVENT);
+    } else if (command.equals(actions[TGUIAction.TMLAD_WAIT_EVENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WAIT_EVENT);
+    } else if (command.equals(actions[TGUIAction.TMLAD_NOTIFIED_EVENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_NOTIFIED_EVENT);
+    } else if (command.equals(actions[TGUIAction.TMLAD_READ_CHANNEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_CHANNEL);
+    }  else if (command.equals(actions[TGUIAction.TMLAD_ACTION_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_ACTION_STATE);
+    }  else if (command.equals(actions[TGUIAction.TMLAD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.TMLAD_EXECI].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI);
+    } else if (command.equals(actions[TGUIAction.TMLAD_EXECI_INTERVAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI_INTERVAL);
+    } else if (command.equals(actions[TGUIAction.TMLAD_EXECC].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC);
+    } else if (command.equals(actions[TGUIAction.TMLAD_EXECC_INTERVAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC_INTERVAL);
+    } else if (command.equals(actions[TGUIAction.TMLAD_DELAY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_DELAY);
+    } else if (command.equals(actions[TGUIAction.TMLAD_INTERVAL_DELAY].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_INTERVAL_DELAY);
+    } else if (command.equals(actions[TGUIAction.TMLAD_FOR_LOOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_LOOP);
+    } else if (command.equals(actions[TGUIAction.TMLAD_FOR_STATIC_LOOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_STATIC_LOOP);
+    } else if (command.equals(actions[TGUIAction.TMLAD_FOR_EVER_LOOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_EVER_LOOP);
+    } else if (command.equals(actions[TGUIAction.TMLAD_SEQUENCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEQUENCE);
+    } else if (command.equals(actions[TGUIAction.TMLAD_UNORDERED_SEQUENCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_UNORDERED_SEQUENCE);
+    } else if (command.equals(actions[TGUIAction.TMLAD_SELECT_EVT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SELECT_EVT);
+    } else if (command.equals(actions[TGUIAction.TMLAD_RANDOM].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_RANDOM);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_CCOMPONENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CCOMPONENT);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_CREMOTECOMPONENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CREMOTECOMPONENT);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_PCOMPONENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_PCOMPONENT);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_RCOMPONENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_RCOMPONENT);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_CPORT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CPORT);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_FORK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_FORK);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_JOIN].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_JOIN);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_COPORT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_COPORT);
+    } else if (command.equals(actions[TGUIAction.TMLCTD_PORT_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PORT_TMLC);
+
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_LINK].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_TMLARCHI);
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_CPUNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPUNODE);
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_BUSNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BUSNODE);
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_CPNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPNODE);
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_BRIDGENODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BRIDGENODE);
+    }  else if (command.equals(actions[TGUIAction.TMLARCHI_HWANODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_HWANODE);
+    }  else if (command.equals(actions[TGUIAction.TMLARCHI_MEMORYNODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_MEMORYNODE);
+    }  else if (command.equals(actions[TGUIAction.TMLARCHI_DMANODE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_DMANODE);
+    }  else if (command.equals(actions[TGUIAction.TMLARCHI_ARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_ARTIFACT);
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_COMMUNICATION_ARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_COMMUNICATION_ARTIFACT);
+    } else if (command.equals(actions[TGUIAction.TMLARCHI_PORT_ARTIFACT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_PORT_ARTIFACT);
+
+
+
+        // Communication patterns
+    } else if (command.equals(actions[TGUIAction.TMLCP_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.TMLCP_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLCP);
+    } else if (command.equals(actions[TGUIAction.TMLCP_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_CHOICE);
+    } else if (command.equals(actions[TGUIAction.TMLCP_FORK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FORK);
+    } else if (command.equals(actions[TGUIAction.TMLCP_JOIN].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JOIN);
+    } else if (command.equals(actions[TGUIAction.TMLCP_REF_CP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_CP);
+    } else if (command.equals(actions[TGUIAction.TMLCP_REF_SD].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_SD);
+    } else if (command.equals(actions[TGUIAction.TMLCP_START].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE);
+    } else if (command.equals(actions[TGUIAction.TMLCP_STOP].getActionCommand())) {
+        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.TMLSD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    } else if (command.equals(actions[TGUIAction.TMLSD_MESSAGE_ASYNC].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_TMLSD);
+    } else if (command.equals(actions[TGUIAction.TMLSD_STORAGE_INSTANCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_STORAGE_INSTANCE);
+    } else if (command.equals(actions[TGUIAction.TMLSD_CONTROLLER_INSTANCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_CONTROLLER_INSTANCE);
+    } else if (command.equals(actions[TGUIAction.TMLSD_TRANSFER_INSTANCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_TRANSFER_INSTANCE);
+    } else if (command.equals(actions[TGUIAction.TMLSD_ACTION_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_ACTION_STATE);
+
+
+        // Attack Tree Diagrams
+    } else if (command.equals(actions[TGUIAction.ATD_BLOCK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_BLOCK);
+    } else if (command.equals(actions[TGUIAction.ATD_ATTACK].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_ATTACK);
+    } else if (command.equals(actions[TGUIAction.ATD_CONSTRAINT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_CONSTRAINT);
+    } else if (command.equals(actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_COMPOSITION_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.ATD_ATTACK_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_ATTACK_CONNECTOR);
+
+        // TURTLE-OS
+    } else if (command.equals(actions[TGUIAction.TOS_TCLASS].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_TCLASS);
+    } else if (command.equals(actions[TGUIAction.TOS_CONNECTOR_ATTRIBUTE].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ATTRIBUTE);
+    } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION);
+    } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION_NAVIGATION].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION_NAVIGATION);
+    } else if (command.equals(actions[TGUIAction.TOS_CALL_OPERATOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_CALL_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TOS_EVT_OPERATOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_EVT_OPERATOR);
+    } else if (command.equals(actions[TGUIAction.TOSAD_ACTION_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_ACTION_STATE);
+    } else if (command.equals(actions[TGUIAction.TOSAD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.TOSAD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOSAD_CONNECTOR);
+    } else if (command.equals(actions[TGUIAction.TOSAD_INT_TIME_INTERVAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_INT_TIME_INTERVAL);
+    } else if (command.equals(actions[TGUIAction.TOSAD_JUNCTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_JUNCTION);
+    } else if (command.equals(actions[TGUIAction.TOSAD_START_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.TOSAD_STOP_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.TOSAD_TIME_INTERVAL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_TIME_INTERVAL);
+
+
+        // Ontologies
+    } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_DIAGRAM].getActionCommand())) {
+        generateOntologyForCurrentDiagram();
+    } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_SET_OF_DIAGRAMS].getActionCommand())) {
+        generateOntologyForCurrentSetOfDiagrams();
+    } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_ALL_DIAGRAMS].getActionCommand())) {
+        generateOntologyForAllDiagrams();
+
+        // Requirement diagrams
+    } else if (command.equals(actions[TGUIAction.TREQ_REQUIREMENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_REQUIREMENT);
+    } else if (command.equals(actions[TGUIAction.TREQ_OBSERVER].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_OBSERVER);
+    } else if (command.equals(actions[TGUIAction.TREQ_EBRDD].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_EBRDD);
+    } else if (command.equals(actions[TGUIAction.TREQ_DERIVE].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DERIVE_REQ);
+    } else if (command.equals(actions[TGUIAction.TREQ_COPY].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COPY_REQ);
+    } else if (command.equals(actions[TGUIAction.TREQ_COMPOSITION].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMPOSITION_REQ);
+    } else if (command.equals(actions[TGUIAction.TREQ_VERIFY].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_VERIFY_REQ);
+    } else if (command.equals(actions[TGUIAction.PROSMD_START].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_START_STATE);
+    } else if (command.equals(actions[TGUIAction.PROSMD_SENDMSG].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SENDMSG);
+    } else if (command.equals(actions[TGUIAction.PROSMD_GETMSG].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_GETMSG);
+    } else if (command.equals(actions[TGUIAction.PROSMD_CHOICE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_CHOICE);
+    } else if (command.equals(actions[TGUIAction.PROSMD_STOP].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STOP_STATE);
+    } else if (command.equals(actions[TGUIAction.PROSMD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROSMD);
+    } else if (command.equals(actions[TGUIAction.PROSMD_JUNCTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_JUNCTION);
+    } else if (command.equals(actions[TGUIAction.PROSMD_SUBMACHINE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SUBMACHINE);
+    } else if (command.equals(actions[TGUIAction.PROSMD_ACTION].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_ACTION);
+    } else if (command.equals(actions[TGUIAction.PROSMD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    }  else if (command.equals(actions[TGUIAction.PROSMD_PARALLEL].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_PARALLEL);
+    }  else if (command.equals(actions[TGUIAction.PROSMD_STATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STATE);
+    }  else if (command.equals(actions[TGUIAction.PROCSD_COMPONENT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_COMPONENT);
+        //Delegate ports removed, by Solange
+        /*
+          } else if (command.equals(actions[TGUIAction.PROCSD_DELEGATE_PORT].getActionCommand())) {
+          actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_DELEGATE_PORT);
+        */
+    } else if (command.equals(actions[TGUIAction.PROCSD_IN_PORT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_IN_PORT);
+    } else if (command.equals(actions[TGUIAction.PROCSD_OUT_PORT].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_OUT_PORT);
+    } else if (command.equals(actions[TGUIAction.PROCSD_EDIT].getActionCommand())) {
+        actionOnButton(TGComponentManager.EDIT, -1);
+    }  else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD);
+    }
+    else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_PORT_INTERFACE].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD_PORT_INTERFACE);}
+    else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_DELEGATE].getActionCommand())) {
+        actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DELEGATE_PROCSD);
+    }  else if (command.equals(actions[TGUIAction.PROCSD_INTERFCE].getActionCommand())) {
+        actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_INTERFACE);
+        // Command for the action created by Solange. Window appears.
+    }   else if (command.equals(actions[TGUIAction.PRUEBA_1].getActionCommand())) {
+        JOptionPane.showMessageDialog(frame, "In Port: Color CYAN\nOut Port: Color LIGHT GRAY", "Help color of the ports", JOptionPane.INFORMATION_MESSAGE);
+    }   else if (command.endsWith(".dot")) {
+        viewAutomata(command);
+    }
+}
+
+private  class PopupListener extends MouseAdapter /* popup menus onto tabs */ {
+    private MainGUI mgui;
+    private JPopupMenu menu;
+
+    private JMenuItem rename, remove, moveRight, moveLeft, newDesign, newAnalysis, newDeployment, newRequirement, newTMLDesign, newTMLComponentDesign, newTMLArchi, newProactiveDesign, newTURTLEOSDesign,
+        newNCDesign, sort, clone, newAttackTree, newAVATARBD, newAVATARRequirement, newMAD, newTMLCP, newTMLMethodo, newAvatarMethodo, newAVATARDD;
+    private JMenuItem newAVATARAnalysis;
+
+    public PopupListener(MainGUI _mgui) {
+        mgui = _mgui;
+        createMenu();
+    }
+
+    public void mousePressed(MouseEvent e) {
+        checkForPopup(e);
+    }
+    public void mouseReleased(MouseEvent e) {
+        checkForPopup(e);
+    }
+    public void mouseClicked(MouseEvent e) {
+        checkForPopup(e);
+    }
+
+    private void checkForPopup(MouseEvent e) {
+        if(e.isPopupTrigger()) {
+            Component c = e.getComponent();
+            //TraceManager.addDev("e =" + e + " Component=" + c);
+            updateMenu(mgui.getCurrentSelectedIndex());
+            menu.show(c, e.getX(), e.getY());
+        }
+    }
+
+    private void createMenu() {
+        rename = createMenuItem("Rename");
+        remove = createMenuItem("Remove");
+        moveLeft = createMenuItem("Move to the left");
+        moveRight = createMenuItem("Move to the right");
+        sort = createMenuItem("Sort");
+        clone = createMenuItem("Clone");
+        newAnalysis = createMenuItem("New TURTLE Analysis");
+        newDesign = createMenuItem("New TURTLE Design");
+        newDeployment = createMenuItem("New TURTLE Deployment");
+        newAttackTree = createMenuItem("New AVATAR Attack Tree");
+        newRequirement = createMenuItem("New TURTLE Requirement Diagram");
+        newTMLMethodo = createMenuItem("New DIPLODOCUS Methodology");
+
+        newTMLDesign = createMenuItem("New DIPLODOCUS Design");
+        newTMLComponentDesign = createMenuItem("New Component-based DIPLODOCUS Design");
+        newTMLArchi = createMenuItem("New DIPLODOCUS Architecture");
+        newTMLCP = createMenuItem("New DIPLODOCUS Communication Pattern");
+        newProactiveDesign = createMenuItem("New Proactive Design");
+        newTURTLEOSDesign = createMenuItem("New TURTLE-OS Design");
+        newNCDesign = createMenuItem("New Network Calculus Design");
+        newMAD = createMenuItem("New AVATAR Modeling Assumptions Diagram");
+        newAVATARRequirement = createMenuItem("New AVATAR Requirement Diagrams");
+        newAVATARAnalysis = createMenuItem("New AVATAR Analysis");
+        newAVATARBD = createMenuItem("New AVATAR Design");
+        newAVATARDD = createMenuItem("New AVATAR Deployment Diagram");
+        newAvatarMethodo = createMenuItem("New AVATAR Methodology");
+
+        menu = new JPopupMenu("Views");
+        menu.add(moveLeft);
+        menu.add(moveRight);
+
+        menu.addSeparator();
+
+        menu.add(rename);
+        menu.add(remove);
+
+        menu.addSeparator();
+
+        menu.add(sort);
+
+        menu.addSeparator();
+
+        menu.add(clone);
+
+        menu.addSeparator();
+
+        if (!avatarOnly) {
             menu.add(newRequirement);
 
             menu.add(newAnalysis);
@@ -8498,156 +8521,156 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
                 menu.addSeparator();
                 menu.add(newNCDesign);
             }
-            }
+        }
 
-            if (avatarOn) {
-                menu.addSeparator();
-                menu.add(newAvatarMethodo);
-                menu.add(newAttackTree);
-                menu.add(newMAD);
-                menu.add(newAVATARRequirement);
-                menu.add(newAVATARAnalysis);
-                menu.add(newAVATARBD);
-                if (experimentalOn) {
-                		menu.add(newAVATARDD);
-                }
+        if (avatarOn) {
+            menu.addSeparator();
+            menu.add(newAvatarMethodo);
+            menu.add(newAttackTree);
+            menu.add(newMAD);
+            menu.add(newAVATARRequirement);
+            menu.add(newAVATARAnalysis);
+            menu.add(newAVATARBD);
+            if (experimentalOn) {
+                menu.add(newAVATARDD);
             }
-
         }
 
+    }
 
 
-        private JMenuItem createMenuItem(String s) {
-            JMenuItem item = new JMenuItem(s);
-            item.setActionCommand(s);
-            item.addActionListener(listener);
-            return item;
-        }
 
-        private void updateMenu(int index) {
-            //TraceManager.addDev("UpdateMenu index=" + index);
-            if (index < 1) {
-                moveLeft.setEnabled(false);
-            } else {
-                moveLeft.setEnabled(true);
-            }
+    private JMenuItem createMenuItem(String s) {
+        JMenuItem item = new JMenuItem(s);
+        item.setActionCommand(s);
+        item.addActionListener(listener);
+        return item;
+    }
 
-            if (index + 1 < mgui.tabs.size()) {
-                moveRight.setEnabled(true);
-            } else {
-                moveRight.setEnabled(false);
-            }
+    private void updateMenu(int index) {
+        //TraceManager.addDev("UpdateMenu index=" + index);
+        if (index < 1) {
+            moveLeft.setEnabled(false);
+        } else {
+            moveLeft.setEnabled(true);
+        }
 
-            if (index < 0) {
-                rename.setEnabled(false);
-                remove.setEnabled(false);
-                clone.setEnabled(false);
-            } else {
-                rename.setEnabled(true);
-                remove.setEnabled(true);
-                clone.setEnabled(true);
-            }
+        if (index + 1 < mgui.tabs.size()) {
+            moveRight.setEnabled(true);
+        } else {
+            moveRight.setEnabled(false);
+        }
 
-            if (mgui.mainTabbedPane.getTabCount() < 2) {
-                sort.setEnabled(false);
-            } else {
-                sort.setEnabled(true);
-            }
+        if (index < 0) {
+            rename.setEnabled(false);
+            remove.setEnabled(false);
+            clone.setEnabled(false);
+        } else {
+            rename.setEnabled(true);
+            remove.setEnabled(true);
+            clone.setEnabled(true);
         }
 
-        private Action listener = new AbstractAction() {
-
-                public void actionPerformed(ActionEvent e) {
-                    JMenuItem item = (JMenuItem)e.getSource();
-                    String ac = item.getActionCommand();
-                    if(ac.equals("Rename")) {
-                        mgui.requestRenameTab(mainTabbedPane.getSelectedIndex());
-                    } else if (ac.equals("Remove")) {
-                        mgui.requestRemoveTab(mainTabbedPane.getSelectedIndex());
-                    } else if (ac.equals("Move to the left")) {
-                        mgui.requestMoveLeftTab(mainTabbedPane.getSelectedIndex());
-                    } else if (ac.equals("Move to the right")) {
-                        mgui.requestMoveRightTab(mainTabbedPane.getSelectedIndex());
-                    } else if (ac.equals("Sort")) {
-                        GraphicLib.sortJTabbedPane(mgui.mainTabbedPane, mgui.tabs, 0, mgui.mainTabbedPane.getTabCount());
-                        mgui.changeMade(null, -1);
-                    } else if (ac.equals("Clone")) {
-                        mgui.cloneTab(mainTabbedPane.getSelectedIndex());
-                    } else if (ac.equals("New TURTLE Analysis")) {
-                        mgui.newAnalysis();
-                    } else if (ac.equals("New TURTLE Design")) {
-                        mgui.newDesign();
-                    } else if (ac.equals("New TURTLE Deployment")) {
-                        mgui.newDeployment();
-                    } else if (e.getSource() == newAttackTree) {
-                        mgui.newAttackTree();
-                    } else if (ac.equals("New TURTLE Requirement Diagram")) {
-                        mgui.newRequirement();
-                    }    else if (e.getSource() == newTMLMethodo) {
-                        mgui.newDiplodocusMethodology();
-                    }    else if (e.getSource() == newAvatarMethodo) {
-                        mgui.newAvatarMethodology();
-                    } else if (ac.equals("New DIPLODOCUS Design")) {
-                        mgui.newTMLDesign();
-                    } else if (ac.equals("New Component-based DIPLODOCUS Design")) {
-                        mgui.newTMLComponentDesign();
-                    } else if (e.getSource() == newTMLCP) {
-                        mgui.newTMLCP();
-                    } else if (ac.equals("New DIPLODOCUS Architecture")) {
-                        mgui.newTMLArchi();
-                    } else if (ac.equals("New Proactive Design")) {
-                        mgui.newProactiveDesign();
-                    } else if (ac.equals("New TURTLE-OS Design")) {
-                        mgui.newTURTLEOSDesign();
-                    } else if (e.getSource() == newNCDesign) {
-                        mgui.newNCDesign();
-                    } else if (e.getSource() == newAVATARBD) {
-                        mgui.newAvatarBD();
-                    } else if (e.getSource() == newAVATARDD) {
-                        mgui.newADD();
-                    } else if (e.getSource() == newAVATARRequirement) {
-                        mgui.newAvatarRequirement();
-                    } else if (e.getSource() == newMAD) {
-                        mgui.newAvatarMADs();
-                    } else if (e.getSource() == newAVATARAnalysis) {
-                        mgui.newAvatarAnalysis();
-                    }
+        if (mgui.mainTabbedPane.getTabCount() < 2) {
+            sort.setEnabled(false);
+        } else {
+            sort.setEnabled(true);
+        }
+    }
+
+    private Action listener = new AbstractAction() {
+
+            public void actionPerformed(ActionEvent e) {
+                JMenuItem item = (JMenuItem)e.getSource();
+                String ac = item.getActionCommand();
+                if(ac.equals("Rename")) {
+                    mgui.requestRenameTab(mainTabbedPane.getSelectedIndex());
+                } else if (ac.equals("Remove")) {
+                    mgui.requestRemoveTab(mainTabbedPane.getSelectedIndex());
+                } else if (ac.equals("Move to the left")) {
+                    mgui.requestMoveLeftTab(mainTabbedPane.getSelectedIndex());
+                } else if (ac.equals("Move to the right")) {
+                    mgui.requestMoveRightTab(mainTabbedPane.getSelectedIndex());
+                } else if (ac.equals("Sort")) {
+                    GraphicLib.sortJTabbedPane(mgui.mainTabbedPane, mgui.tabs, 0, mgui.mainTabbedPane.getTabCount());
+                    mgui.changeMade(null, -1);
+                } else if (ac.equals("Clone")) {
+                    mgui.cloneTab(mainTabbedPane.getSelectedIndex());
+                } else if (ac.equals("New TURTLE Analysis")) {
+                    mgui.newAnalysis();
+                } else if (ac.equals("New TURTLE Design")) {
+                    mgui.newDesign();
+                } else if (ac.equals("New TURTLE Deployment")) {
+                    mgui.newDeployment();
+                } else if (e.getSource() == newAttackTree) {
+                    mgui.newAttackTree();
+                } else if (ac.equals("New TURTLE Requirement Diagram")) {
+                    mgui.newRequirement();
+                }    else if (e.getSource() == newTMLMethodo) {
+                    mgui.newDiplodocusMethodology();
+                }    else if (e.getSource() == newAvatarMethodo) {
+                    mgui.newAvatarMethodology();
+                } else if (ac.equals("New DIPLODOCUS Design")) {
+                    mgui.newTMLDesign();
+                } else if (ac.equals("New Component-based DIPLODOCUS Design")) {
+                    mgui.newTMLComponentDesign();
+                } else if (e.getSource() == newTMLCP) {
+                    mgui.newTMLCP();
+                } else if (ac.equals("New DIPLODOCUS Architecture")) {
+                    mgui.newTMLArchi();
+                } else if (ac.equals("New Proactive Design")) {
+                    mgui.newProactiveDesign();
+                } else if (ac.equals("New TURTLE-OS Design")) {
+                    mgui.newTURTLEOSDesign();
+                } else if (e.getSource() == newNCDesign) {
+                    mgui.newNCDesign();
+                } else if (e.getSource() == newAVATARBD) {
+                    mgui.newAvatarBD();
+                } else if (e.getSource() == newAVATARDD) {
+                    mgui.newADD();
+                } else if (e.getSource() == newAVATARRequirement) {
+                    mgui.newAvatarRequirement();
+                } else if (e.getSource() == newMAD) {
+                    mgui.newAvatarMADs();
+                } else if (e.getSource() == newAVATARAnalysis) {
+                    mgui.newAvatarAnalysis();
                 }
-            };
+            }
+        };
 
 
-    }
+}
 
 
-    /**
-     * This adapter is constructed to handle mouse over component events.
-     */
-    private class MouseHandler extends MouseAdapter  {
+/**
+ * This adapter is constructed to handle mouse over component events.
+ */
+private class MouseHandler extends MouseAdapter  {
 
-        private JLabel label;
+    private JLabel label;
 
-        /**
-         * ctor for the adapter.
-         * @param label the JLabel which will recieve value of the
-         *              Action.LONG_DESCRIPTION key.
-         */
-        public MouseHandler(JLabel label)  {
-            setLabel(label);
-        }
+    /**
+     * ctor for the adapter.
+     * @param label the JLabel which will recieve value of the
+     *              Action.LONG_DESCRIPTION key.
+     */
+    public MouseHandler(JLabel label)  {
+        setLabel(label);
+    }
 
-        public void setLabel(JLabel label)  {
-            this.label = label;
-        }
+    public void setLabel(JLabel label)  {
+        this.label = label;
+    }
 
-        public void mouseEntered(MouseEvent evt)  {
-            if (evt.getSource() instanceof AbstractButton)  {
-                AbstractButton button = (AbstractButton)evt.getSource();
-                Action action = button.getAction();
-                if (action != null)  {
-                    String message = (String)action.getValue(Action.LONG_DESCRIPTION);
-                    label.setText(message);
-                }
+    public void mouseEntered(MouseEvent evt)  {
+        if (evt.getSource() instanceof AbstractButton)  {
+            AbstractButton button = (AbstractButton)evt.getSource();
+            Action action = button.getAction();
+            if (action != null)  {
+                String message = (String)action.getValue(Action.LONG_DESCRIPTION);
+                label.setText(message);
             }
         }
     }
+}
 } // Class MainGUI
diff --git a/src/ui/TURTLEPanel.java b/src/ui/TURTLEPanel.java
index ebd90b966bd857f132777b5043c626fda8943680..74d1ea9243d08931de536975399474d63d23d644 100755
--- a/src/ui/TURTLEPanel.java
+++ b/src/ui/TURTLEPanel.java
@@ -63,44 +63,44 @@ public abstract class TURTLEPanel implements GenericTree {
     public Vector<TDiagramPanel> panels;
     protected ChangeListener cl;
     protected TDiagramPanel tdp;
-    
+
     public TURTLEPanel(MainGUI _mgui) {
         mgui = _mgui;
         toolbars = new Vector();
         panels = new Vector();
     }
-    
+
     public abstract void init();
     public abstract String saveHeaderInXml();
     public abstract String saveTailInXml();
-    
+
     public TDiagramPanel panelAt(int index) {
         return (TDiagramPanel)(panels.elementAt(index));
     }
-    
+
     public boolean hasTDiagramPanel(TDiagramPanel _tdp) {
-    	for(int i=0; i<panels.size(); i++) {
-    		if (panels.get(i) == _tdp) {
-    			return true;
-    		}
-    	}
-    	
-    	return false;
-    }
-	
-	public void getAllCheckableTGComponent(ArrayList<TGComponent> _list) {
-		for(int i=0; i<panels.size(); i++) {
-			panelAt(i).getAllCheckableTGComponent(_list);
-		}
-	}
-    
+        for(int i=0; i<panels.size(); i++) {
+            if (panels.get(i) == _tdp) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public void getAllCheckableTGComponent(ArrayList<TGComponent> _list) {
+        for(int i=0; i<panels.size(); i++) {
+            panelAt(i).getAllCheckableTGComponent(_list);
+        }
+    }
+
     public void removeElementAt(int index) {
         panels.removeElementAt(index);
         toolbars.removeElementAt(index);
     }
-    
+
     public StringBuffer saveInXML() {
-        
+
         TDiagramPanel tdp;
         StringBuffer sb = new StringBuffer();
         sb.append(saveHeaderInXml());
@@ -118,39 +118,39 @@ public abstract class TURTLEPanel implements GenericTree {
         sb.append(saveTailInXml());
         return sb;
     }
-    
+
     public StringBuffer saveInXML(int indexOfDiagram) {
-        
+
         TDiagramPanel tdp;
         StringBuffer sb = new StringBuffer();
         sb.append(saveHeaderInXml());
         StringBuffer s;
-        
+
         tdp = (TDiagramPanel)(panels.elementAt(indexOfDiagram));
         s = tdp.saveInXML();
         if (s == null) {
-        	System.out.println("Null diagram");
-        	return null;
+            System.out.println("Null diagram");
+            return null;
         }
         sb.append(s);
         sb.append("\n\n");
-        
+
         sb.append(saveTailInXml());
         return sb;
     }
-    
+
     public String toString() {
         return "TURTLE Modeling";
     }
-    
+
     public int getChildCount() {
         return panels.size();
     }
-    
+
     public Object getChild(int index) {
         return panels.elementAt(index);
     }
-    
+
     public int getIndexOfChild(Object child) {
         int index = panels.indexOf(child);
         if (index > -1) {
@@ -159,10 +159,10 @@ public abstract class TURTLEPanel implements GenericTree {
         return panels.size();
     }
 
-	public Vector<TDiagramPanel> getPanels()	{
-		return panels;
-	}
-    
+    public Vector<TDiagramPanel> getPanels()    {
+        return panels;
+    }
+
     public boolean nameInUse(String s) {
         for(int i = 0; i<tabbedPane.getTabCount(); i++) {
             if (tabbedPane.getTitleAt(i).compareTo(s) == 0) {
@@ -171,12 +171,12 @@ public abstract class TURTLEPanel implements GenericTree {
         }
         return false;
     }
-    
+
     public String generateNameIfInUse(String s) {
         if (!nameInUse(s)) {
             return s;
         }
-        
+
         String tmp;
         for(int i=0; i<100000; i++) {
             tmp = s + "_" + i;
@@ -184,19 +184,19 @@ public abstract class TURTLEPanel implements GenericTree {
                 return tmp;
             }
         }
-        return null; 
+        return null;
     }
-    
+
     public void requestRemoveTab(int index) {
         if (index >= panels.size()) {
             return;
         }
-        
+
         panels.removeElementAt(index);
         tabbedPane.remove(index);
         mgui.changeMade(null, -1);
     }
-    
+
     public void requestMoveRightTab(int index) {
         //System.out.println("Move right");
         if (index > panels.size()-2) {
@@ -205,7 +205,7 @@ public abstract class TURTLEPanel implements GenericTree {
         requestMoveTabFromTo(index, index+1);
         mgui.changeMade(null, -1);
     }
-    
+
     public void requestMoveLeftTab(int index) {
         //System.out.println("Move left");
         if (index < 1) {
@@ -214,9 +214,9 @@ public abstract class TURTLEPanel implements GenericTree {
         requestMoveTabFromTo(index, index-1);
         mgui.changeMade(null, -1);
     }
-    
+
     public void requestMoveTabFromTo(int src, int dst) {
-        
+
         // Get all the properties
         Component comp = tabbedPane.getComponentAt(src);
         String label = tabbedPane.getTitleAt(src);
@@ -228,13 +228,13 @@ public abstract class TURTLEPanel implements GenericTree {
         int mnemonicLoc = tabbedPane.getDisplayedMnemonicIndexAt(src);
         Color fg = tabbedPane.getForegroundAt(src);
         Color bg = tabbedPane.getBackgroundAt(src);
-        
+
         // Remove the tab
         tabbedPane.remove(src);
-        
+
         // Add a new tab
         tabbedPane.insertTab(label, icon, comp, tooltip, dst);
-        
+
         // Restore all properties
         tabbedPane.setDisabledIconAt(dst, iconDis);
         tabbedPane.setEnabledAt(dst, enabled);
@@ -242,14 +242,14 @@ public abstract class TURTLEPanel implements GenericTree {
         tabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc);
         tabbedPane.setForegroundAt(dst, fg);
         tabbedPane.setBackgroundAt(dst, bg);
-        
+
         Object o = panels.elementAt(src);
         panels.removeElementAt(src);
         panels.insertElementAt((TDiagramPanel)o, dst);
-        
+
         tabbedPane.setSelectedIndex(dst);
     }
-    
+
     public void requestRenameTab(int index) {
         String s = (String)JOptionPane.showInputDialog(mgui.frame, "TTool modeling:", "Name=", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, tabbedPane.getTitleAt(index));
         if ((s != null) && (s.length() > 0)){
@@ -261,101 +261,101 @@ public abstract class TURTLEPanel implements GenericTree {
             }
         }
     }
-    
+
     public boolean removeEnabled(int index) {
         return false;
     }
-    
+
     public boolean renameEnabled(int index) {
         return false;
     }
-    
+
     public boolean isUCDEnabled() {
         return false;
     }
-	
-	public boolean isSDEnabled() {
+
+    public boolean isSDEnabled() {
         return false;
     }
-    
+
     public boolean isReqEnabled() {
         return false;
     }
-    
+
     public boolean isProSMDEnabled() {
         return false;
     }
-	
-	public boolean isATDEnabled() {
+
+    public boolean isATDEnabled() {
         return false;
     }
-	
-	public boolean isAvatarRDEnabled() {
+
+    public boolean isAvatarRDEnabled() {
         return false;
     }
-	
-	public boolean isAvatarPDEnabled() {
+
+    public boolean isAvatarPDEnabled() {
         return false;
     }
-    
+
     public boolean isAvatarCDEnabled() {
         return false;
     }
-    
+
     public boolean isAvatarADEnabled() {
         return false;
     }
-    
+
     public boolean isAvatarMADEnabled() {
         return false;
     }
-    
-     public boolean isDiplodocusMethodologyEnabled() {
+
+    public boolean isDiplodocusMethodologyEnabled() {
         return false;
     }
-	
-	public MainGUI getMainGUI() {
-		return mgui;
-	}
-	
-	public void resetAllDIPLOIDs() {
-		for(int i=0; i<panels.size(); i++) {
-			panelAt(i).resetAllDIPLOIDs();
-		}
-	}
-	
-	public void searchForText(String text, Vector<Object> elements) {
-		if (panelAt(0) != null) {
-			String s = saveHeaderInXml().toLowerCase();
-			if (s.indexOf(text) >= 0) {
-				elements.add(this);
-				/*CheckingError ce = new CheckingError(CheckingError.INFO, "Diagram");
-				ce.setTDiagramPanel(this.panelAt(0));
-				elements.add(ce);*/
-			}
-		}
-		
-		
-		for(TDiagramPanel tdp: panels) {
-    		tdp.searchForText(text, elements);
-    	}
-	}
-	
-	public boolean supportUppaalFormalVerification() {
-		return false;
-	}
-	
-	public boolean supportLotosFormalVerification() {
-		return false;
-	}
-	
-	public boolean supportCPPSimulation() {
-		return false;
-	}
-	
-	public boolean supportTMLGeneration() {
-		return false;
-	}
-	
-    
+
+    public MainGUI getMainGUI() {
+        return mgui;
+    }
+
+    public void resetAllDIPLOIDs() {
+        for(int i=0; i<panels.size(); i++) {
+            panelAt(i).resetAllDIPLOIDs();
+        }
+    }
+
+    public void searchForText(String text, Vector<Object> elements) {
+        if (panelAt(0) != null) {
+            String s = saveHeaderInXml().toLowerCase();
+            if (s.indexOf(text) >= 0) {
+                elements.add(this);
+                /*CheckingError ce = new CheckingError(CheckingError.INFO, "Diagram");
+                  ce.setTDiagramPanel(this.panelAt(0));
+                  elements.add(ce);*/
+            }
+        }
+
+
+        for(TDiagramPanel tdp: panels) {
+            tdp.searchForText(text, elements);
+        }
+    }
+
+    public boolean supportUppaalFormalVerification() {
+        return false;
+    }
+
+    public boolean supportLotosFormalVerification() {
+        return false;
+    }
+
+    public boolean supportCPPSimulation() {
+        return false;
+    }
+
+    public boolean supportTMLGeneration() {
+        return false;
+    }
+
+
 }
diff --git a/src/ui/atd/AttackTreeDiagramToolbar.java b/src/ui/atd/AttackTreeDiagramToolbar.java
index 4bb0a97248f4342df3c219adeac76dec5d06b48d..2343a48afd859a06e9890ec2f8610ed5845f31ee 100755
--- a/src/ui/atd/AttackTreeDiagramToolbar.java
+++ b/src/ui/atd/AttackTreeDiagramToolbar.java
@@ -1,48 +1,48 @@
 /**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 AttackTreeDiagramToolBar
- * Implements the toolbar to be used in conjunction with the panel of an attack tree diagram
- * Creation: 03/11/2009
- * @version 1.0 03/11/2009
- * @author Ludovic APVRILLE
- * @see TClassDiagramPanel
- */
+   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 AttackTreeDiagramToolBar
+   * Implements the toolbar to be used in conjunction with the panel of an attack tree diagram
+   * Creation: 03/11/2009
+   * @version 1.0 03/11/2009
+   * @author Ludovic APVRILLE
+   * @see TClassDiagramPanel
+   */
 
 package ui.atd;
 
@@ -53,85 +53,81 @@ import javax.swing.*;
 import ui.*;
 
 public class AttackTreeDiagramToolbar extends TToolBar {
-    
+
     public AttackTreeDiagramToolbar(MainGUI _mgui) {
         super(_mgui);
-        
+
     }
-    
+
     protected void setActive(boolean b) {
-		mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(b);
-		mgui.actions[TGUIAction.ACT_ZOOM_LESS].setEnabled(b);
-		
-		mgui.actions[TGUIAction.ACT_SHOW_ZOOM].setEnabled(b);
-		mgui.updateZoomInfo();
-		
+        mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(b);
+        mgui.actions[TGUIAction.ACT_ZOOM_LESS].setEnabled(b);
+
+        mgui.actions[TGUIAction.ACT_SHOW_ZOOM].setEnabled(b);
+        mgui.updateZoomInfo();
+
         mgui.actions[TGUIAction.IOD_EDIT].setEnabled(b);
         mgui.actions[TGUIAction.UML_NOTE].setEnabled(b);
         mgui.actions[TGUIAction.CONNECTOR_COMMENT].setEnabled(b);
-		
-		mgui.actions[TGUIAction.ATD_BLOCK].setEnabled(b);
-		mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].setEnabled(b);
-		
+
+        mgui.actions[TGUIAction.ATD_BLOCK].setEnabled(b);
+        mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].setEnabled(b);
+
         mgui.actions[TGUIAction.ATD_ATTACK].setEnabled(b);
-		
-		 mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR].setEnabled(b);
-		 
-		 mgui.actions[TGUIAction.ATD_CONSTRAINT].setEnabled(b);
-		
-		mgui.actions[TGUIAction.ACT_TOGGLE_ATTR].setEnabled(b);
-        
+
+        mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR].setEnabled(b);
+
+        mgui.actions[TGUIAction.ATD_CONSTRAINT].setEnabled(b);
+
+        mgui.actions[TGUIAction.ACT_TOGGLE_ATTR].setEnabled(b);
+	mgui.actions[TGUIAction.ACT_MODEL_CHECKING].setEnabled(b);
+
     }
-    
+
     protected void setButtons() {
         JButton button;
-        
+
         button = this.add(mgui.actions[TGUIAction.IOD_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.ATD_BLOCK]);
         button.addMouseListener(mgui.mouseHandler);
-		
-		button = this.add(mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR]);
+
+        button = this.add(mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR]);
         button.addMouseListener(mgui.mouseHandler);
-		
+
         this.addSeparator();
-        
+
         button = this.add(mgui.actions[TGUIAction.ATD_ATTACK]);
         button.addMouseListener(mgui.mouseHandler);
-		
+
         this.addSeparator();
-        
-		button = this.add(mgui.actions[TGUIAction.ATD_CONSTRAINT]);
-        button.addMouseListener(mgui.mouseHandler);
-		
-		this.addSeparator();
-		
-		button = this.add(mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR]);
+
+        button = this.add(mgui.actions[TGUIAction.ATD_CONSTRAINT]);
         button.addMouseListener(mgui.mouseHandler);
-		
-		this.addSeparator();
-		this.addSeparator();
-		
-		button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_ATTR]);
+
+        this.addSeparator();
+
+        button = this.add(mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR]);
         button.addMouseListener(mgui.mouseHandler);
-		
-		
-    }
-    
-} // Class
 
+        this.addSeparator();
+        this.addSeparator();
 
+        button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_ATTR]);
+        button.addMouseListener(mgui.mouseHandler);
 
 
+    }
 
+} // Class