diff --git a/modeling/testavatar.xml b/modeling/testavatar.xml
index d799d5cada1606736a179cd8bf63cbbe83ce6ff9..837c4fd547e767f74f403afb7edb882d935a475d 100644
--- a/modeling/testavatar.xml
+++ b/modeling/testavatar.xml
@@ -2,23 +2,25 @@
 
 <TURTLEGMODELING version="0.96-beta1">
 
-<Modeling type="AVATAR Design" nameTab="TestAsynchronous" >
+<Modeling type="AVATAR Design" nameTab="TestAsynchronous1" >
 <AVATARBlockDiagramPanel name="AVATAR Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" >
 <MainCode value="void __user_init() {"/>
 <MainCode value="}"/>
 <Optimized value="true" />
-<Validated value="B1;B0;" />
+<Validated value="" />
 <Ignored value="" />
 
-<CONNECTOR type="5002" id="931" >
+<CONNECTOR type="5002" id="2" >
 <cdparam x="486" y="310" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="" />
-<TGConnectingPoint num="0" id="932" />
-<P1  x="486" y="310" id="882" />
-<P2  x="763" y="310" id="908" />
+<TGConnectingPoint num="0" id="1" />
+<P1  x="486" y="310" id="32" />
+<P2  x="763" y="310" id="6" />
 <AutomaticDrawing  data="true" />
 <extraparam>
+<iso value="in m2()" />
+<osd value="out m2()" />
 <isd value="in m0()" />
 <isd value="in m1()" />
 <oso value="out m0()" />
@@ -26,185 +28,135 @@
 <FIFOType asynchronous="true" size="5" blocking="false" private="true" broadcast="false" lossy="false" />
 </extraparam>
 </CONNECTOR>
-<COMPONENT type="5000" id="904" >
+<COMPONENT type="5000" id="27" >
 <cdparam x="763" y="210" />
 <sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Block0" value="B1" />
-<TGConnectingPoint num="0" id="905" />
-<TGConnectingPoint num="1" id="906" />
-<TGConnectingPoint num="2" id="907" />
-<TGConnectingPoint num="3" id="908" />
-<TGConnectingPoint num="4" id="909" />
-<TGConnectingPoint num="5" id="910" />
-<TGConnectingPoint num="6" id="911" />
-<TGConnectingPoint num="7" id="912" />
-<TGConnectingPoint num="8" id="913" />
-<TGConnectingPoint num="9" id="914" />
-<TGConnectingPoint num="10" id="915" />
-<TGConnectingPoint num="11" id="916" />
-<TGConnectingPoint num="12" id="917" />
-<TGConnectingPoint num="13" id="918" />
-<TGConnectingPoint num="14" id="919" />
-<TGConnectingPoint num="15" id="920" />
-<TGConnectingPoint num="16" id="921" />
-<TGConnectingPoint num="17" id="922" />
-<TGConnectingPoint num="18" id="923" />
-<TGConnectingPoint num="19" id="924" />
-<TGConnectingPoint num="20" id="925" />
-<TGConnectingPoint num="21" id="926" />
-<TGConnectingPoint num="22" id="927" />
-<TGConnectingPoint num="23" id="928" />
+<TGConnectingPoint num="0" id="3" />
+<TGConnectingPoint num="1" id="4" />
+<TGConnectingPoint num="2" id="5" />
+<TGConnectingPoint num="3" id="6" />
+<TGConnectingPoint num="4" id="7" />
+<TGConnectingPoint num="5" id="8" />
+<TGConnectingPoint num="6" id="9" />
+<TGConnectingPoint num="7" id="10" />
+<TGConnectingPoint num="8" id="11" />
+<TGConnectingPoint num="9" id="12" />
+<TGConnectingPoint num="10" id="13" />
+<TGConnectingPoint num="11" id="14" />
+<TGConnectingPoint num="12" id="15" />
+<TGConnectingPoint num="13" id="16" />
+<TGConnectingPoint num="14" id="17" />
+<TGConnectingPoint num="15" id="18" />
+<TGConnectingPoint num="16" id="19" />
+<TGConnectingPoint num="17" id="20" />
+<TGConnectingPoint num="18" id="21" />
+<TGConnectingPoint num="19" id="22" />
+<TGConnectingPoint num="20" id="23" />
+<TGConnectingPoint num="21" id="24" />
+<TGConnectingPoint num="22" id="25" />
+<TGConnectingPoint num="23" id="26" />
 <extraparam>
 <CryptoBlock value="false" />
 <Signal value="in m0()" />
 <Signal value="in m1()" />
+<Signal value="out m2()" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5000" id="877" >
+<COMPONENT type="5000" id="52" >
 <cdparam x="236" y="210" />
 <sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Block0" value="B0" />
-<TGConnectingPoint num="0" id="878" />
-<TGConnectingPoint num="1" id="879" />
-<TGConnectingPoint num="2" id="880" />
-<TGConnectingPoint num="3" id="881" />
-<TGConnectingPoint num="4" id="882" />
-<TGConnectingPoint num="5" id="883" />
-<TGConnectingPoint num="6" id="884" />
-<TGConnectingPoint num="7" id="885" />
-<TGConnectingPoint num="8" id="886" />
-<TGConnectingPoint num="9" id="887" />
-<TGConnectingPoint num="10" id="888" />
-<TGConnectingPoint num="11" id="889" />
-<TGConnectingPoint num="12" id="890" />
-<TGConnectingPoint num="13" id="891" />
-<TGConnectingPoint num="14" id="892" />
-<TGConnectingPoint num="15" id="893" />
-<TGConnectingPoint num="16" id="894" />
-<TGConnectingPoint num="17" id="895" />
-<TGConnectingPoint num="18" id="896" />
-<TGConnectingPoint num="19" id="897" />
-<TGConnectingPoint num="20" id="898" />
-<TGConnectingPoint num="21" id="899" />
-<TGConnectingPoint num="22" id="900" />
-<TGConnectingPoint num="23" id="901" />
+<TGConnectingPoint num="0" id="28" />
+<TGConnectingPoint num="1" id="29" />
+<TGConnectingPoint num="2" id="30" />
+<TGConnectingPoint num="3" id="31" />
+<TGConnectingPoint num="4" id="32" />
+<TGConnectingPoint num="5" id="33" />
+<TGConnectingPoint num="6" id="34" />
+<TGConnectingPoint num="7" id="35" />
+<TGConnectingPoint num="8" id="36" />
+<TGConnectingPoint num="9" id="37" />
+<TGConnectingPoint num="10" id="38" />
+<TGConnectingPoint num="11" id="39" />
+<TGConnectingPoint num="12" id="40" />
+<TGConnectingPoint num="13" id="41" />
+<TGConnectingPoint num="14" id="42" />
+<TGConnectingPoint num="15" id="43" />
+<TGConnectingPoint num="16" id="44" />
+<TGConnectingPoint num="17" id="45" />
+<TGConnectingPoint num="18" id="46" />
+<TGConnectingPoint num="19" id="47" />
+<TGConnectingPoint num="20" id="48" />
+<TGConnectingPoint num="21" id="49" />
+<TGConnectingPoint num="22" id="50" />
+<TGConnectingPoint num="23" id="51" />
 <extraparam>
 <CryptoBlock value="false" />
 <Signal value="out m0()" />
 <Signal value="out m1()" />
+<Signal value="in m2()" />
 </extraparam>
 </COMPONENT>
 
 
 </AVATARBlockDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="B0" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="5101" id="969" >
-<cdparam x="407" y="218" />
-<sizeparam width="20" height="20" 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="stop state" value="null" />
-<TGConnectingPoint num="0" id="970" />
-</COMPONENT>
-
-<COMPONENT type="5103" id="951" >
-<cdparam x="395" y="165" />
-<sizeparam width="37" 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="Send signal" value="m1()" />
-<TGConnectingPoint num="0" id="952" />
-<TGConnectingPoint num="1" id="953" />
-<TGConnectingPoint num="2" id="954" />
-<TGConnectingPoint num="3" id="955" />
-<TGConnectingPoint num="4" id="956" />
-<TGConnectingPoint num="5" id="957" />
-<TGConnectingPoint num="6" id="958" />
-<TGConnectingPoint num="7" id="959" />
-<TGConnectingPoint num="8" id="960" />
-<TGConnectingPoint num="9" id="961" />
-</COMPONENT>
-
-<COMPONENT type="5103" id="933" >
-<cdparam x="391" y="103" />
-<sizeparam width="37" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<AVATARStateMachineDiagramPanel name="B1" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="288" >
+<cdparam x="441" y="388" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="292" />
+<TGConnectingPoint num="1" id="293" />
+<TGConnectingPoint num="2" id="294" />
+<TGConnectingPoint num="3" id="295" />
+<P1  x="441" y="388" id="272" />
+<P2  x="486" y="111" id="144" />
+<Point x="441" y="464" />
+<Point x="710" y="472" />
+<Point x="651" y="82" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="289" >
+<father id="288" num="0" />
+<cdparam x="441" y="464" />
+<sizeparam width="0" height="0" 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="m0()" />
-<TGConnectingPoint num="0" id="934" />
-<TGConnectingPoint num="1" id="935" />
-<TGConnectingPoint num="2" id="936" />
-<TGConnectingPoint num="3" id="937" />
-<TGConnectingPoint num="4" id="938" />
-<TGConnectingPoint num="5" id="939" />
-<TGConnectingPoint num="6" id="940" />
-<TGConnectingPoint num="7" id="941" />
-<TGConnectingPoint num="8" id="942" />
-<TGConnectingPoint num="9" id="943" />
-</COMPONENT>
-
-<COMPONENT type="5100" id="902" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="290" >
+<father id="288" num="1" />
+<cdparam x="710" y="472" />
+<sizeparam width="0" height="0" 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="903" />
-</COMPONENT>
-
-<CONNECTOR type="5102" id="944" >
-<cdparam x="407" y="70" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="291" >
+<father id="288" num="2" />
+<cdparam x="651" y="82" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="945" />
-<P1  x="407" y="70" id="903" />
-<P2  x="409" y="98" id="934" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="946" >
-<father id="944" num="0" />
-<cdparam x="407" y="110" />
-<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="947" />
-<TGConnectingPoint num="1" id="948" />
-<TGConnectingPoint num="2" id="949" />
-<TGConnectingPoint num="3" id="950" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-</extraparam>
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="962" >
-<cdparam x="409" y="128" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="963" />
-<P1  x="409" y="128" id="935" />
-<P2  x="413" y="160" id="952" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="964" >
-<father id="962" num="0" />
-<cdparam x="409" y="168" />
+<SUBCOMPONENT type="-1" id="296" >
+<father id="288" num="3" />
+<cdparam x="441" y="428" />
 <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="965" />
-<TGConnectingPoint num="1" id="966" />
-<TGConnectingPoint num="2" id="967" />
-<TGConnectingPoint num="3" id="968" />
+<TGConnectingPoint num="0" id="297" />
+<TGConnectingPoint num="1" id="298" />
+<TGConnectingPoint num="2" id="299" />
+<TGConnectingPoint num="3" id="300" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -214,87 +166,103 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="971" >
-<cdparam x="413" y="190" />
+<CONNECTOR type="5102" id="281" >
+<cdparam x="436" y="155" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="972" />
-<P1  x="413" y="190" id="953" />
-<P2  x="417" y="213" id="970" />
+<TGConnectingPoint num="0" id="282" />
+<P1  x="436" y="155" id="128" />
+<P2  x="441" y="358" id="271" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="973" >
-<father id="971" num="0" />
-<cdparam x="413" y="230" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="283" >
+<father id="281" num="0" />
+<cdparam x="393" y="317" />
+<sizeparam width="67" 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="974" />
-<TGConnectingPoint num="1" id="975" />
-<TGConnectingPoint num="2" id="976" />
-<TGConnectingPoint num="3" id="977" />
+<TGConnectingPoint num="0" id="284" />
+<TGConnectingPoint num="1" id="285" />
+<TGConnectingPoint num="2" id="286" />
+<TGConnectingPoint num="3" id="287" />
 <extraparam>
 <guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
+<afterMin value="2" />
+<afterMax value="25" />
 <computeMin value="" />
 <computeMax value="" />
+<filesToIncludeLine value="" />
+<codeToIncludeLine value="" />
 </extraparam>
 </SUBCOMPONENT>
 
+<COMPONENT type="5103" id="270" >
+<cdparam x="423" y="363" />
+<sizeparam width="37" 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="Send signal" value="m2()" />
+<TGConnectingPoint num="0" id="271" />
+<TGConnectingPoint num="1" id="272" />
+<TGConnectingPoint num="2" id="273" />
+<TGConnectingPoint num="3" id="274" />
+<TGConnectingPoint num="4" id="275" />
+<TGConnectingPoint num="5" id="276" />
+<TGConnectingPoint num="6" id="277" />
+<TGConnectingPoint num="7" id="278" />
+<TGConnectingPoint num="8" id="279" />
+<TGConnectingPoint num="9" id="280" />
+</COMPONENT>
 
-</AVATARStateMachineDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="B1" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="1104" >
+<CONNECTOR type="5102" id="65" >
 <cdparam x="482" y="259" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="1108" />
-<TGConnectingPoint num="1" id="1109" />
-<TGConnectingPoint num="2" id="1110" />
-<TGConnectingPoint num="3" id="1111" />
-<P1  x="482" y="259" id="1088" />
-<P2  x="486" y="130" id="1012" />
+<TGConnectingPoint num="0" id="61" />
+<TGConnectingPoint num="1" id="62" />
+<TGConnectingPoint num="2" id="63" />
+<TGConnectingPoint num="3" id="64" />
+<P1  x="482" y="259" id="101" />
+<P2  x="486" y="130" id="126" />
 <Point x="478" y="278" />
 <Point x="578" y="283" />
 <Point x="577" y="136" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1105" >
-<father id="1104" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="53" >
+<father id="65" num="0" />
 <cdparam x="478" y="278" />
 <sizeparam width="0" height="0" 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="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="1106" >
-<father id="1104" num="1" />
+<SUBCOMPONENT type="-1" id="54" >
+<father id="65" num="1" />
 <cdparam x="578" y="283" />
 <sizeparam width="0" height="0" 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="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="1107" >
-<father id="1104" num="2" />
+<SUBCOMPONENT type="-1" id="55" >
+<father id="65" num="2" />
 <cdparam x="577" y="136" />
 <sizeparam width="0" height="0" 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="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="1112" >
-<father id="1104" num="3" />
+<SUBCOMPONENT type="-1" id="60" >
+<father id="65" num="3" />
 <cdparam x="482" y="299" />
 <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="1113" />
-<TGConnectingPoint num="1" id="1114" />
-<TGConnectingPoint num="2" id="1115" />
-<TGConnectingPoint num="3" id="1116" />
+<TGConnectingPoint num="0" id="56" />
+<TGConnectingPoint num="1" id="57" />
+<TGConnectingPoint num="2" id="58" />
+<TGConnectingPoint num="3" id="59" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -304,73 +272,83 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5104" id="1086" >
-<cdparam x="460" y="234" />
-<sizeparam width="45" 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="Receive signal" value="m1()" />
-<TGConnectingPoint num="0" id="1087" />
-<TGConnectingPoint num="1" id="1088" />
-<TGConnectingPoint num="2" id="1089" />
-<TGConnectingPoint num="3" id="1090" />
-<TGConnectingPoint num="4" id="1091" />
-<TGConnectingPoint num="5" id="1092" />
-<TGConnectingPoint num="6" id="1093" />
-<TGConnectingPoint num="7" id="1094" />
-<TGConnectingPoint num="8" id="1095" />
-<TGConnectingPoint num="9" id="1096" />
-</COMPONENT>
-
-<CONNECTOR type="5102" id="1073" >
+<CONNECTOR type="5102" id="78" >
 <cdparam x="369" y="254" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="1077" />
-<TGConnectingPoint num="1" id="1078" />
-<TGConnectingPoint num="2" id="1079" />
-<TGConnectingPoint num="3" id="1080" />
-<P1  x="369" y="254" id="1057" />
-<P2  x="386" y="130" id="1011" />
+<TGConnectingPoint num="0" id="74" />
+<TGConnectingPoint num="1" id="75" />
+<TGConnectingPoint num="2" id="76" />
+<TGConnectingPoint num="3" id="77" />
+<P1  x="369" y="254" id="112" />
+<P2  x="386" y="130" id="125" />
 <Point x="364" y="274" />
 <Point x="303" y="280" />
 <Point x="269" y="142" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1074" >
-<father id="1073" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="66" >
+<father id="78" num="0" />
 <cdparam x="364" y="274" />
 <sizeparam width="0" height="0" 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="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="1075" >
-<father id="1073" num="1" />
+<SUBCOMPONENT type="-1" id="67" >
+<father id="78" num="1" />
 <cdparam x="303" y="280" />
 <sizeparam width="0" height="0" 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="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="1076" >
-<father id="1073" num="2" />
+<SUBCOMPONENT type="-1" id="68" >
+<father id="78" num="2" />
 <cdparam x="269" y="142" />
 <sizeparam width="0" height="0" 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="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="1081" >
-<father id="1073" num="3" />
+<SUBCOMPONENT type="-1" id="73" >
+<father id="78" num="3" />
 <cdparam x="369" y="294" />
 <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="1082" />
-<TGConnectingPoint num="1" id="1083" />
-<TGConnectingPoint num="2" id="1084" />
-<TGConnectingPoint num="3" id="1085" />
+<TGConnectingPoint num="0" id="69" />
+<TGConnectingPoint num="1" id="70" />
+<TGConnectingPoint num="2" id="71" />
+<TGConnectingPoint num="3" id="72" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="85" >
+<cdparam x="407" y="70" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="84" />
+<P1  x="407" y="70" id="163" />
+<P2  x="411" y="105" id="130" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="83" >
+<father id="85" num="0" />
+<cdparam x="407" y="110" />
+<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="79" />
+<TGConnectingPoint num="1" id="80" />
+<TGConnectingPoint num="2" id="81" />
+<TGConnectingPoint num="3" id="82" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -380,102 +358,299 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5104" id="1055" >
+<CONNECTOR type="5102" id="92" >
+<cdparam x="386" y="155" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="91" />
+<P1  x="386" y="155" id="127" />
+<P2  x="369" y="224" id="111" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="90" >
+<father id="92" num="0" />
+<cdparam x="386" y="195" />
+<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="86" />
+<TGConnectingPoint num="1" id="87" />
+<TGConnectingPoint num="2" id="88" />
+<TGConnectingPoint num="3" id="89" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="99" >
+<cdparam x="473" y="155" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="98" />
+<P1  x="473" y="155" id="153" />
+<P2  x="482" y="229" id="100" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="97" >
+<father id="99" num="0" />
+<cdparam x="473" y="195" />
+<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="93" />
+<TGConnectingPoint num="1" id="94" />
+<TGConnectingPoint num="2" id="95" />
+<TGConnectingPoint num="3" id="96" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5104" id="110" >
+<cdparam x="460" y="234" />
+<sizeparam width="45" 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="Receive signal" value="m1()" />
+<TGConnectingPoint num="0" id="100" />
+<TGConnectingPoint num="1" id="101" />
+<TGConnectingPoint num="2" id="102" />
+<TGConnectingPoint num="3" id="103" />
+<TGConnectingPoint num="4" id="104" />
+<TGConnectingPoint num="5" id="105" />
+<TGConnectingPoint num="6" id="106" />
+<TGConnectingPoint num="7" id="107" />
+<TGConnectingPoint num="8" id="108" />
+<TGConnectingPoint num="9" id="109" />
+</COMPONENT>
+
+<COMPONENT type="5104" id="121" >
 <cdparam x="347" y="229" />
 <sizeparam width="45" 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="Receive signal" value="m0()" />
-<TGConnectingPoint num="0" id="1056" />
-<TGConnectingPoint num="1" id="1057" />
-<TGConnectingPoint num="2" id="1058" />
-<TGConnectingPoint num="3" id="1059" />
-<TGConnectingPoint num="4" id="1060" />
-<TGConnectingPoint num="5" id="1061" />
-<TGConnectingPoint num="6" id="1062" />
-<TGConnectingPoint num="7" id="1063" />
-<TGConnectingPoint num="8" id="1064" />
-<TGConnectingPoint num="9" id="1065" />
+<TGConnectingPoint num="0" id="111" />
+<TGConnectingPoint num="1" id="112" />
+<TGConnectingPoint num="2" id="113" />
+<TGConnectingPoint num="3" id="114" />
+<TGConnectingPoint num="4" id="115" />
+<TGConnectingPoint num="5" id="116" />
+<TGConnectingPoint num="6" id="117" />
+<TGConnectingPoint num="7" id="118" />
+<TGConnectingPoint num="8" id="119" />
+<TGConnectingPoint num="9" id="120" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="1007" >
+<COMPONENT type="5106" id="162" >
 <cdparam x="386" y="105" />
 <sizeparam width="100" height="50" 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="Waiting4Sig" />
-<TGConnectingPoint num="0" id="1008" />
-<TGConnectingPoint num="1" id="1009" />
-<TGConnectingPoint num="2" id="1010" />
-<TGConnectingPoint num="3" id="1011" />
-<TGConnectingPoint num="4" id="1012" />
-<TGConnectingPoint num="5" id="1013" />
-<TGConnectingPoint num="6" id="1014" />
-<TGConnectingPoint num="7" id="1015" />
-<TGConnectingPoint num="8" id="1016" />
-<TGConnectingPoint num="9" id="1017" />
-<TGConnectingPoint num="10" id="1018" />
-<TGConnectingPoint num="11" id="1019" />
-<TGConnectingPoint num="12" id="1020" />
-<TGConnectingPoint num="13" id="1021" />
-<TGConnectingPoint num="14" id="1022" />
-<TGConnectingPoint num="15" id="1023" />
-<TGConnectingPoint num="16" id="1024" />
-<TGConnectingPoint num="17" id="1025" />
-<TGConnectingPoint num="18" id="1026" />
-<TGConnectingPoint num="19" id="1027" />
-<TGConnectingPoint num="20" id="1028" />
-<TGConnectingPoint num="21" id="1029" />
-<TGConnectingPoint num="22" id="1030" />
-<TGConnectingPoint num="23" id="1031" />
-<TGConnectingPoint num="24" id="1032" />
-<TGConnectingPoint num="25" id="1033" />
-<TGConnectingPoint num="26" id="1034" />
-<TGConnectingPoint num="27" id="1035" />
-<TGConnectingPoint num="28" id="1036" />
-<TGConnectingPoint num="29" id="1037" />
-<TGConnectingPoint num="30" id="1038" />
-<TGConnectingPoint num="31" id="1039" />
-<TGConnectingPoint num="32" id="1040" />
-<TGConnectingPoint num="33" id="1041" />
-<TGConnectingPoint num="34" id="1042" />
-<TGConnectingPoint num="35" id="1043" />
-<TGConnectingPoint num="36" id="1044" />
-<TGConnectingPoint num="37" id="1045" />
-<TGConnectingPoint num="38" id="1046" />
-<TGConnectingPoint num="39" id="1047" />
+<TGConnectingPoint num="0" id="122" />
+<TGConnectingPoint num="1" id="123" />
+<TGConnectingPoint num="2" id="124" />
+<TGConnectingPoint num="3" id="125" />
+<TGConnectingPoint num="4" id="126" />
+<TGConnectingPoint num="5" id="127" />
+<TGConnectingPoint num="6" id="128" />
+<TGConnectingPoint num="7" id="129" />
+<TGConnectingPoint num="8" id="130" />
+<TGConnectingPoint num="9" id="131" />
+<TGConnectingPoint num="10" id="132" />
+<TGConnectingPoint num="11" id="133" />
+<TGConnectingPoint num="12" id="134" />
+<TGConnectingPoint num="13" id="135" />
+<TGConnectingPoint num="14" id="136" />
+<TGConnectingPoint num="15" id="137" />
+<TGConnectingPoint num="16" id="138" />
+<TGConnectingPoint num="17" id="139" />
+<TGConnectingPoint num="18" id="140" />
+<TGConnectingPoint num="19" id="141" />
+<TGConnectingPoint num="20" id="142" />
+<TGConnectingPoint num="21" id="143" />
+<TGConnectingPoint num="22" id="144" />
+<TGConnectingPoint num="23" id="145" />
+<TGConnectingPoint num="24" id="146" />
+<TGConnectingPoint num="25" id="147" />
+<TGConnectingPoint num="26" id="148" />
+<TGConnectingPoint num="27" id="149" />
+<TGConnectingPoint num="28" id="150" />
+<TGConnectingPoint num="29" id="151" />
+<TGConnectingPoint num="30" id="152" />
+<TGConnectingPoint num="31" id="153" />
+<TGConnectingPoint num="32" id="154" />
+<TGConnectingPoint num="33" id="155" />
+<TGConnectingPoint num="34" id="156" />
+<TGConnectingPoint num="35" id="157" />
+<TGConnectingPoint num="36" id="158" />
+<TGConnectingPoint num="37" id="159" />
+<TGConnectingPoint num="38" id="160" />
+<TGConnectingPoint num="39" id="161" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="929" >
+<COMPONENT type="5100" id="164" >
 <cdparam x="400" y="50" />
 <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="930" />
+<TGConnectingPoint num="0" id="163" />
 </COMPONENT>
 
-<CONNECTOR type="5102" id="1048" >
-<cdparam x="407" y="70" />
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="B0" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="263" >
+<cdparam x="486" y="244" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="1049" />
-<P1  x="407" y="70" id="930" />
-<P2  x="411" y="105" id="1016" />
+<TGConnectingPoint num="0" id="264" />
+<P1  x="486" y="244" id="229" />
+<P2  x="531" y="340" id="199" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1050" >
-<father id="1048" num="0" />
-<cdparam x="407" y="110" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="265" >
+<father id="263" num="0" />
+<cdparam x="486" y="304" />
+<sizeparam width="67" 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="266" />
+<TGConnectingPoint num="1" id="267" />
+<TGConnectingPoint num="2" id="268" />
+<TGConnectingPoint num="3" id="269" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="5" />
+<afterMax value="15" />
+<computeMin value="" />
+<computeMax value="" />
+<filesToIncludeLine value="" />
+<codeToIncludeLine value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="256" >
+<cdparam x="423" y="244" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="257" />
+<P1  x="423" y="244" id="242" />
+<P2  x="402" y="329" id="188" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="258" >
+<father id="256" num="0" />
+<cdparam x="332" y="285" />
+<sizeparam width="75" 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="259" />
+<TGConnectingPoint num="1" id="260" />
+<TGConnectingPoint num="2" id="261" />
+<TGConnectingPoint num="3" id="262" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="10" />
+<afterMax value="20" />
+<computeMin value="" />
+<computeMax value="" />
+<filesToIncludeLine value="" />
+<codeToIncludeLine value="" />
+</extraparam>
+</SUBCOMPONENT>
+
+<COMPONENT type="5101" id="254" >
+<cdparam x="536" y="413" />
+<sizeparam width="20" height="20" 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="stop state" value="null" />
+<TGConnectingPoint num="0" id="255" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="213" >
+<cdparam x="411" y="194" />
+<sizeparam width="100" height="50" 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="214" />
+<TGConnectingPoint num="1" id="215" />
+<TGConnectingPoint num="2" id="216" />
+<TGConnectingPoint num="3" id="217" />
+<TGConnectingPoint num="4" id="218" />
+<TGConnectingPoint num="5" id="219" />
+<TGConnectingPoint num="6" id="220" />
+<TGConnectingPoint num="7" id="221" />
+<TGConnectingPoint num="8" id="222" />
+<TGConnectingPoint num="9" id="223" />
+<TGConnectingPoint num="10" id="224" />
+<TGConnectingPoint num="11" id="225" />
+<TGConnectingPoint num="12" id="226" />
+<TGConnectingPoint num="13" id="227" />
+<TGConnectingPoint num="14" id="228" />
+<TGConnectingPoint num="15" id="229" />
+<TGConnectingPoint num="16" id="230" />
+<TGConnectingPoint num="17" id="231" />
+<TGConnectingPoint num="18" id="232" />
+<TGConnectingPoint num="19" id="233" />
+<TGConnectingPoint num="20" id="234" />
+<TGConnectingPoint num="21" id="235" />
+<TGConnectingPoint num="22" id="236" />
+<TGConnectingPoint num="23" id="237" />
+<TGConnectingPoint num="24" id="238" />
+<TGConnectingPoint num="25" id="239" />
+<TGConnectingPoint num="26" id="240" />
+<TGConnectingPoint num="27" id="241" />
+<TGConnectingPoint num="28" id="242" />
+<TGConnectingPoint num="29" id="243" />
+<TGConnectingPoint num="30" id="244" />
+<TGConnectingPoint num="31" id="245" />
+<TGConnectingPoint num="32" id="246" />
+<TGConnectingPoint num="33" id="247" />
+<TGConnectingPoint num="34" id="248" />
+<TGConnectingPoint num="35" id="249" />
+<TGConnectingPoint num="36" id="250" />
+<TGConnectingPoint num="37" id="251" />
+<TGConnectingPoint num="38" id="252" />
+<TGConnectingPoint num="39" id="253" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="5102" id="171" >
+<cdparam x="342" y="124" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="170" />
+<P1  x="342" y="124" id="210" />
+<P2  x="461" y="194" id="215" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="169" >
+<father id="171" num="0" />
+<cdparam x="342" y="164" />
 <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="1051" />
-<TGConnectingPoint num="1" id="1052" />
-<TGConnectingPoint num="2" id="1053" />
-<TGConnectingPoint num="3" id="1054" />
+<TGConnectingPoint num="0" id="165" />
+<TGConnectingPoint num="1" id="166" />
+<TGConnectingPoint num="2" id="167" />
+<TGConnectingPoint num="3" id="168" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -485,25 +660,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1066" >
-<cdparam x="386" y="155" />
+<CONNECTOR type="5102" id="178" >
+<cdparam x="344" y="182" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="1067" />
-<P1  x="386" y="155" id="1013" />
-<P2  x="369" y="224" id="1056" />
+<TGConnectingPoint num="0" id="177" />
+<P1  x="531" y="370" id="200" />
+<P2  x="546" y="408" id="255" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1068" >
-<father id="1066" num="0" />
-<cdparam x="386" y="195" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="176" >
+<father id="178" num="0" />
+<cdparam x="344" y="222" />
 <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="1069" />
-<TGConnectingPoint num="1" id="1070" />
-<TGConnectingPoint num="2" id="1071" />
-<TGConnectingPoint num="3" id="1072" />
+<TGConnectingPoint num="0" id="172" />
+<TGConnectingPoint num="1" id="173" />
+<TGConnectingPoint num="2" id="174" />
+<TGConnectingPoint num="3" id="175" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -513,25 +688,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1097" >
-<cdparam x="473" y="155" />
+<CONNECTOR type="5102" id="185" >
+<cdparam x="348" y="244" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="1098" />
-<P1  x="473" y="155" id="1039" />
-<P2  x="482" y="229" id="1087" />
+<TGConnectingPoint num="0" id="184" />
+<P1  x="402" y="359" id="189" />
+<P2  x="371" y="455" id="186" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1099" >
-<father id="1097" num="0" />
-<cdparam x="473" y="195" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="183" >
+<father id="185" num="0" />
+<cdparam x="355" y="403" />
 <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="1100" />
-<TGConnectingPoint num="1" id="1101" />
-<TGConnectingPoint num="2" id="1102" />
-<TGConnectingPoint num="3" id="1103" />
+<TGConnectingPoint num="0" id="179" />
+<TGConnectingPoint num="1" id="180" />
+<TGConnectingPoint num="2" id="181" />
+<TGConnectingPoint num="3" id="182" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -541,6 +716,60 @@
 </extraparam>
 </SUBCOMPONENT>
 
+<COMPONENT type="5101" id="187" >
+<cdparam x="361" y="460" />
+<sizeparam width="20" height="20" 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="stop state" value="null" />
+<TGConnectingPoint num="0" id="186" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="198" >
+<cdparam x="384" y="334" />
+<sizeparam width="37" 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="Send signal" value="m1()" />
+<TGConnectingPoint num="0" id="188" />
+<TGConnectingPoint num="1" id="189" />
+<TGConnectingPoint num="2" id="190" />
+<TGConnectingPoint num="3" id="191" />
+<TGConnectingPoint num="4" id="192" />
+<TGConnectingPoint num="5" id="193" />
+<TGConnectingPoint num="6" id="194" />
+<TGConnectingPoint num="7" id="195" />
+<TGConnectingPoint num="8" id="196" />
+<TGConnectingPoint num="9" id="197" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="209" >
+<cdparam x="513" y="345" />
+<sizeparam width="37" 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="Send signal" value="m0()" />
+<TGConnectingPoint num="0" id="199" />
+<TGConnectingPoint num="1" id="200" />
+<TGConnectingPoint num="2" id="201" />
+<TGConnectingPoint num="3" id="202" />
+<TGConnectingPoint num="4" id="203" />
+<TGConnectingPoint num="5" id="204" />
+<TGConnectingPoint num="6" id="205" />
+<TGConnectingPoint num="7" id="206" />
+<TGConnectingPoint num="8" id="207" />
+<TGConnectingPoint num="9" id="208" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="211" >
+<cdparam x="335" y="104" />
+<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="210" />
+</COMPONENT>
+
 
 </AVATARStateMachineDiagramPanel>
 
diff --git a/src/ui/avatarmethodology/AvatarMethodologyConnectingPoint.java b/src/ui/avatarmethodology/AvatarMethodologyConnectingPoint.java
new file mode 100755
index 0000000000000000000000000000000000000000..f2bb3282439dbe0823074fa52cd8d7a6e9362c78
--- /dev/null
+++ b/src/ui/avatarmethodology/AvatarMethodologyConnectingPoint.java
@@ -0,0 +1,71 @@
+/**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 AvatarMethodologyConnectingPoint
+ * Definition of connecting points on which connectors between elements of avatar methodo may be connected
+ * Creation: 26/08/2014
+ * @version 1.0 26/08/2014
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.avatarmethodology;
+
+//import java.awt.*;
+
+import ui.*;
+
+public class AvatarMethodologyConnectingPoint extends  TGConnectingPointWidthHeight {
+    
+    public AvatarMethodologyConnectingPoint(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h, int _orientation) {
+        super(_container, _x, _y, _in, _out, _w, _h);
+		orientation = _orientation;
+    }
+    
+    public boolean isCompatibleWith(int type) {
+        
+        if (type == TGComponentManager.AVATARMETHODOLOGY_CONNECTOR) {
+            return true;
+        }
+		
+       
+        return false;
+    }
+	
+
+}
\ No newline at end of file
diff --git a/src/ui/avatarmethodology/AvatarMethodologyConnector.java b/src/ui/avatarmethodology/AvatarMethodologyConnector.java
new file mode 100755
index 0000000000000000000000000000000000000000..2b5426ce5dbf92c75345f3c4e087ad15539c57d8
--- /dev/null
+++ b/src/ui/avatarmethodology/AvatarMethodologyConnector.java
@@ -0,0 +1,95 @@
+/**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 AvatarMethodologyConnector
+ * Connector to be used in Avatar methodology. Connects two diagram references
+ * Creation: 26/08/2014
+ * @version 1.0 26/08/2014
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.avatarmethodology;
+
+import java.awt.*;
+//import java.awt.geom.*;
+import java.util.*;
+
+import myutil.*;
+
+import ui.*;
+
+public  class AvatarMethodologyConnector extends TGConnectorWithCommentConnectionPoints {
+    int w, h;
+    
+    public AvatarMethodologyConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector _listPoint) {
+        super(_x, _y,  _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint);
+        value = "<<deriveReqt>>";
+		
+		myImageIcon = IconManager.imgic1008;
+		
+		removable = false;
+    }
+    
+    
+    protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
+		 
+        //g.drawLine(x1, y1, x2, y2);
+        GraphicLib.arrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false);
+        
+    }
+    
+    public TGComponent extraIsOnOnlyMe(int x1, int y1) {
+        if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
+            return this;
+        }
+        return null;
+    }
+    
+    public int getType() {
+        return TGComponentManager.AVATARMETHODOLOGY_CONNECTOR;
+    }
+    
+}
+
+
+
+
+
+
+
diff --git a/src/ui/avatarmethodology/AvatarMethodologyDiagramName.java b/src/ui/avatarmethodology/AvatarMethodologyDiagramName.java
new file mode 100755
index 0000000000000000000000000000000000000000..9c06d797d5f24164b55787b45c7fab53aaec24f9
--- /dev/null
+++ b/src/ui/avatarmethodology/AvatarMethodologyDiagramName.java
@@ -0,0 +1,311 @@
+/**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 AvatarMethodologyDiagramName
+ * Internal component that shows the diagram name and validation/simu
+ * references
+ * Creation: 26/08/2014
+ * @version 1.0 26/08/2014
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.avatarmethodology;
+
+import java.awt.*;
+//import java.awt.geom.*;
+import javax.swing.*;
+
+import ui.*;
+import myutil.*;
+
+public class AvatarMethodologyDiagramName extends TGCScalableWithoutInternalComponent implements SwallowedTGComponent { 
+    //protected boolean emptyText;
+    
+    public final static int X_MARGIN = 5;
+    public final static int Y_MARGIN = 3;
+    
+    
+    protected final static int SIM_TRACE_APP_DIPLO = 0;
+    protected final static int SIM_ANIM_APP_DIPLO = 7;
+    protected final static int UPP_APP_DIPLO = 1;
+    protected final static int LOT_APP_DIPLO = 2;
+	protected final static int TML_APP_DIPLO = 3;
+	
+	protected final static int FV_MAPPING_DIPLO = 4;
+	protected final static int SIM_TRACE_MAPPING_DIPLO = 5;   
+	protected final static int SIM_ANIM_MAPPING_DIPLO = 8;   
+	protected final static int TML_MAPPING_DIPLO = 6;
+	
+	protected final String[] SHORT_ACTION_NAMES = {
+	"sim-trace", "upp", "lot", "tml", 
+	"fv", "sim-trace", "tmap", "sim-anim", "sim-anim"};
+	
+	protected final String[] LONG_ACTION_NAMES = {
+	/*0*/ "Generate a vcd simulation trace of a DIPLODOCUS functional model", 
+	"Verify a DIPLODOCUS functional model with UPPAAL", 
+	"Generate a Reachability graph of a DIPLODOCUS functional model",
+	"Generate a TML text description of a DIPLODOCUS functional model",
+	"Formal verify a DIPLODOCUS mapping model", 
+	/*5*/ "Simulate a DIPLODOCUS mapping model", 
+	"Generate a TMAP/TARCHI/TML text dscription of a DIPLODOCUS mapping model",
+	"Simulate and animate DIPLODOCUS functional models",
+	"Simulate and animate DIPLODOCUS mapping models"
+	};
+	
+	protected int[] validations;
+	protected int[] valMinX;
+	protected int[] valMaxX;
+	
+	protected int indexOnMe; // -1 -> on main element. -2: on not precise element; Other: on a validations item.
+	
+	private int myWidth, myHeight, widthAppli;
+	
+	
+    public AvatarMethodologyDiagramName(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+        super(_x, _y,  _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+        
+        nbConnectingPoint = 0;
+        minWidth = 10;
+        nbInternalTGComponent = 0;
+        
+        moveable = true;
+        editable = true;
+        removable = false;
+        
+        name = "value ";
+        
+        
+        
+        initScaling(10, 10);
+        
+        
+        myImageIcon = IconManager.imgic302;
+    }
+    
+    public void internalDrawing(Graphics g) {
+    	boolean onMe = false;
+    	
+    	if (tdp.componentPointed() == this) {
+    		onMe = true;
+    	}
+    	
+    	if ((y+Y_MARGIN) > (getFather().getY()+getFather().getHeight())) {
+    		return;
+    	}
+    	
+    	//TraceManager.addDev("Internal drawing ...");
+    	int currentMaxX;
+    	String val = value;
+        int w = g.getFontMetrics().stringWidth(value);
+        int wf = getFather().getWidth();
+        int w1;
+        int saveCurrentMaxX;
+        boolean oneWritten;
+        
+        if (wf < w+(2*X_MARGIN)) {
+        	val = ".";
+        }
+        
+        widthAppli = g.getFontMetrics().stringWidth(val);
+        
+        Font f = g.getFont();
+        
+        if (onMe && indexOnMe == -1) {
+        	g.setFont(f.deriveFont(Font.BOLD));
+        }
+        g.drawString(val, x, y);
+        g.setFont(f);
+        
+        if (validations == null) {
+        	if (getFather() instanceof AvatarMethodologyDiagramReference) {
+        		((AvatarMethodologyDiagramReference)(getFather())).makeValidationInfos(this);
+        	}
+        }
+        
+        if ((validations != null) && (valMinX == null)) {
+        	valMinX = new int[validations.length];
+        	valMaxX = new int[validations.length];
+        }
+        
+        /*if (validations == null) {
+        TraceManager.addDev("null validation");
+        } else {
+        TraceManager.addDev("Validation size=" + validations.length);
+        }*/
+        
+        currentMaxX = wf + x - 2*(X_MARGIN);
+        saveCurrentMaxX = currentMaxX;
+        
+        if (wf < w+(2*X_MARGIN)) {
+        	makeScale(g, w+(2*X_MARGIN));
+        	return;
+        }
+        
+        //TraceManager.addDev("Tracing validation Validation size=" + validations.length);
+        oneWritten = false;
+        
+        g.setFont(f.deriveFont(Font.ITALIC));
+        if ((validations != null) & (validations.length >0)) {
+			for(int i=validations.length-1; i>=0; i--) {
+				//TraceManager.addDev("Validations[" + i + "] = " + validations[i]);
+				w1 = g.getFontMetrics().stringWidth(SHORT_ACTION_NAMES[validations[i]]);
+				
+				if ((currentMaxX - w1) > (x + w)) {
+					if ((onMe && indexOnMe == i)) {
+						g.setFont(f.deriveFont(Font.BOLD));
+					}
+					g.drawString(SHORT_ACTION_NAMES[validations[i]], currentMaxX - w1, y);
+					g.setFont(f.deriveFont(Font.ITALIC));
+					valMinX[i] = currentMaxX-w1;
+					valMaxX[i] = currentMaxX;
+					oneWritten = true;
+					currentMaxX = currentMaxX - w1 - 5;
+				} else {
+					break;
+				}
+				
+			}
+        }
+        
+        
+        
+        g.setFont(f);
+        
+        if (oneWritten) {
+        	makeScale(g, saveCurrentMaxX - x);
+        } else {
+        	makeScale(g, w);
+        }
+        
+        if (onMe)
+        	g.drawRect(x-2, y-12, myWidth+4, 15);
+        
+        return;
+        
+        
+    }
+    
+    private void makeScale(Graphics g, int _size) {
+    	if (!tdp.isScaled()) {
+            myWidth = _size;
+            myHeight = g.getFontMetrics().getHeight();
+        }
+    }
+    
+    
+    public TGComponent isOnMe(int _x, int _y) {
+    	int oldIndex = indexOnMe;
+        if (GraphicLib.isInRectangle(_x, _y, x, y - height, Math.max(myWidth, minWidth), myHeight)) {
+        	indexOnMe = -2;
+        	
+        	if (_x <= (x+widthAppli)) {
+        		indexOnMe = -1;
+        		tdp.getMGUI().setStatusBarText("Open the " + value + " model");
+        	}
+        	if ((validations != null) && (validations.length > 0)) {
+        		for(int i=0; i<validations.length; i++) {
+        			if ((_x >= valMinX[i]) && (_x <= valMaxX[i])) {
+        				indexOnMe = i;
+        				tdp.getMGUI().setStatusBarText(LONG_ACTION_NAMES[validations[i]]);
+        				//TraceManager.addDev("Index on " + indexOnMe);
+        				break;
+        			}
+        		}
+        	}
+        	
+        	if (oldIndex != indexOnMe) {
+        		tdp.repaint();
+        	}
+        	
+        	
+            return this;
+        }
+        return null;
+    }
+    
+    public boolean editOndoubleClick(JFrame frame) {
+    	
+        if (indexOnMe == -1) {
+        	// Opening the diagram
+        	if (!tdp.getMGUI().selectMainTab(value)) {
+        		TraceManager.addDev("Diagram removed?");
+        		return false;
+        	}
+        	
+        }
+        
+        
+        if (indexOnMe > -1) {
+        	DiplodocusMethodologyDiagramReference ref = ((DiplodocusMethodologyDiagramReference)(getFather()));
+        	ref.makeCall(value, indexOnMe);
+        }
+        
+         
+        return true;
+    }
+    
+    
+    public  int getType() {
+        return TGComponentManager.AVATARMETHODOLOGY_DIAGRAM_NAME;
+    }
+    
+   	public int getDefaultConnector() {
+      return TGComponentManager.AVATARMETHODOLOGY_CONNECTOR;
+    }
+    
+    public void setValidationsNumber(int size) {
+    	validations = new int[size];
+    }
+    
+    public void setValidationsInfo(int _index, int _val) {
+    	validations[_index] = _val;
+    }
+    
+    public void rescale(double scaleFactor){
+		
+		if ((valMinX != null) && (valMinX.length > 0)) {
+			for(int i=0; i<valMinX.length; i++) {
+				valMinX[i] = (int)(valMinX[i] / oldScaleFactor * scaleFactor);
+				valMaxX[i] = (int)(valMaxX[i] / oldScaleFactor * scaleFactor);
+			}
+		}
+		
+		super.rescale(scaleFactor);
+	}
+}
diff --git a/src/ui/avatarmethodology/AvatarMethodologyDiagramPanel.java b/src/ui/avatarmethodology/AvatarMethodologyDiagramPanel.java
new file mode 100755
index 0000000000000000000000000000000000000000..371c10fc5bdc9c2ce3982de7d804f5f41379c6fc
--- /dev/null
+++ b/src/ui/avatarmethodology/AvatarMethodologyDiagramPanel.java
@@ -0,0 +1,138 @@
+/**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 AvatarMethodologyDiagramPanel
+ * Panel for displaying the diplodocus methodology
+* Creation: 26/08/2014
+* @version 1.0 26/08/2014
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.avatarmethodology;
+
+import org.w3c.dom.*;
+
+//import java.awt.*;
+import java.util.*;
+
+import ui.*;
+
+public class AvatarMethodologyDiagramPanel extends TDiagramPanel implements TDPWithAttributes {
+    //public Vector validated, ignored;
+    
+    public  AvatarMethodologyDiagramPanel(MainGUI mgui, TToolBar _ttb) {
+        super(mgui, _ttb);
+        /*TDiagramMouseManager tdmm = new TDiagramMouseManager(this);
+        addMouseListener(tdmm);
+        addMouseMotionListener(tdmm);*/
+    }
+    
+    public boolean actionOnDoubleClick(TGComponent tgc) {
+        return true;
+    }
+    
+    public boolean actionOnAdd(TGComponent tgc) {
+        /*if (tgc instanceof TCDTClass) {
+            TCDTClass tgcc = (TCDTClass)(tgc);
+            mgui.addTClass(tgcc.getClassName());
+            return true;
+        }*/
+        return false;
+    }
+    
+    public boolean actionOnRemove(TGComponent tgc) {
+        /*if (tgc instanceof TCDTClass) {
+            TCDTClass tgcc = (TCDTClass)(tgc);
+            mgui.removeTClass(tgcc.getClassName());
+            resetAllInstancesOf(tgcc);
+            return true;
+        }*/
+        return false;
+    }
+    
+    public boolean actionOnValueChanged(TGComponent tgc) {
+        /*if (tgc instanceof TCDTClass) {
+            return actionOnDoubleClick(tgc);
+        }*/
+        return false;
+    }
+    
+    public String getXMLHead() {
+        return "<AvatarMethodologyDiagramPanel name=\"" + name + "\"" + sizeParam() + zoomParam() + " >";
+    }
+    
+    public String getXMLTail() {
+        return "</AvatarMethodologyDiagramPanel>";
+    }
+    
+    public String getXMLSelectedHead() {
+        return "<AvatarMethodologyDiagramPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >";
+    }
+    
+    public String getXMLSelectedTail() {
+        return "</AvatarMethodologyDiagramPanelCopy>";
+    }
+    
+    public String getXMLCloneHead() {
+        return "<AvatarMethodologyDiagramPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >";
+    }
+    
+    public String getXMLCloneTail() {
+        return "</AvatarMethodologyDiagramPanelCopy>";
+    }
+    
+    
+    public void makePostLoadingProcessing() throws MalformedModelingException {
+        
+    }
+	
+	public void enhance() {
+		autoAdjust();
+    }
+    
+    public void loadExtraParameters(Element elt) {
+    }
+}
+
+
+
+
+
+
+
diff --git a/src/ui/avatarmethodology/AvatarMethodologyDiagramReference.java b/src/ui/avatarmethodology/AvatarMethodologyDiagramReference.java
new file mode 100755
index 0000000000000000000000000000000000000000..c6ded3f03cf8bbfb719e35d53a4d5a9d7142b401
--- /dev/null
+++ b/src/ui/avatarmethodology/AvatarMethodologyDiagramReference.java
@@ -0,0 +1,535 @@
+/**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 AvatarMethodologyDiagramReference
+* Diagram reference requirement: Used to reference diagrams from the
+* Avatar methodology
+* Creation: 26/08/2014
+* @version 1.0 26/08/2014
+* @author Ludovic APVRILLE
+* @see
+*/
+
+package ui.avatarmethodology;
+
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import java.util.*;
+
+import org.w3c.dom.*;
+
+import myutil.*;
+import ui.*;
+import ui.window.*;
+
+public abstract class AvatarMethodologyDiagramReference extends TGCScalableWithInternalComponent implements SwallowTGComponent  {
+    public String oldValue;
+    protected int textX = 5;
+    protected int textY = 22;
+	protected int lineHeight = 30;
+	protected double dlineHeight = 0.0;
+    //protected int reqType = 0;
+	// 0: normal, 1: formal, 2: security
+    //protected int startFontSize = 10;
+    protected Graphics graphics;
+    protected int iconSize = 30;
+	
+	protected Font myFont, myFontB;
+	protected int maxFontSize = 30;
+	protected int minFontSize = 4;
+	protected int currentFontSize = -1;
+	protected boolean displayText = true;
+	
+	protected int typeOfReference;
+    
+    protected final static String[] TYPE_STR = {"Requirements", "Application", "Architecture", "Mapping"};
+	protected final static int NB_TYPE = 3;
+	
+	protected final static int REQUIREMENT = 0;
+	protected final static int APPLICATION = 1;
+	protected final static int ARCHITECTURE = 2;
+	protected final static int MAPPING = 3;
+	
+	protected JMenuItem diagramReference; 
+	
+	
+	
+	// Icon
+	//private int iconSize = 18;
+	//private boolean iconIsDrawn = false;
+    
+    public AvatarMethodologyDiagramReference(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+        
+		initScaling(200, 120);
+		oldScaleFactor = tdp.getZoom();
+		dlineHeight = lineHeight * oldScaleFactor;
+		lineHeight = (int)dlineHeight;
+		dlineHeight = dlineHeight - lineHeight;
+		
+		minWidth = 10;
+        minHeight = lineHeight;
+        
+        addTGConnectingPointsCommentTop();    
+        
+        nbInternalTGComponent = 0;
+        //tgcomponent = new TGComponent[nbInternalTGComponent];
+        
+        int h = 1;
+        //TAttributeRequirement tgc0;
+        //tgc0 = new TAttributeRequirement(x, y+height+h, 0, 0, height + h, height+h, true, this, _tdp);
+        //tgcomponent[0] = tgc0;
+        
+        moveable = true;
+        editable = true;
+        removable = false;
+        userResizable = true;
+		multieditable = true;
+		
+		
+        
+        oldValue = value;
+        
+        myImageIcon = IconManager.imgic5006;
+		
+		
+        actionOnAdd();
+    }
+	
+    
+    public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+		int w, c;
+		int size;
+		
+		value = TYPE_STR[typeOfReference];
+		
+        if (!tdp.isScaled()) {
+            graphics = g;
+        }
+		
+		if (((rescaled) && (!tdp.isScaled())) || myFont == null) {
+			currentFontSize = tdp.getFontSize();
+			//System.out.println("Rescaled, font size = " + currentFontSize + " height=" + height);
+			myFont = f.deriveFont((float)currentFontSize);
+			myFontB = myFont.deriveFont(Font.BOLD);
+			
+			if (rescaled) {
+				rescaled = false;
+			}
+		}
+		
+		if(currentFontSize <minFontSize) {
+			displayText = false;
+		} else {
+			displayText = true;
+		}
+		
+		int h  = g.getFontMetrics().getHeight();
+        
+		g.setColor(ColorManager.AVATAR_REQUIREMENT_TOP);
+		g.fillRect(x, y, width, height);
+		ColorManager.setColor(g, getState(), 0);
+		g.drawRect(x, y, width, height);
+        
+		//g.drawLine(x, y+lineHeight, x+width, y+lineHeight);
+		//g.setColor(ColorManager.AVATAR_REQUIREMENT_TOP);
+        //g.fillRect(x+1, y+1, width-1, lineHeight-1);
+		//g.setColor(ColorManager.AVATAR_REQUIREMENT_TOP);
+		//g.fillRect(x+1, y+1+lineHeight, width-1, height-1-lineHeight);
+		ColorManager.setColor(g, getState(), 0);
+		if ((lineHeight > 23) && (width > 23)){
+			g.drawImage(IconManager.img5100, x + width - iconSize + 1, y + 3, Color.yellow, null);
+		}
+		
+		if (displayText) {
+			size = currentFontSize - 2;
+			g.setFont(myFontB);
+		
+			drawLimitedString(g, value, x, y + size + 3, width, 1);
+			g.setFont(f);
+		}
+		
+		/*if (displayText) {
+			size = currentFontSize - 2;
+			g.setFont(myFont.deriveFont((float)(myFont.getSize() - 2)));
+		
+			drawLimitedString(g, REQ_TYPE_STR[reqType], x, y + size, width, 1);
+	
+			size += currentFontSize;
+			g.setFont(myFontB);
+			w = g.getFontMetrics().stringWidth(value);
+			drawLimitedString(g, value, x, y + size, width, 1);
+			
+		}
+		
+		if (verified) {
+			if (satisfied) {
+				Color tmp = g.getColor();
+				GraphicLib.setMediumStroke(g);
+				g.setColor(Color.green);
+				g.drawLine(x+width-2, y-6+lineHeight, x+width-6, y-2+lineHeight);
+				g.drawLine(x+width-6, y-3+lineHeight, x+width-8, y-6+lineHeight);
+				g.setColor(tmp);
+				GraphicLib.setNormalStroke(g);
+			} else {
+				//g.drawString("acc", x + width - 10, y+height-10);
+				Color tmp = g.getColor();
+				GraphicLib.setMediumStroke(g);
+				g.setColor(Color.red);
+				g.drawLine(x+width-2, y-2+lineHeight, x+width-8, y-8+lineHeight);
+				g.drawLine(x+width-8, y-2+lineHeight, x+width-2, y-8+lineHeight);
+				g.setColor(tmp);
+				GraphicLib.setNormalStroke(g);
+			}
+		}
+		
+		g.setFont(myFont);
+		String texti = "Text";
+		String s ;
+		int i;
+		size = lineHeight + currentFontSize;
+		
+		//ID
+		if (size < (height - 2)) {
+			drawLimitedString(g, "ID=" + id, x + textX, y + size, width, 0);
+		}
+		size += currentFontSize;
+		
+		//text
+        for(i=0; i<texts.length; i++) {
+			if (size < (height - 2)) {
+				s = texts[i];
+				if (i == 0) {
+					s = texti + "=\"" + s;
+				}
+				if (i == (texts.length - 1)) {
+					s = s + "\"";
+				}
+				drawLimitedString(g, s, x + textX, y + size, width, 0);
+			}
+			size += currentFontSize;
+            
+        }
+        // Type and risk
+		if (size < (height - 2)) {
+			drawLimitedString(g, "Kind=\"" + kind + "\"", x + textX, y + size, width, 0);
+			size += currentFontSize;
+			if (size < (height - 2)) {
+				drawLimitedString(g, "Risk=\"" + criticality + "\"", x + textX, y + size, width, 0);
+				size += currentFontSize;
+				if (size < (height - 2)) {
+					
+					drawLimitedString(g, "Reference elements=\"" + referenceElements + "\"", x + textX, y + size, width, 0);
+					
+					size += currentFontSize;
+					if (size < (height - 2)) {
+						
+						if (reqType == SECURITY_REQ) {
+							drawLimitedString(g, "Targeted attacks=\"" + attackTreeNode + "\"", x + textX, y + size, width, 0);
+						}
+						
+						if (reqType == SAFETY_REQ) {
+							drawLimitedString(g, "Violated action=\"" + violatedAction + "\"", x + textX, y + size, width, 0);
+						}
+					}
+				}
+			}
+		}
+		
+        
+        g.setFont(f);*/
+    }
+    
+	public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
+		addDiagramReference(frame);
+		return true;
+		// On the name ?
+        /*oldValue = value;
+		
+        if ((displayText) && (_y <= (y + lineHeight))) {
+			String text = getName() + ": ";
+			if (hasFather()) {
+				text = getTopLevelName() + " / " + text;
+			}
+			String s = (String)JOptionPane.showInputDialog(frame, text,
+				"setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101,
+				null,
+				getValue());
+			
+			if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
+				//boolean b;
+				if (!TAttribute.isAValidId(s, false, false)) {
+					JOptionPane.showMessageDialog(frame,
+						"Could not change the name of the Requirement: the new name is not a valid name",
+						"Error",
+						JOptionPane.INFORMATION_MESSAGE);
+					return false;
+				}
+				
+				if (!tdp.isRequirementNameUnique(s)) {
+					JOptionPane.showMessageDialog(frame,
+						"Could not change the name of the Requirement: the new name is already in use",
+						"Error",
+						JOptionPane.INFORMATION_MESSAGE);
+					return false;
+				}
+				
+				
+				int size = graphics.getFontMetrics().stringWidth(s) + iconSize + 5;
+				minDesiredWidth = Math.max(size, minWidth);
+				if (minDesiredWidth != width) {
+					newSizeForSon(null);
+				}
+				setValue(s);
+				
+				if (tdp.actionOnDoubleClick(this)) {
+					return true;
+				} else {
+					JOptionPane.showMessageDialog(frame,
+						"Could not change the name of the Requirement: this name is already in use",
+						"Error",
+						JOptionPane.INFORMATION_MESSAGE);
+					setValue(oldValue);
+				}
+			}
+			return false;
+		}
+		
+		return editAttributes();*/
+		
+    }
+	
+	
+	public void rescale(double scaleFactor){
+		dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
+		lineHeight = (int)(dlineHeight);
+		dlineHeight = dlineHeight - lineHeight; 
+		
+		minHeight = lineHeight;
+		
+		super.rescale(scaleFactor);
+	}
+    
+    
+    public TGComponent isOnOnlyMe(int x1, int y1) {
+        if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
+            return this;
+        }
+        return null;
+    }
+    
+    
+    
+    public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+		
+		componentMenu.addSeparator();
+		
+		diagramReference = new JMenuItem("Add diagram reference");
+		diagramReference.addActionListener(menuAL);
+		
+		componentMenu.add(diagramReference);
+    }
+    
+    public boolean eventOnPopup(ActionEvent e) {
+        String s = e.getActionCommand();
+		
+		if (e.getSource() == diagramReference) {
+			addDiagramReference(null);
+		} 
+		
+        return true;
+    }
+    
+    public void addDiagramReference(JFrame frame) {
+    	JDialogManageListOfString jdmlos;
+    	Vector<String> ignored; // Must be built from non selected TMLTaskDiagramPanel or TMLCompPanel
+    	Vector<String> selected; // Must be built from refered diagrams that have not been 
+    	
+    	ignored = new Vector<String>();
+    	selected = new Vector<String>();
+    	
+    	fillIgnoredSelectedFromInternalComponents(ignored, selected);
+    	
+    	jdmlos = new JDialogManageListOfString(frame, ignored, selected, "Selection of diagrams");
+    	jdmlos.setSize(550, 350);
+        GraphicLib.centerOnParent(jdmlos);
+        jdmlos.show();
+        
+        ignored = jdmlos.getIgnored();
+        selected = jdmlos.getSelected();
+        
+        
+        // We must first remove from internalComponents the one that are now ignored
+        AvatarMethodologyDiagramName dn;
+        TGComponent t;
+        int i;
+        for(String s: ignored) {
+        	t = null;
+        	for(i=0; i<nbInternalTGComponent; i++) {
+        		dn =  (DiplodocusMethodologyDiagramName)tgcomponent[i];
+        		if (dn.getValue().compareTo(s) == 0) {
+        			t = dn;
+        			break;
+        		}
+        	}
+        	if (t != null) {
+        		removeInternalComponent(t);
+        	}
+        }
+        
+        
+        // We then add the ones that are newly selected
+        int index;
+        index = 0;
+        int tmpx, tmpy; 
+        for(String s: selected) {
+        	if (!hasDiplodocusMethodologyDiagramName(s)) {	
+        		tmpy = (int)(y + (40*tdp.getZoom()) + (index * 15 *tdp.getZoom()));
+        		tmpx = (int)(AvatarMethodologyDiagramName.X_MARGIN*tdp.getZoom());
+        		dn = new  AvatarMethodologyDiagramName(x+tmpx, tmpy, x+tmpx, x+tmpx, tmpy, tmpy, true, this, getTDiagramPanel());
+        		//makeValidationInfos(dn);
+        		dn.setValue(s);
+        		addInternalComponent(dn, index);
+        		
+        	}
+        	index ++;
+        }
+    }
+    
+    public abstract void makeValidationInfos(DiplodocusMethodologyDiagramName dn);
+    
+    public boolean hasDiplodocusMethodologyDiagramName(String s) {
+    	for(int i=0; i<nbInternalTGComponent; i++) {
+    		if (tgcomponent[i].getValue().compareTo(s) == 0) {
+    			return true;
+    		}
+    	}
+    	return false;
+    }
+    
+    
+    public void fillIgnoredSelectedFromInternalComponents(Vector<String> ignored, Vector<String>selected) {
+    	// Get from mgui the list of all diagrams with type depends from the subclass
+    	// If diagrams have the same name -> we do not see the difference
+    	
+    	TURTLEPanel tp;
+    	Vector tabs = getTDiagramPanel().getMGUI().getTabs();
+    	for(Object o: tabs) {
+    		tp = (TURTLEPanel)o;
+    		if (isAValidPanelType(tp)) {
+    			ignored.add(getTDiagramPanel().getMGUI().getTitleAt(tp));
+    		}
+    	}
+    	
+    	Vector<String> newSelected = new Vector<String>();
+    	TGComponent tgc;
+    	//Consider internal components (text) to figure out the ones that are selected
+    	for(int i=0; i<nbInternalTGComponent; i++) {
+    		tgc = tgcomponent[i];
+    		if (tgc instanceof AvatarMethodologyDiagramName) {
+    			newSelected.add(tgc.getValue());
+    		}
+    	}
+    	
+    	// Remove from selected the one that do not exist anymore
+    	Vector<String> toBeRemoved = new Vector<String>();
+    	boolean found;
+    	for(String s: newSelected) {
+    		found = false;
+    		for(String ss: ignored) {
+    			if (ss.compareTo(s) == 0) {
+    				toBeRemoved.add(ss);
+    				found = true;
+    			}
+    		}
+    		if (found) {
+    			selected.add(s);
+    		}
+    	}
+    	
+    	for(String s: toBeRemoved) {
+    		ignored.remove(s);
+    	}
+    	
+    }
+    
+    public abstract boolean isAValidPanelType(TURTLEPanel panel);
+    
+    public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+    	if (tgc instanceof AvatarMethodologyDiagramName) {
+    		return true;
+    	}
+    	return false;
+    }
+    
+    public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+    	tgc.setFather(this);
+    	addInternalComponent(tgc, 0);
+    	//tgc.setDrawingZone(true);
+    	return true;
+    }
+    
+    public void removeSwallowedTGComponent(TGComponent tgc) {
+    	removeInternalComponent(tgc);
+    }
+    
+    public abstract boolean makeCall(String diagramName, int index);
+    
+    protected boolean openDiagram(String tabName) {
+    	if (!tdp.getMGUI().selectMainTab(tabName)) {
+    		TraceManager.addDev("Diagram removed?");
+    		return false;
+    	}
+        return true;
+    }
+    
+    protected void giveInformation(String info) {
+    	tdp.getMGUI().setStatusBarText(info);
+    }
+    
+    
+    
+    /*public String getDiagramReferences() {
+        return referenceElements;
+    }*/
+    
+}
diff --git a/src/ui/avatarmethodology/AvatarMethodologyDiagramReferenceToRequirement.java b/src/ui/avatarmethodology/AvatarMethodologyDiagramReferenceToRequirement.java
new file mode 100755
index 0000000000000000000000000000000000000000..54eee31563cb5065cad2561af9644a106b606c87
--- /dev/null
+++ b/src/ui/avatarmethodology/AvatarMethodologyDiagramReferenceToRequirement.java
@@ -0,0 +1,99 @@
+/**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 AvatarMethodologyDiagramReferenceToRequirement
+* Diagram reference requirement: Used to reference diagrams from the
+* Diplodocus methodology
+* Creation: 28/03/2014
+* @version 1.0 28/03/2014
+* @author Ludovic APVRILLE
+* @see
+*/
+
+package ui.diplodocusmethodology;
+
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+import org.w3c.dom.*;
+
+import myutil.*;
+import ui.*;
+import ui.window.*;
+
+public class AvatarMethodologyDiagramReferenceToRequirement extends DiplodocusMethodologyDiagramReference  {
+   
+	
+    public AvatarMethodologyDiagramReferenceToRequirement(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+        
+		initScaling(200, 120);
+        
+        nbConnectingPoint = 1;
+        connectingPoint = new TGConnectingPoint[nbConnectingPoint];
+        connectingPoint[0] = new AvatarMethodologyConnectingPoint(this, 0, 0, false, true, 0.5, 1.0, TGConnectingPoint.WEST);
+        
+        typeOfReference = REQUIREMENT;
+        
+        addTGConnectingPointsCommentTop();    
+        
+    }
+	
+    public  int getType() {
+        return TGComponentManager.AVATARMETHODOLOGY_REF_REQUIREMENT;
+    }
+    
+    public boolean isAValidPanelType(TURTLEPanel panel) {
+    	if (panel instanceof AvatarRequirementPanel) {
+    		return true;
+    	}
+    	
+    	return false;
+    }
+    
+    public void makeValidationInfos(AvatarMethodologyDiagramName dn) {
+    	dn.setValidationsNumber(0);
+    }
+    
+    public boolean makeCall(String diagramName, int index) {
+    	return true;
+    }
+      
+}
diff --git a/src/ui/avatarmethodology/AvatarMethodologyDiagramToolbar.java b/src/ui/avatarmethodology/AvatarMethodologyDiagramToolbar.java
new file mode 100755
index 0000000000000000000000000000000000000000..23bf7568456e89e8480a6d8facea9b1ba39845d6
--- /dev/null
+++ b/src/ui/avatarmethodology/AvatarMethodologyDiagramToolbar.java
@@ -0,0 +1,146 @@
+/**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 AvatarMethodologyDiagramToolbar
+ * Implements the toolbar to be used in conjunction with the Avatar Methodology
+* Creation: 26/08/2014
+* @version 1.0 26/08/2014
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.avatarmethodology;
+
+import javax.swing.*;
+//import java.awt.*;
+//import java.awt.event.*;
+
+import ui.*;
+
+public class AvatarMethodologyDiagramToolbar extends TToolBar {
+    
+    public AvatarMethodologyDiagramToolbar(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.ARD_EDIT].setEnabled(b);
+        mgui.actions[TGUIAction.UML_NOTE].setEnabled(b);
+        mgui.actions[TGUIAction.CONNECTOR_COMMENT].setEnabled(b);
+        /*mgui.actions[TGUIAction.ARD_REQUIREMENT].setEnabled(b);
+        mgui.actions[TGUIAction.ARD_PROPERTY].setEnabled(b);
+        mgui.actions[TGUIAction.ARD_VERIFY_CONNECTOR].setEnabled(b);
+        mgui.actions[TGUIAction.ARD_DERIVE_CONNECTOR].setEnabled(b);
+		mgui.actions[TGUIAction.ARD_REFINE_CONNECTOR].setEnabled(b);
+		mgui.actions[TGUIAction.ARD_COPY_CONNECTOR].setEnabled(b);
+		mgui.actions[TGUIAction.ARD_COMPOSITION_CONNECTOR].setEnabled(b);
+		
+		mgui.actions[TGUIAction.ACT_TOGGLE_ATTR].setEnabled(b);
+		
+		mgui.actions[TGUIAction.ACT_ENHANCE].setEnabled(b);*/
+        
+    }
+    
+    protected void setButtons() {
+        JButton button;
+        
+        /*button = this.add(mgui.actions[TGUIAction.ARD_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.ARD_REQUIREMENT]);
+        button.addMouseListener(mgui.mouseHandler);
+        
+        button = this.add(mgui.actions[TGUIAction.ARD_PROPERTY]);
+        button.addMouseListener(mgui.mouseHandler);
+        
+        this.addSeparator();
+        
+		button = this.add(mgui.actions[TGUIAction.ARD_COMPOSITION_CONNECTOR]);
+        button.addMouseListener(mgui.mouseHandler);
+		
+        button = this.add(mgui.actions[TGUIAction.ARD_DERIVE_CONNECTOR]);
+        button.addMouseListener(mgui.mouseHandler);
+		
+		button = this.add(mgui.actions[TGUIAction.ARD_COPY_CONNECTOR]);
+        button.addMouseListener(mgui.mouseHandler);
+		
+		this.addSeparator();
+		
+		button = this.add(mgui.actions[TGUIAction.ARD_REFINE_CONNECTOR]);
+        button.addMouseListener(mgui.mouseHandler);
+		
+		this.addSeparator();
+        
+        button = this.add(mgui.actions[TGUIAction.ARD_VERIFY_CONNECTOR]);
+        button.addMouseListener(mgui.mouseHandler);
+		
+		this.addSeparator();
+		
+		button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_ATTR]);
+        button.addMouseListener(mgui.mouseHandler);
+		
+		this.addSeparator();
+         
+        button = this.add(mgui.actions[TGUIAction.ACT_ENHANCE]);
+        button.addMouseListener(mgui.mouseHandler);*/
+        
+    }
+    
+} // Class
+
+
+
+
+