diff --git a/Makefile b/Makefile index 29ddd4b2876513340b1841fb73d401f3bb0726ae..414769becbe264aa9273e910d70440d0cf55a67a 100755 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ GZIP = gzip -9 -f DEBUG = -g CLASSPATH = -classpath SOURCEPATH = -sourcepath -PACKAGE = avatartranslator avatartranslator/toexecutable avatartranslator/directsimulation avatartranslator/tocppsim avatartranslator/touppaal avatartranslator/toturtle avatartranslator/toproverif avatartranslator/totpn automata compiler/tmlparser vcd nc ddtranslator launcher myutil tpndescription sddescription sdtranslator tepe translator tmltranslator tmltranslator/tmlcp tmltranslator/toautomata tmltranslator/tosystemc tmltranslator/tomappingsystemc tmltranslator/tomappingsystemc2 tmltranslator/tomappingsystemc3 tmltranslator/touppaal tmltranslator/toturtle translator/tojava translator/tosimujava translator/totpn translator/touppaal ui ui/avatarbd ui/avatardd ui/avatarsmd ui/avatarrd ui/avatarpd ui/avatarcd ui/avatarad ui/ad ui/cd ui/oscd ui/osad ui/dd ui/ebrdd ui/file ui/graph ui/iod ui/ncdd ui/procsd ui/prosmdui/prosmd/util ui/tmlad ui/tmlcd ui/tmldd ui/tmlcomp ui/req ui/sd ui/tree ui/ucd ui/window tmltranslator tmltranslator/toturtle req/ebrdd tmltranslator/tosystemc tmatrix proverifspec uppaaldesc fr/inria/oasis/vercors/cttool/model remotesimulation tmltranslator/ctranslator +PACKAGE = avatartranslator avatartranslator/toexecutable avatartranslator/directsimulation avatartranslator/tocppsim avatartranslator/touppaal avatartranslator/toturtle avatartranslator/toproverif avatartranslator/totpn automata compiler/tmlparser vcd nc ddtranslator launcher myutil tpndescription sddescription sdtranslator tepe translator tmltranslator tmltranslator/tmlcp tmltranslator/toautomata tmltranslator/tosystemc tmltranslator/tomappingsystemc tmltranslator/tomappingsystemc2 tmltranslator/tomappingsystemc3 tmltranslator/touppaal tmltranslator/toturtle translator/tojava translator/tosimujava translator/totpn translator/touppaal ui ui/avatarbd ui/avatardd ui/avatarsmd ui/avatarrd ui/avatarpd ui/avatarcd ui/avatarad ui/ad ui/cd ui/oscd ui/osad ui/dd ui/ebrdd ui/file ui/graph ui/iod ui/ncdd ui/procsd ui/prosmdui/prosmd/util ui/tmlad ui/tmlcd ui/tmldd ui/tmlcomp ui/req ui/sd ui/tree ui/ucd ui/window tmltranslator tmltranslator/toturtle req/ebrdd tmltranslator/tosystemc tmatrix proverifspec uppaaldesc fr/inria/oasis/vercors/cttool/model remotesimulation tmltranslator/ctranslator attacktrees BUILDER = builder.jar BUILD_INFO = build.txt BUILD_TO_MODIFY = src/ui/DefaultText.java @@ -106,7 +106,7 @@ jar: launcher ttooljar tiftranslator tmltranslator rundse remotesimulator ttooljar: rm -f $(TTOOL_BIN)/$(TTOOL_BINARY) cp $(TTOOL_SRC)/ui/images/$(STD_LOGO) $(TTOOL_SRC)/ui/images/$(LOGO) - cd $(TTOOL_SRC); $(JAR) cmf $(TTOOL_JAR_TXT) $(TTOOL_BIN)/$(TTOOL_BINARY) Main.class vcd/*.class avatartranslator/*.class avatartranslator/toexecutable/*.class avatartranslator/directsimulation/*.class avatartranslator/touppaal/*.class avatartranslator/toproverif/*.class avatartranslator/totpn/* avatartranslator/*.class avatartranslator/toturtle/*.java automata/*.class compiler/tmlparser/*.class nc/*.class tepe/*.class tmltranslator/*.class tmltranslator/tmlcp/*.class tmltranslator/toautomata/*.class tmatrix/*.class tmltranslator/toturtle/*.class tmltranslator/touppaal/*.class tmltranslator/tosystemc/*.class tmltranslator/tomappingsystemc/*.class tmltranslator/tomappingsystemc2/*.class tmltranslator/tomappingsystemc3/*.class tpndescription/*.class ddtranslator/*.class launcher/*.class myutil/*.class sddescription/*.class sdtranslator/*.class translator/*.class translator/tojava/*.class translator/tosimujava/*.class translator/touppaal/*.class translator/totpn/*.class req/ebrdd/*.java ui/*.class ui/*/*.class ui/*/*/*.class proverifspec/*.class uppaaldesc/*.class ui/images/*.* ui/images/toolbarButtonGraphics/general/*.gif ui/images/toolbarButtonGraphics/navigation/*.gif ui/images/toolbarButtonGraphics/media/*.gif $(TTOOL_BIN)/$(LAUNCHER_BINARY) RTLLauncher.class launcher/*.class fr/inria/oasis/vercors/cttool/model/*.class remotesimulation/*.class tmltranslator/ctranslator/*.class #compiler/tmlCPparser/parser/*.class + cd $(TTOOL_SRC); $(JAR) cmf $(TTOOL_JAR_TXT) $(TTOOL_BIN)/$(TTOOL_BINARY) Main.class vcd/*.class avatartranslator/*.class avatartranslator/toexecutable/*.class avatartranslator/directsimulation/*.class avatartranslator/touppaal/*.class avatartranslator/toproverif/*.class avatartranslator/totpn/* avatartranslator/*.class avatartranslator/toturtle/*.java automata/*.class compiler/tmlparser/*.class nc/*.class tepe/*.class tmltranslator/*.class tmltranslator/tmlcp/*.class tmltranslator/toautomata/*.class tmatrix/*.class tmltranslator/toturtle/*.class tmltranslator/touppaal/*.class tmltranslator/tosystemc/*.class tmltranslator/tomappingsystemc/*.class tmltranslator/tomappingsystemc2/*.class tmltranslator/tomappingsystemc3/*.class tpndescription/*.class ddtranslator/*.class launcher/*.class myutil/*.class sddescription/*.class sdtranslator/*.class translator/*.class translator/tojava/*.class translator/tosimujava/*.class translator/touppaal/*.class translator/totpn/*.class req/ebrdd/*.java ui/*.class ui/*/*.class ui/*/*/*.class proverifspec/*.class uppaaldesc/*.class ui/images/*.* ui/images/toolbarButtonGraphics/general/*.gif ui/images/toolbarButtonGraphics/navigation/*.gif ui/images/toolbarButtonGraphics/media/*.gif $(TTOOL_BIN)/$(LAUNCHER_BINARY) RTLLauncher.class launcher/*.class fr/inria/oasis/vercors/cttool/model/*.class remotesimulation/*.class tmltranslator/ctranslator/*.class attacktrees/*.class #compiler/tmlCPparser/parser/*.class launcher: rm -f $(TTOOL_BIN)/$(LAUNCHER_BINARY) diff --git a/modeling/CoffeeMachine_Avatar.xml b/modeling/CoffeeMachine_Avatar.xml index 600d23c64741149a35aea9da7aed60917dcacb82..f5806191f354c6140f8ab8f7ffbfbf624d26d74c 100644 --- a/modeling/CoffeeMachine_Avatar.xml +++ b/modeling/CoffeeMachine_Avatar.xml @@ -506,7 +506,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="265" /> -<P1 x="313" y="261" id="296" /> +<P1 x="313" y="261" id="309" /> <P2 x="361" y="261" id="284" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -524,7 +524,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="269" /> -<P1 x="309" y="211" id="309" /> +<P1 x="309" y="211" id="296" /> <P2 x="361" y="211" id="283" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -613,11 +613,11 @@ </COMPONENT> <SUBCOMPONENT type="5304" id="306" > <father id="344" num="0" /> -<cdparam x="165" y="241" /> -<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="170" y="191" /> +<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> +<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> <TGConnectingPoint num="0" id="294" /> <TGConnectingPoint num="1" id="295" /> <TGConnectingPoint num="2" id="296" /> @@ -633,11 +633,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="5304" id="319" > <father id="344" num="1" /> -<cdparam x="170" y="191" /> -<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="165" y="241" /> +<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> +<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> <TGConnectingPoint num="0" id="307" /> <TGConnectingPoint num="1" id="308" /> <TGConnectingPoint num="2" id="309" /> @@ -767,7 +767,7 @@ <TGConnectingPoint num="0" id="403" /> <TGConnectingPoint num="1" id="404" /> <TGConnectingPoint num="2" id="405" /> -<P1 x="581" y="154" id="492" /> +<P1 x="581" y="154" id="479" /> <P2 x="546" y="305" id="549" /> <Point x="518" y="154" /> <Point x="518" y="305" /> @@ -795,7 +795,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="408" /> <TGConnectingPoint num="1" id="409" /> -<P1 x="631" y="164" id="487" /> +<P1 x="631" y="164" id="474" /> <P2 x="667" y="310" id="536" /> <Point x="631" y="310" /> <AutomaticDrawing data="true" /> @@ -823,7 +823,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="414" /> <TGConnectingPoint num="1" id="415" /> -<P1 x="721" y="158" id="472" /> +<P1 x="721" y="158" id="485" /> <P2 x="700" y="204" id="526" /> <Point x="700" y="158" /> <AutomaticDrawing data="true" /> @@ -978,13 +978,13 @@ <TGConnectingPoint num="22" id="519" /> <TGConnectingPoint num="23" id="520" /> </COMPONENT> -<SUBCOMPONENT type="5303" id="483" > +<SUBCOMPONENT type="5304" id="483" > <father id="521" num="0" /> -<cdparam x="721" y="133" /> -<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="581" y="125" /> +<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> -<infoparam name="TGComponent" value="nbOfCoins" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> +<infoparam name="TGComponent" value="Start" /> <TGConnectingPoint num="0" id="471" /> <TGConnectingPoint num="1" id="472" /> <TGConnectingPoint num="2" id="473" /> @@ -997,17 +997,14 @@ <TGConnectingPoint num="9" id="480" /> <TGConnectingPoint num="10" id="481" /> <TGConnectingPoint num="11" id="482" /> -<extraparam> -<Toggle value="" /> -</extraparam> </SUBCOMPONENT> -<SUBCOMPONENT type="5304" id="496" > +<SUBCOMPONENT type="5303" id="496" > <father id="521" num="1" /> -<cdparam x="581" y="125" /> -<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="721" y="133" /> +<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> -<infoparam name="TGComponent" value="Start" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> +<infoparam name="TGComponent" value="nbOfCoins" /> <TGConnectingPoint num="0" id="484" /> <TGConnectingPoint num="1" id="485" /> <TGConnectingPoint num="2" id="486" /> @@ -1020,6 +1017,9 @@ <TGConnectingPoint num="9" id="493" /> <TGConnectingPoint num="10" id="494" /> <TGConnectingPoint num="11" id="495" /> +<extraparam> +<Toggle value="" /> +</extraparam> </SUBCOMPONENT> <COMPONENT type="5306" id="533" > @@ -1149,7 +1149,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="586" /> -<P1 x="559" y="330" id="623" /> +<P1 x="559" y="330" id="648" /> <P2 x="560" y="377" id="681" /> <AutomaticDrawing data="true" /> <extraparam> @@ -1179,7 +1179,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="590" /> -<P1 x="789" y="326" id="648" /> +<P1 x="789" y="326" id="623" /> <P2 x="790" y="377" id="682" /> <AutomaticDrawing data="true" /> <extraparam> @@ -1278,11 +1278,11 @@ </COMPONENT> <SUBCOMPONENT type="5000" id="641" > <father id="691" num="0" /> -<cdparam x="464" y="228" /> -<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="695" y="224" /> +<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> -<infoparam name="Block1" value="CoffeeButton" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> +<infoparam name="Block1" value="TeaButton" /> <TGConnectingPoint num="0" id="617" /> <TGConnectingPoint num="1" id="618" /> <TGConnectingPoint num="2" id="619" /> @@ -1315,11 +1315,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="5000" id="666" > <father id="691" num="1" /> -<cdparam x="695" y="224" /> -<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="464" y="228" /> +<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> -<infoparam name="Block1" value="TeaButton" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> +<infoparam name="Block1" value="CoffeeButton" /> <TGConnectingPoint num="0" id="642" /> <TGConnectingPoint num="1" id="643" /> <TGConnectingPoint num="2" id="644" /> @@ -1732,7 +1732,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="886" /> -<P1 x="437" y="525" id="1285" /> +<P1 x="437" y="525" id="1220" /> <P2 x="323" y="748" id="1146" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="885" > @@ -1761,8 +1761,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="893" /> -<P1 x="321" y="455" id="1234" /> -<P2 x="437" y="495" id="1284" /> +<P1 x="321" y="455" id="1247" /> +<P2 x="437" y="495" id="1219" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="892" > <father id="894" num="0" /> @@ -1789,7 +1789,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="900" /> -<P1 x="293" y="552" id="1220" /> +<P1 x="293" y="552" id="1285" /> <P2 x="289" y="748" id="1138" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="899" > @@ -1811,6 +1811,8 @@ <computeMax value="teaMaxDelay" /> <actions value="nbOfCoins = 0" /> <actions value="beverageReady()" /> +<filesToIncludeLine value="" /> +<codeToIncludeLine value="" /> </extraparam> </SUBCOMPONENT> @@ -1819,8 +1821,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="907" /> -<P1 x="288" y="475" id="1245" /> -<P2 x="293" y="522" id="1219" /> +<P1 x="288" y="475" id="1258" /> +<P2 x="293" y="522" id="1284" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="906" > <father id="908" num="0" /> @@ -1847,7 +1849,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="914" /> -<P1 x="121" y="552" id="1274" /> +<P1 x="121" y="552" id="1231" /> <P2 x="255" y="748" id="1145" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="913" > @@ -1877,8 +1879,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="921" /> -<P1 x="222" y="475" id="1244" /> -<P2 x="121" y="522" id="1273" /> +<P1 x="222" y="475" id="1257" /> +<P2 x="121" y="522" id="1230" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="920" > <father id="922" num="0" /> @@ -1905,8 +1907,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="928" /> -<P1 x="256" y="419" id="1271" /> -<P2 x="255" y="435" id="1231" /> +<P1 x="256" y="419" id="1241" /> +<P2 x="255" y="435" id="1244" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="927" > <father id="929" num="0" /> @@ -2052,7 +2054,7 @@ </CONNECTOR><SUBCOMPONENT type="-1" id="962" > <father id="964" num="0" /> <cdparam x="328" y="178" /> -<sizeparam width="161" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="165" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -2489,13 +2491,13 @@ <extraparam> </extraparam> </COMPONENT> -<SUBCOMPONENT type="5104" id="1229" > +<SUBCOMPONENT type="5103" id="1229" > <father id="1335" num="0" /> -<cdparam x="237" y="527" /> -<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="372" y="500" /> +<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushTeaButton()" /> +<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> <TGConnectingPoint num="0" id="1219" /> <TGConnectingPoint num="1" id="1220" /> <TGConnectingPoint num="2" id="1221" /> @@ -2508,13 +2510,13 @@ <TGConnectingPoint num="9" id="1228" /> <accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5106" id="1270" > +<SUBCOMPONENT type="5104" id="1240" > <father id="1335" num="1" /> -<cdparam x="189" y="435" /> -<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="58" y="527" /> +<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> -<infoparam name="state0" value="WaitingForSelection" /> +<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushCoffeeButton()" /> <TGConnectingPoint num="0" id="1230" /> <TGConnectingPoint num="1" id="1231" /> <TGConnectingPoint num="2" id="1232" /> @@ -2525,74 +2527,74 @@ <TGConnectingPoint num="7" id="1237" /> <TGConnectingPoint num="8" id="1238" /> <TGConnectingPoint num="9" id="1239" /> -<TGConnectingPoint num="10" id="1240" /> -<TGConnectingPoint num="11" id="1241" /> -<TGConnectingPoint num="12" id="1242" /> -<TGConnectingPoint num="13" id="1243" /> -<TGConnectingPoint num="14" id="1244" /> -<TGConnectingPoint num="15" id="1245" /> -<TGConnectingPoint num="16" id="1246" /> -<TGConnectingPoint num="17" id="1247" /> -<TGConnectingPoint num="18" id="1248" /> -<TGConnectingPoint num="19" id="1249" /> -<TGConnectingPoint num="20" id="1250" /> -<TGConnectingPoint num="21" id="1251" /> -<TGConnectingPoint num="22" id="1252" /> -<TGConnectingPoint num="23" id="1253" /> -<TGConnectingPoint num="24" id="1254" /> -<TGConnectingPoint num="25" id="1255" /> -<TGConnectingPoint num="26" id="1256" /> -<TGConnectingPoint num="27" id="1257" /> -<TGConnectingPoint num="28" id="1258" /> -<TGConnectingPoint num="29" id="1259" /> -<TGConnectingPoint num="30" id="1260" /> -<TGConnectingPoint num="31" id="1261" /> -<TGConnectingPoint num="32" id="1262" /> -<TGConnectingPoint num="33" id="1263" /> -<TGConnectingPoint num="34" id="1264" /> -<TGConnectingPoint num="35" id="1265" /> -<TGConnectingPoint num="36" id="1266" /> -<TGConnectingPoint num="37" id="1267" /> -<TGConnectingPoint num="38" id="1268" /> -<TGConnectingPoint num="39" id="1269" /> -<extraparam> -</extraparam> +<accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5100" id="1272" > +<SUBCOMPONENT type="5100" id="1242" > <father id="1335" num="2" /> <cdparam x="249" y="399" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1271" /> +<TGConnectingPoint num="0" id="1241" /> </SUBCOMPONENT> -<SUBCOMPONENT type="5104" id="1283" > +<SUBCOMPONENT type="5106" id="1283" > <father id="1335" num="3" /> -<cdparam x="58" y="527" /> -<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="189" y="435" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushCoffeeButton()" /> -<TGConnectingPoint num="0" id="1273" /> -<TGConnectingPoint num="1" id="1274" /> -<TGConnectingPoint num="2" id="1275" /> -<TGConnectingPoint num="3" id="1276" /> -<TGConnectingPoint num="4" id="1277" /> -<TGConnectingPoint num="5" id="1278" /> -<TGConnectingPoint num="6" id="1279" /> -<TGConnectingPoint num="7" id="1280" /> -<TGConnectingPoint num="8" id="1281" /> -<TGConnectingPoint num="9" id="1282" /> -<accessibility /> +<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> +<infoparam name="state0" value="WaitingForSelection" /> +<TGConnectingPoint num="0" id="1243" /> +<TGConnectingPoint num="1" id="1244" /> +<TGConnectingPoint num="2" id="1245" /> +<TGConnectingPoint num="3" id="1246" /> +<TGConnectingPoint num="4" id="1247" /> +<TGConnectingPoint num="5" id="1248" /> +<TGConnectingPoint num="6" id="1249" /> +<TGConnectingPoint num="7" id="1250" /> +<TGConnectingPoint num="8" id="1251" /> +<TGConnectingPoint num="9" id="1252" /> +<TGConnectingPoint num="10" id="1253" /> +<TGConnectingPoint num="11" id="1254" /> +<TGConnectingPoint num="12" id="1255" /> +<TGConnectingPoint num="13" id="1256" /> +<TGConnectingPoint num="14" id="1257" /> +<TGConnectingPoint num="15" id="1258" /> +<TGConnectingPoint num="16" id="1259" /> +<TGConnectingPoint num="17" id="1260" /> +<TGConnectingPoint num="18" id="1261" /> +<TGConnectingPoint num="19" id="1262" /> +<TGConnectingPoint num="20" id="1263" /> +<TGConnectingPoint num="21" id="1264" /> +<TGConnectingPoint num="22" id="1265" /> +<TGConnectingPoint num="23" id="1266" /> +<TGConnectingPoint num="24" id="1267" /> +<TGConnectingPoint num="25" id="1268" /> +<TGConnectingPoint num="26" id="1269" /> +<TGConnectingPoint num="27" id="1270" /> +<TGConnectingPoint num="28" id="1271" /> +<TGConnectingPoint num="29" id="1272" /> +<TGConnectingPoint num="30" id="1273" /> +<TGConnectingPoint num="31" id="1274" /> +<TGConnectingPoint num="32" id="1275" /> +<TGConnectingPoint num="33" id="1276" /> +<TGConnectingPoint num="34" id="1277" /> +<TGConnectingPoint num="35" id="1278" /> +<TGConnectingPoint num="36" id="1279" /> +<TGConnectingPoint num="37" id="1280" /> +<TGConnectingPoint num="38" id="1281" /> +<TGConnectingPoint num="39" id="1282" /> +<extraparam> +</extraparam> </SUBCOMPONENT> -<SUBCOMPONENT type="5103" id="1294" > +<SUBCOMPONENT type="5104" id="1294" > <father id="1335" num="4" /> -<cdparam x="372" y="500" /> -<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="237" y="527" /> +<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> -<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushTeaButton()" /> <TGConnectingPoint num="0" id="1284" /> <TGConnectingPoint num="1" id="1285" /> <TGConnectingPoint num="2" id="1286" /> @@ -2609,19 +2611,19 @@ </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > +<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > <CONNECTOR type="5102" id="1342" > -<cdparam x="363" y="193" /> +<cdparam x="177" y="199" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> +<infoparam name="connector from start state to Send signal" value="null" /> <TGConnectingPoint num="0" id="1341" /> -<P1 x="363" y="204" id="1358" /> -<P2 x="362" y="257" id="1369" /> +<P1 x="340" y="233" id="1448" /> +<P2 x="353" y="252" id="1450" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="1340" > <father id="1342" num="0" /> -<cdparam x="380" y="228" /> -<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="177" y="239" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -2631,7 +2633,7 @@ <TGConnectingPoint num="3" id="1339" /> <extraparam> <guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> +<afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> @@ -2639,16 +2641,16 @@ </SUBCOMPONENT> <CONNECTOR type="5102" id="1349" > -<cdparam x="363" y="150" /> +<cdparam x="322" y="69" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> +<infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="1348" /> -<P1 x="363" y="150" id="1415" /> -<P2 x="363" y="174" id="1357" /> +<P1 x="322" y="69" id="1446" /> +<P2 x="323" y="88" id="1406" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="1347" > <father id="1349" num="0" /> -<cdparam x="363" y="190" /> +<cdparam x="322" y="109" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -2667,16 +2669,16 @@ </SUBCOMPONENT> <CONNECTOR type="5102" id="1356" > -<cdparam x="362" y="101" /> +<cdparam x="377" y="144" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> +<infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="1355" /> -<P1 x="362" y="101" id="1450" /> -<P2 x="363" y="120" id="1410" /> +<P1 x="323" y="118" id="1411" /> +<P2 x="356" y="174" id="1462" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="1354" > <father id="1356" num="0" /> -<cdparam x="362" y="141" /> +<cdparam x="377" y="184" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -2694,184 +2696,271 @@ </extraparam> </SUBCOMPONENT> -<COMPONENT type="5103" id="1367" > -<cdparam x="340" y="179" /> -<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<CONNECTOR type="5102" id="1363" > +<cdparam x="377" y="187" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1362" /> +<P1 x="353" y="282" id="1451" /> +<P2 x="399" y="352" id="1365" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1361" > +<father id="1363" num="0" /> +<cdparam x="417" y="335" /> +<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="push()" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> <TGConnectingPoint num="0" id="1357" /> <TGConnectingPoint num="1" id="1358" /> <TGConnectingPoint num="2" id="1359" /> <TGConnectingPoint num="3" id="1360" /> -<TGConnectingPoint num="4" id="1361" /> -<TGConnectingPoint num="5" id="1362" /> -<TGConnectingPoint num="6" id="1363" /> -<TGConnectingPoint num="7" id="1364" /> -<TGConnectingPoint num="8" id="1365" /> -<TGConnectingPoint num="9" id="1366" /> -</COMPONENT> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +</extraparam> +</SUBCOMPONENT> -<COMPONENT type="5106" id="1408" > -<cdparam x="337" y="257" /> +<COMPONENT type="5106" id="1404" > +<cdparam x="374" y="352" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1368" /> -<TGConnectingPoint num="1" id="1369" /> -<TGConnectingPoint num="2" id="1370" /> -<TGConnectingPoint num="3" id="1371" /> -<TGConnectingPoint num="4" id="1372" /> -<TGConnectingPoint num="5" id="1373" /> -<TGConnectingPoint num="6" id="1374" /> -<TGConnectingPoint num="7" id="1375" /> -<TGConnectingPoint num="8" id="1376" /> -<TGConnectingPoint num="9" id="1377" /> -<TGConnectingPoint num="10" id="1378" /> -<TGConnectingPoint num="11" id="1379" /> -<TGConnectingPoint num="12" id="1380" /> -<TGConnectingPoint num="13" id="1381" /> -<TGConnectingPoint num="14" id="1382" /> -<TGConnectingPoint num="15" id="1383" /> -<TGConnectingPoint num="16" id="1384" /> -<TGConnectingPoint num="17" id="1385" /> -<TGConnectingPoint num="18" id="1386" /> -<TGConnectingPoint num="19" id="1387" /> -<TGConnectingPoint num="20" id="1388" /> -<TGConnectingPoint num="21" id="1389" /> -<TGConnectingPoint num="22" id="1390" /> -<TGConnectingPoint num="23" id="1391" /> -<TGConnectingPoint num="24" id="1392" /> -<TGConnectingPoint num="25" id="1393" /> -<TGConnectingPoint num="26" id="1394" /> -<TGConnectingPoint num="27" id="1395" /> -<TGConnectingPoint num="28" id="1396" /> -<TGConnectingPoint num="29" id="1397" /> -<TGConnectingPoint num="30" id="1398" /> -<TGConnectingPoint num="31" id="1399" /> -<TGConnectingPoint num="32" id="1400" /> -<TGConnectingPoint num="33" id="1401" /> -<TGConnectingPoint num="34" id="1402" /> -<TGConnectingPoint num="35" id="1403" /> -<TGConnectingPoint num="36" id="1404" /> -<TGConnectingPoint num="37" id="1405" /> -<TGConnectingPoint num="38" id="1406" /> -<TGConnectingPoint num="39" id="1407" /> +<TGConnectingPoint num="0" id="1364" /> +<TGConnectingPoint num="1" id="1365" /> +<TGConnectingPoint num="2" id="1366" /> +<TGConnectingPoint num="3" id="1367" /> +<TGConnectingPoint num="4" id="1368" /> +<TGConnectingPoint num="5" id="1369" /> +<TGConnectingPoint num="6" id="1370" /> +<TGConnectingPoint num="7" id="1371" /> +<TGConnectingPoint num="8" id="1372" /> +<TGConnectingPoint num="9" id="1373" /> +<TGConnectingPoint num="10" id="1374" /> +<TGConnectingPoint num="11" id="1375" /> +<TGConnectingPoint num="12" id="1376" /> +<TGConnectingPoint num="13" id="1377" /> +<TGConnectingPoint num="14" id="1378" /> +<TGConnectingPoint num="15" id="1379" /> +<TGConnectingPoint num="16" id="1380" /> +<TGConnectingPoint num="17" id="1381" /> +<TGConnectingPoint num="18" id="1382" /> +<TGConnectingPoint num="19" id="1383" /> +<TGConnectingPoint num="20" id="1384" /> +<TGConnectingPoint num="21" id="1385" /> +<TGConnectingPoint num="22" id="1386" /> +<TGConnectingPoint num="23" id="1387" /> +<TGConnectingPoint num="24" id="1388" /> +<TGConnectingPoint num="25" id="1389" /> +<TGConnectingPoint num="26" id="1390" /> +<TGConnectingPoint num="27" id="1391" /> +<TGConnectingPoint num="28" id="1392" /> +<TGConnectingPoint num="29" id="1393" /> +<TGConnectingPoint num="30" id="1394" /> +<TGConnectingPoint num="31" id="1395" /> +<TGConnectingPoint num="32" id="1396" /> +<TGConnectingPoint num="33" id="1397" /> +<TGConnectingPoint num="34" id="1398" /> +<TGConnectingPoint num="35" id="1399" /> +<TGConnectingPoint num="36" id="1400" /> +<TGConnectingPoint num="37" id="1401" /> +<TGConnectingPoint num="38" id="1402" /> +<TGConnectingPoint num="39" id="1403" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5106" id="1449" > -<cdparam x="338" y="120" /> +<COMPONENT type="5106" id="1445" > +<cdparam x="298" y="88" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1409" /> -<TGConnectingPoint num="1" id="1410" /> -<TGConnectingPoint num="2" id="1411" /> -<TGConnectingPoint num="3" id="1412" /> -<TGConnectingPoint num="4" id="1413" /> -<TGConnectingPoint num="5" id="1414" /> -<TGConnectingPoint num="6" id="1415" /> -<TGConnectingPoint num="7" id="1416" /> -<TGConnectingPoint num="8" id="1417" /> -<TGConnectingPoint num="9" id="1418" /> -<TGConnectingPoint num="10" id="1419" /> -<TGConnectingPoint num="11" id="1420" /> -<TGConnectingPoint num="12" id="1421" /> -<TGConnectingPoint num="13" id="1422" /> -<TGConnectingPoint num="14" id="1423" /> -<TGConnectingPoint num="15" id="1424" /> -<TGConnectingPoint num="16" id="1425" /> -<TGConnectingPoint num="17" id="1426" /> -<TGConnectingPoint num="18" id="1427" /> -<TGConnectingPoint num="19" id="1428" /> -<TGConnectingPoint num="20" id="1429" /> -<TGConnectingPoint num="21" id="1430" /> -<TGConnectingPoint num="22" id="1431" /> -<TGConnectingPoint num="23" id="1432" /> -<TGConnectingPoint num="24" id="1433" /> -<TGConnectingPoint num="25" id="1434" /> -<TGConnectingPoint num="26" id="1435" /> -<TGConnectingPoint num="27" id="1436" /> -<TGConnectingPoint num="28" id="1437" /> -<TGConnectingPoint num="29" id="1438" /> -<TGConnectingPoint num="30" id="1439" /> -<TGConnectingPoint num="31" id="1440" /> -<TGConnectingPoint num="32" id="1441" /> -<TGConnectingPoint num="33" id="1442" /> -<TGConnectingPoint num="34" id="1443" /> -<TGConnectingPoint num="35" id="1444" /> -<TGConnectingPoint num="36" id="1445" /> -<TGConnectingPoint num="37" id="1446" /> -<TGConnectingPoint num="38" id="1447" /> -<TGConnectingPoint num="39" id="1448" /> +<TGConnectingPoint num="0" id="1405" /> +<TGConnectingPoint num="1" id="1406" /> +<TGConnectingPoint num="2" id="1407" /> +<TGConnectingPoint num="3" id="1408" /> +<TGConnectingPoint num="4" id="1409" /> +<TGConnectingPoint num="5" id="1410" /> +<TGConnectingPoint num="6" id="1411" /> +<TGConnectingPoint num="7" id="1412" /> +<TGConnectingPoint num="8" id="1413" /> +<TGConnectingPoint num="9" id="1414" /> +<TGConnectingPoint num="10" id="1415" /> +<TGConnectingPoint num="11" id="1416" /> +<TGConnectingPoint num="12" id="1417" /> +<TGConnectingPoint num="13" id="1418" /> +<TGConnectingPoint num="14" id="1419" /> +<TGConnectingPoint num="15" id="1420" /> +<TGConnectingPoint num="16" id="1421" /> +<TGConnectingPoint num="17" id="1422" /> +<TGConnectingPoint num="18" id="1423" /> +<TGConnectingPoint num="19" id="1424" /> +<TGConnectingPoint num="20" id="1425" /> +<TGConnectingPoint num="21" id="1426" /> +<TGConnectingPoint num="22" id="1427" /> +<TGConnectingPoint num="23" id="1428" /> +<TGConnectingPoint num="24" id="1429" /> +<TGConnectingPoint num="25" id="1430" /> +<TGConnectingPoint num="26" id="1431" /> +<TGConnectingPoint num="27" id="1432" /> +<TGConnectingPoint num="28" id="1433" /> +<TGConnectingPoint num="29" id="1434" /> +<TGConnectingPoint num="30" id="1435" /> +<TGConnectingPoint num="31" id="1436" /> +<TGConnectingPoint num="32" id="1437" /> +<TGConnectingPoint num="33" id="1438" /> +<TGConnectingPoint num="34" id="1439" /> +<TGConnectingPoint num="35" id="1440" /> +<TGConnectingPoint num="36" id="1441" /> +<TGConnectingPoint num="37" id="1442" /> +<TGConnectingPoint num="38" id="1443" /> +<TGConnectingPoint num="39" id="1444" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5100" id="1451" > -<cdparam x="355" y="81" /> +<COMPONENT type="5100" id="1447" > +<cdparam x="315" y="49" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1450" /> +<TGConnectingPoint num="0" id="1446" /> +</COMPONENT> + +<COMPONENT type="5106" id="1501" > +<cdparam x="264" y="174" /> +<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<infoparam name="state0" value="state0" /> +<TGConnectingPoint num="0" id="1461" /> +<TGConnectingPoint num="1" id="1462" /> +<TGConnectingPoint num="2" id="1463" /> +<TGConnectingPoint num="3" id="1464" /> +<TGConnectingPoint num="4" id="1465" /> +<TGConnectingPoint num="5" id="1466" /> +<TGConnectingPoint num="6" id="1467" /> +<TGConnectingPoint num="7" id="1468" /> +<TGConnectingPoint num="8" id="1469" /> +<TGConnectingPoint num="9" id="1470" /> +<TGConnectingPoint num="10" id="1471" /> +<TGConnectingPoint num="11" id="1472" /> +<TGConnectingPoint num="12" id="1473" /> +<TGConnectingPoint num="13" id="1474" /> +<TGConnectingPoint num="14" id="1475" /> +<TGConnectingPoint num="15" id="1476" /> +<TGConnectingPoint num="16" id="1477" /> +<TGConnectingPoint num="17" id="1478" /> +<TGConnectingPoint num="18" id="1479" /> +<TGConnectingPoint num="19" id="1480" /> +<TGConnectingPoint num="20" id="1481" /> +<TGConnectingPoint num="21" id="1482" /> +<TGConnectingPoint num="22" id="1483" /> +<TGConnectingPoint num="23" id="1484" /> +<TGConnectingPoint num="24" id="1485" /> +<TGConnectingPoint num="25" id="1486" /> +<TGConnectingPoint num="26" id="1487" /> +<TGConnectingPoint num="27" id="1488" /> +<TGConnectingPoint num="28" id="1489" /> +<TGConnectingPoint num="29" id="1490" /> +<TGConnectingPoint num="30" id="1491" /> +<TGConnectingPoint num="31" id="1492" /> +<TGConnectingPoint num="32" id="1493" /> +<TGConnectingPoint num="33" id="1494" /> +<TGConnectingPoint num="34" id="1495" /> +<TGConnectingPoint num="35" id="1496" /> +<TGConnectingPoint num="36" id="1497" /> +<TGConnectingPoint num="37" id="1498" /> +<TGConnectingPoint num="38" id="1499" /> +<TGConnectingPoint num="39" id="1500" /> +<extraparam> +</extraparam> </COMPONENT> +<SUBCOMPONENT type="5100" id="1449" > +<father id="1501" num="0" /> +<cdparam x="333" y="213" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1448" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5103" id="1460" > +<father id="1501" num="1" /> +<cdparam x="330" y="257" /> +<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="1450" /> +<TGConnectingPoint num="1" id="1451" /> +<TGConnectingPoint num="2" id="1452" /> +<TGConnectingPoint num="3" id="1453" /> +<TGConnectingPoint num="4" id="1454" /> +<TGConnectingPoint num="5" id="1455" /> +<TGConnectingPoint num="6" id="1456" /> +<TGConnectingPoint num="7" id="1457" /> +<TGConnectingPoint num="8" id="1458" /> +<TGConnectingPoint num="9" id="1459" /> +</SUBCOMPONENT> </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="1458" > -<cdparam x="177" y="199" /> +<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1508" > +<cdparam x="363" y="193" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to Send signal" value="null" /> -<TGConnectingPoint num="0" id="1457" /> -<P1 x="340" y="233" id="1575" /> -<P2 x="353" y="252" id="1564" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1507" /> +<P1 x="363" y="204" id="1524" /> +<P2 x="362" y="257" id="1535" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1456" > -<father id="1458" num="0" /> -<cdparam x="177" y="239" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1506" > +<father id="1508" num="0" /> +<cdparam x="380" y="228" /> +<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1452" /> -<TGConnectingPoint num="1" id="1453" /> -<TGConnectingPoint num="2" id="1454" /> -<TGConnectingPoint num="3" id="1455" /> +<TGConnectingPoint num="0" id="1502" /> +<TGConnectingPoint num="1" id="1503" /> +<TGConnectingPoint num="2" id="1504" /> +<TGConnectingPoint num="3" id="1505" /> <extraparam> <guard value="[ ]" /> -<afterMin value="" /> +<afterMin value="mechanicalDelay" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1465" > -<cdparam x="322" y="69" /> +<CONNECTOR type="5102" id="1515" > +<cdparam x="363" y="150" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="1464" /> -<P1 x="322" y="69" id="1562" /> -<P2 x="323" y="88" id="1522" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1514" /> +<P1 x="363" y="150" id="1581" /> +<P2 x="363" y="174" id="1523" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1463" > -<father id="1465" num="0" /> -<cdparam x="322" y="109" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1513" > +<father id="1515" num="0" /> +<cdparam x="363" y="190" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1459" /> -<TGConnectingPoint num="1" id="1460" /> -<TGConnectingPoint num="2" id="1461" /> -<TGConnectingPoint num="3" id="1462" /> +<TGConnectingPoint num="0" id="1509" /> +<TGConnectingPoint num="1" id="1510" /> +<TGConnectingPoint num="2" id="1511" /> +<TGConnectingPoint num="3" id="1512" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -2881,25 +2970,25 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1472" > -<cdparam x="377" y="144" /> +<CONNECTOR type="5102" id="1522" > +<cdparam x="362" y="101" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="1471" /> -<P1 x="323" y="118" id="1527" /> -<P2 x="356" y="174" id="1578" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1521" /> +<P1 x="362" y="101" id="1616" /> +<P2 x="363" y="120" id="1576" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1470" > -<father id="1472" num="0" /> -<cdparam x="377" y="184" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1520" > +<father id="1522" num="0" /> +<cdparam x="362" y="141" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1466" /> -<TGConnectingPoint num="1" id="1467" /> -<TGConnectingPoint num="2" id="1468" /> -<TGConnectingPoint num="3" id="1469" /> +<TGConnectingPoint num="0" id="1516" /> +<TGConnectingPoint num="1" id="1517" /> +<TGConnectingPoint num="2" id="1518" /> +<TGConnectingPoint num="3" id="1519" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> @@ -2909,220 +2998,133 @@ </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1479" > -<cdparam x="377" y="187" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="1478" /> -<P1 x="353" y="282" id="1565" /> -<P2 x="399" y="352" id="1481" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1477" > -<father id="1479" num="0" /> -<cdparam x="417" y="335" /> -<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5103" id="1533" > +<cdparam x="340" y="179" /> +<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1473" /> -<TGConnectingPoint num="1" id="1474" /> -<TGConnectingPoint num="2" id="1475" /> -<TGConnectingPoint num="3" id="1476" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> +<infoparam name="Send signal" value="push()" /> +<TGConnectingPoint num="0" id="1523" /> +<TGConnectingPoint num="1" id="1524" /> +<TGConnectingPoint num="2" id="1525" /> +<TGConnectingPoint num="3" id="1526" /> +<TGConnectingPoint num="4" id="1527" /> +<TGConnectingPoint num="5" id="1528" /> +<TGConnectingPoint num="6" id="1529" /> +<TGConnectingPoint num="7" id="1530" /> +<TGConnectingPoint num="8" id="1531" /> +<TGConnectingPoint num="9" id="1532" /> +</COMPONENT> -<COMPONENT type="5106" id="1520" > -<cdparam x="374" y="352" /> +<COMPONENT type="5106" id="1574" > +<cdparam x="337" y="257" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1480" /> -<TGConnectingPoint num="1" id="1481" /> -<TGConnectingPoint num="2" id="1482" /> -<TGConnectingPoint num="3" id="1483" /> -<TGConnectingPoint num="4" id="1484" /> -<TGConnectingPoint num="5" id="1485" /> -<TGConnectingPoint num="6" id="1486" /> -<TGConnectingPoint num="7" id="1487" /> -<TGConnectingPoint num="8" id="1488" /> -<TGConnectingPoint num="9" id="1489" /> -<TGConnectingPoint num="10" id="1490" /> -<TGConnectingPoint num="11" id="1491" /> -<TGConnectingPoint num="12" id="1492" /> -<TGConnectingPoint num="13" id="1493" /> -<TGConnectingPoint num="14" id="1494" /> -<TGConnectingPoint num="15" id="1495" /> -<TGConnectingPoint num="16" id="1496" /> -<TGConnectingPoint num="17" id="1497" /> -<TGConnectingPoint num="18" id="1498" /> -<TGConnectingPoint num="19" id="1499" /> -<TGConnectingPoint num="20" id="1500" /> -<TGConnectingPoint num="21" id="1501" /> -<TGConnectingPoint num="22" id="1502" /> -<TGConnectingPoint num="23" id="1503" /> -<TGConnectingPoint num="24" id="1504" /> -<TGConnectingPoint num="25" id="1505" /> -<TGConnectingPoint num="26" id="1506" /> -<TGConnectingPoint num="27" id="1507" /> -<TGConnectingPoint num="28" id="1508" /> -<TGConnectingPoint num="29" id="1509" /> -<TGConnectingPoint num="30" id="1510" /> -<TGConnectingPoint num="31" id="1511" /> -<TGConnectingPoint num="32" id="1512" /> -<TGConnectingPoint num="33" id="1513" /> -<TGConnectingPoint num="34" id="1514" /> -<TGConnectingPoint num="35" id="1515" /> -<TGConnectingPoint num="36" id="1516" /> -<TGConnectingPoint num="37" id="1517" /> -<TGConnectingPoint num="38" id="1518" /> -<TGConnectingPoint num="39" id="1519" /> +<TGConnectingPoint num="0" id="1534" /> +<TGConnectingPoint num="1" id="1535" /> +<TGConnectingPoint num="2" id="1536" /> +<TGConnectingPoint num="3" id="1537" /> +<TGConnectingPoint num="4" id="1538" /> +<TGConnectingPoint num="5" id="1539" /> +<TGConnectingPoint num="6" id="1540" /> +<TGConnectingPoint num="7" id="1541" /> +<TGConnectingPoint num="8" id="1542" /> +<TGConnectingPoint num="9" id="1543" /> +<TGConnectingPoint num="10" id="1544" /> +<TGConnectingPoint num="11" id="1545" /> +<TGConnectingPoint num="12" id="1546" /> +<TGConnectingPoint num="13" id="1547" /> +<TGConnectingPoint num="14" id="1548" /> +<TGConnectingPoint num="15" id="1549" /> +<TGConnectingPoint num="16" id="1550" /> +<TGConnectingPoint num="17" id="1551" /> +<TGConnectingPoint num="18" id="1552" /> +<TGConnectingPoint num="19" id="1553" /> +<TGConnectingPoint num="20" id="1554" /> +<TGConnectingPoint num="21" id="1555" /> +<TGConnectingPoint num="22" id="1556" /> +<TGConnectingPoint num="23" id="1557" /> +<TGConnectingPoint num="24" id="1558" /> +<TGConnectingPoint num="25" id="1559" /> +<TGConnectingPoint num="26" id="1560" /> +<TGConnectingPoint num="27" id="1561" /> +<TGConnectingPoint num="28" id="1562" /> +<TGConnectingPoint num="29" id="1563" /> +<TGConnectingPoint num="30" id="1564" /> +<TGConnectingPoint num="31" id="1565" /> +<TGConnectingPoint num="32" id="1566" /> +<TGConnectingPoint num="33" id="1567" /> +<TGConnectingPoint num="34" id="1568" /> +<TGConnectingPoint num="35" id="1569" /> +<TGConnectingPoint num="36" id="1570" /> +<TGConnectingPoint num="37" id="1571" /> +<TGConnectingPoint num="38" id="1572" /> +<TGConnectingPoint num="39" id="1573" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5106" id="1561" > -<cdparam x="298" y="88" /> +<COMPONENT type="5106" id="1615" > +<cdparam x="338" y="120" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1521" /> -<TGConnectingPoint num="1" id="1522" /> -<TGConnectingPoint num="2" id="1523" /> -<TGConnectingPoint num="3" id="1524" /> -<TGConnectingPoint num="4" id="1525" /> -<TGConnectingPoint num="5" id="1526" /> -<TGConnectingPoint num="6" id="1527" /> -<TGConnectingPoint num="7" id="1528" /> -<TGConnectingPoint num="8" id="1529" /> -<TGConnectingPoint num="9" id="1530" /> -<TGConnectingPoint num="10" id="1531" /> -<TGConnectingPoint num="11" id="1532" /> -<TGConnectingPoint num="12" id="1533" /> -<TGConnectingPoint num="13" id="1534" /> -<TGConnectingPoint num="14" id="1535" /> -<TGConnectingPoint num="15" id="1536" /> -<TGConnectingPoint num="16" id="1537" /> -<TGConnectingPoint num="17" id="1538" /> -<TGConnectingPoint num="18" id="1539" /> -<TGConnectingPoint num="19" id="1540" /> -<TGConnectingPoint num="20" id="1541" /> -<TGConnectingPoint num="21" id="1542" /> -<TGConnectingPoint num="22" id="1543" /> -<TGConnectingPoint num="23" id="1544" /> -<TGConnectingPoint num="24" id="1545" /> -<TGConnectingPoint num="25" id="1546" /> -<TGConnectingPoint num="26" id="1547" /> -<TGConnectingPoint num="27" id="1548" /> -<TGConnectingPoint num="28" id="1549" /> -<TGConnectingPoint num="29" id="1550" /> -<TGConnectingPoint num="30" id="1551" /> -<TGConnectingPoint num="31" id="1552" /> -<TGConnectingPoint num="32" id="1553" /> -<TGConnectingPoint num="33" id="1554" /> -<TGConnectingPoint num="34" id="1555" /> -<TGConnectingPoint num="35" id="1556" /> -<TGConnectingPoint num="36" id="1557" /> -<TGConnectingPoint num="37" id="1558" /> -<TGConnectingPoint num="38" id="1559" /> -<TGConnectingPoint num="39" id="1560" /> +<TGConnectingPoint num="0" id="1575" /> +<TGConnectingPoint num="1" id="1576" /> +<TGConnectingPoint num="2" id="1577" /> +<TGConnectingPoint num="3" id="1578" /> +<TGConnectingPoint num="4" id="1579" /> +<TGConnectingPoint num="5" id="1580" /> +<TGConnectingPoint num="6" id="1581" /> +<TGConnectingPoint num="7" id="1582" /> +<TGConnectingPoint num="8" id="1583" /> +<TGConnectingPoint num="9" id="1584" /> +<TGConnectingPoint num="10" id="1585" /> +<TGConnectingPoint num="11" id="1586" /> +<TGConnectingPoint num="12" id="1587" /> +<TGConnectingPoint num="13" id="1588" /> +<TGConnectingPoint num="14" id="1589" /> +<TGConnectingPoint num="15" id="1590" /> +<TGConnectingPoint num="16" id="1591" /> +<TGConnectingPoint num="17" id="1592" /> +<TGConnectingPoint num="18" id="1593" /> +<TGConnectingPoint num="19" id="1594" /> +<TGConnectingPoint num="20" id="1595" /> +<TGConnectingPoint num="21" id="1596" /> +<TGConnectingPoint num="22" id="1597" /> +<TGConnectingPoint num="23" id="1598" /> +<TGConnectingPoint num="24" id="1599" /> +<TGConnectingPoint num="25" id="1600" /> +<TGConnectingPoint num="26" id="1601" /> +<TGConnectingPoint num="27" id="1602" /> +<TGConnectingPoint num="28" id="1603" /> +<TGConnectingPoint num="29" id="1604" /> +<TGConnectingPoint num="30" id="1605" /> +<TGConnectingPoint num="31" id="1606" /> +<TGConnectingPoint num="32" id="1607" /> +<TGConnectingPoint num="33" id="1608" /> +<TGConnectingPoint num="34" id="1609" /> +<TGConnectingPoint num="35" id="1610" /> +<TGConnectingPoint num="36" id="1611" /> +<TGConnectingPoint num="37" id="1612" /> +<TGConnectingPoint num="38" id="1613" /> +<TGConnectingPoint num="39" id="1614" /> <extraparam> </extraparam> </COMPONENT> -<COMPONENT type="5100" id="1563" > -<cdparam x="315" y="49" /> +<COMPONENT type="5100" id="1617" > +<cdparam x="355" y="81" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1562" /> +<TGConnectingPoint num="0" id="1616" /> </COMPONENT> -<COMPONENT type="5106" id="1617" > -<cdparam x="264" y="174" /> -<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="state0" /> -<TGConnectingPoint num="0" id="1577" /> -<TGConnectingPoint num="1" id="1578" /> -<TGConnectingPoint num="2" id="1579" /> -<TGConnectingPoint num="3" id="1580" /> -<TGConnectingPoint num="4" id="1581" /> -<TGConnectingPoint num="5" id="1582" /> -<TGConnectingPoint num="6" id="1583" /> -<TGConnectingPoint num="7" id="1584" /> -<TGConnectingPoint num="8" id="1585" /> -<TGConnectingPoint num="9" id="1586" /> -<TGConnectingPoint num="10" id="1587" /> -<TGConnectingPoint num="11" id="1588" /> -<TGConnectingPoint num="12" id="1589" /> -<TGConnectingPoint num="13" id="1590" /> -<TGConnectingPoint num="14" id="1591" /> -<TGConnectingPoint num="15" id="1592" /> -<TGConnectingPoint num="16" id="1593" /> -<TGConnectingPoint num="17" id="1594" /> -<TGConnectingPoint num="18" id="1595" /> -<TGConnectingPoint num="19" id="1596" /> -<TGConnectingPoint num="20" id="1597" /> -<TGConnectingPoint num="21" id="1598" /> -<TGConnectingPoint num="22" id="1599" /> -<TGConnectingPoint num="23" id="1600" /> -<TGConnectingPoint num="24" id="1601" /> -<TGConnectingPoint num="25" id="1602" /> -<TGConnectingPoint num="26" id="1603" /> -<TGConnectingPoint num="27" id="1604" /> -<TGConnectingPoint num="28" id="1605" /> -<TGConnectingPoint num="29" id="1606" /> -<TGConnectingPoint num="30" id="1607" /> -<TGConnectingPoint num="31" id="1608" /> -<TGConnectingPoint num="32" id="1609" /> -<TGConnectingPoint num="33" id="1610" /> -<TGConnectingPoint num="34" id="1611" /> -<TGConnectingPoint num="35" id="1612" /> -<TGConnectingPoint num="36" id="1613" /> -<TGConnectingPoint num="37" id="1614" /> -<TGConnectingPoint num="38" id="1615" /> -<TGConnectingPoint num="39" id="1616" /> -<extraparam> -</extraparam> -</COMPONENT> -<SUBCOMPONENT type="5103" id="1574" > -<father id="1617" num="0" /> -<cdparam x="330" y="257" /> -<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> -<infoparam name="Send signal" value="push()" /> -<TGConnectingPoint num="0" id="1564" /> -<TGConnectingPoint num="1" id="1565" /> -<TGConnectingPoint num="2" id="1566" /> -<TGConnectingPoint num="3" id="1567" /> -<TGConnectingPoint num="4" id="1568" /> -<TGConnectingPoint num="5" id="1569" /> -<TGConnectingPoint num="6" id="1570" /> -<TGConnectingPoint num="7" id="1571" /> -<TGConnectingPoint num="8" id="1572" /> -<TGConnectingPoint num="9" id="1573" /> -</SUBCOMPONENT> -<SUBCOMPONENT type="5100" id="1576" > -<father id="1617" num="1" /> -<cdparam x="333" y="213" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1575" /> -</SUBCOMPONENT> - </AVATARStateMachineDiagramPanel> diff --git a/src/attacktrees/ANDNode.java b/src/attacktrees/ANDNode.java new file mode 100755 index 0000000000000000000000000000000000000000..dc5e15db3dcb596f9ecd82786e850127464be17e --- /dev/null +++ b/src/attacktrees/ANDNode.java @@ -0,0 +1,58 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class ANDNode + * Creation: 13/04/2015 + * @version 1.0 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public class ANDNode extends BooleanNode { + + public ANDNode(String _name) { + super(_name); + } + + +} diff --git a/src/attacktrees/AfterNode.java b/src/attacktrees/AfterNode.java new file mode 100755 index 0000000000000000000000000000000000000000..2f0aa9984eba3fd5a10d5aee93f0a1129486f6a1 --- /dev/null +++ b/src/attacktrees/AfterNode.java @@ -0,0 +1,57 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class AfterNode + * Creation: 13/04/2015 + * @version 1.0 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public class AfterNode extends TimeNode { + + public AfterNode(String _name, int _time) { + super(_name, _time); + } + +} diff --git a/src/attacktrees/Attack.java b/src/attacktrees/Attack.java new file mode 100755 index 0000000000000000000000000000000000000000..7bd85c954cb308b35f6c3e88ec591451a67bf944 --- /dev/null +++ b/src/attacktrees/Attack.java @@ -0,0 +1,69 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class Attack + * Creation: 10/04/2015 + * @version 1.0 10/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public class Attack { + private AttackNode originNode; // If no origin node -> leaf attack + private ArrayList<AttackNode> destinationNodes; + private String name; + + public Attack(String _name) { + name = _name; + destinationNodes = new ArrayList<AttackNode>(); + } + + public void setOriginNode(AttackNode _node) { + originNode = _node; + } + + public void addDestinationNode(AttackNode _node) { + destinationNodes.add(_node); + } + +} diff --git a/src/attacktrees/AttackNode.java b/src/attacktrees/AttackNode.java new file mode 100755 index 0000000000000000000000000000000000000000..b8bba4c28a0eeb25e67836be1a5a7520973d3fc5 --- /dev/null +++ b/src/attacktrees/AttackNode.java @@ -0,0 +1,69 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class AttackNode + * Creation: 10/04/2015 + * @version 1.0 10/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public abstract class AttackNode { + private Attack resultingAttack; // If no resulting attack -> error! + private ArrayList<Attack> inputAttacks; + private String name; + + public AttackNode(String _name) { + name = _name; + inputAttacks = new ArrayList<Attack>(); + } + + public void setResultingAttack(Attack _attack) { + resultingAttack = _attack; + } + + public void addInputAttack(Attack _attack) { + inputAttacks.add(_attack); + } + +} diff --git a/src/attacktrees/AttackTree.java b/src/attacktrees/AttackTree.java new file mode 100755 index 0000000000000000000000000000000000000000..e14d8cb7a5b805fc1951ae84eb6b51bd15e33f67 --- /dev/null +++ b/src/attacktrees/AttackTree.java @@ -0,0 +1,74 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class AttackTree + * Creation: 10/04/2015 + * @version 1.0 10/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public class AttackTree { + private ArrayList<AttackNode> nodes; + private ArrayList<Attack> attacks; + private String name; + Object reference; + + + public AttackTree(String _name, Object _reference) { + name = _name; + reference = _reference; + nodes = new ArrayList<AttackNode>(); + attacks = new ArrayList<Attack>(); + } + + public void addNode(AttackNode _node) { + nodes.add(_node); + } + + public void addAttack(Attack _attack) { + attacks.add(_attack); + } + + +} diff --git a/src/attacktrees/BeforeNode.java b/src/attacktrees/BeforeNode.java new file mode 100755 index 0000000000000000000000000000000000000000..608d9b83799927efbb828f0c8835b2b3b7d30017 --- /dev/null +++ b/src/attacktrees/BeforeNode.java @@ -0,0 +1,57 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class BeforeNode + * Creation: 13/04/2015 + * @version 1.0 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public class BeforeNode extends TimeNode { + + public BeforeNode(String _name, int _time) { + super(_name, _time); + } + +} diff --git a/src/attacktrees/BooleanNode.java b/src/attacktrees/BooleanNode.java new file mode 100755 index 0000000000000000000000000000000000000000..128d65b3a349b53a1dc1bc17f3d6128c33a8876e --- /dev/null +++ b/src/attacktrees/BooleanNode.java @@ -0,0 +1,58 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class BooleanNode + * Creation: 13/04/2015 + * @version 1.0 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public abstract class BooleanNode extends AttackNode{ + + public BooleanNode(String _name) { + super(_name); + } + + +} diff --git a/src/attacktrees/ORNode.java b/src/attacktrees/ORNode.java new file mode 100755 index 0000000000000000000000000000000000000000..5e1b64006880ae94396f240dff154e2e0d37017d --- /dev/null +++ b/src/attacktrees/ORNode.java @@ -0,0 +1,58 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class ORNode + * Creation: 13/04/2015 + * @version 1.0 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public class ORNode extends BooleanNode { + + public ORNode(String _name) { + super(_name); + } + + +} diff --git a/src/attacktrees/SequenceNode.java b/src/attacktrees/SequenceNode.java new file mode 100755 index 0000000000000000000000000000000000000000..9fa77c9ec0847442d26598a0b8fb11ea47523ec5 --- /dev/null +++ b/src/attacktrees/SequenceNode.java @@ -0,0 +1,57 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class SequenceNode + * Creation: 13/04/2015 + * @version 1.0 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public class SequenceNode extends Node { + + public SequenceNode(String _name) { + super(_name); + } + +} diff --git a/src/attacktrees/TimeNode.java b/src/attacktrees/TimeNode.java new file mode 100755 index 0000000000000000000000000000000000000000..4638092656365c7e8c925a0c0a671359c5ca1db0 --- /dev/null +++ b/src/attacktrees/TimeNode.java @@ -0,0 +1,59 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + +ludovic.apvrille AT enst.fr + +This software is a computer program whose purpose is to allow the +edition of TURTLE analysis, design and deployment diagrams, to +allow the generation of RT-LOTOS or Java code from this diagram, +and at last to allow the analysis of formal validation traces +obtained from external tools, e.g. RTL from LAAS-CNRS and CADP +from INRIA Rhone-Alpes. + +This software is governed by the CeCILL license under French law and +abiding by the rules of distribution of free software. You can use, +modify and/ or redistribute the software under the terms of the CeCILL +license as circulated by CEA, CNRS and INRIA at the following URL +"http://www.cecill.info". + +As a counterpart to the access to the source code and rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors have only limited +liability. + +In this respect, the user's attention is drawn to the risks associated +with loading, using, modifying and/or developing or reproducing the +software by the user in light of its specific status of free software, +that may mean that it is complicated to manipulate, and that also +therefore means that it is reserved for developers and experienced +professionals having in-depth computer knowledge. Users are therefore +encouraged to load and test the software's suitability as regards their +requirements in conditions enabling the security of their systems and/or +data to be ensured and, more generally, to use and operate it in the +same conditions as regards security. + +The fact that you are presently reading this means that you have had +knowledge of the CeCILL license and that you accept its terms. + +/** + * Class TimeNode + * Creation: 13/04/2015 + * @version 1.0 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package attacktrees; + +import java.util.*; + + +public abstract class TimeNode extends AttackNode{ + protected int time; + + public TimeNode(String _name, int _time) { + super(_name); + time = _time; + } + +} diff --git a/src/tmltranslator/TMLActivity.java b/src/tmltranslator/TMLActivity.java index e24c8bbf8f6aa699709a4aa9422b35fbd7fb134a..1a4ff778b4fdb711b02e94ee1e67da187432ff5a 100755 --- a/src/tmltranslator/TMLActivity.java +++ b/src/tmltranslator/TMLActivity.java @@ -52,7 +52,7 @@ import myutil.*; public class TMLActivity extends TMLElement { private TMLActivityElement first; - private Vector elements; + private Vector<TMLActivityElement> elements; public TMLActivity(String name, Object reference) { @@ -461,5 +461,29 @@ public class TMLActivity extends TMLElement { } } + public void removeEmptyInfiniteLoop() { + TMLForLoop loop = null; + for(TMLActivityElement elt: elements) { + if (elt instanceof TMLForLoop) { + if (((TMLForLoop)elt).isInfinite()) { + loop = (TMLForLoop)elt; + break; + } + } + } + if (loop != null) { + TMLActivityElement next = (loop.getNexts()).get(0); + if ((next == null) || (next instanceof TMLStopState)) { + //Replace the element pointing to the infinite loop to the element at getNext(0) + for(TMLActivityElement elt: elements) { + elt.setNewNext(loop, next); + } + + } + removeEmptyInfiniteLoop(); + } + + } + } diff --git a/src/tmltranslator/TMLActivityElement.java b/src/tmltranslator/TMLActivityElement.java index 79e6df5d5f7415e3386f2b7ac3f5c43fc99b228c..ae0717014a0a40f05453007ea458b5c7abc726a6 100755 --- a/src/tmltranslator/TMLActivityElement.java +++ b/src/tmltranslator/TMLActivityElement.java @@ -49,7 +49,7 @@ import java.util.*; public class TMLActivityElement extends TMLElement{ - protected Vector nexts; + protected Vector<TMLActivityElement> nexts; public TMLActivityElement(String _name, Object _referenceObject) { super(_name, _referenceObject); @@ -81,7 +81,7 @@ public class TMLActivityElement extends TMLElement{ nexts.removeElementAt(index); } - public Vector getNexts() { + public Vector<TMLActivityElement> getNexts() { return nexts; } diff --git a/src/tmltranslator/TMLForLoop.java b/src/tmltranslator/TMLForLoop.java index 16cb29aa0267b1c0c3fea1475c834ac9b7e11a46..c77327db31208b122614d33017b9c601954be52d 100755 --- a/src/tmltranslator/TMLForLoop.java +++ b/src/tmltranslator/TMLForLoop.java @@ -51,6 +51,8 @@ public class TMLForLoop extends TMLActivityElement { //next #1 -> after loop private String init, condition, increment; + + private boolean isInfinite; public TMLForLoop(String _name, Object _referenceObject) { super(_name, _referenceObject); @@ -63,6 +65,14 @@ public class TMLForLoop extends TMLActivityElement { public String getInit() { return init;} public String getCondition() { return condition;} public String getIncrement() { return increment;} + + public void setInfinite(boolean b) { + isInfinite = b; + } + + public boolean isInfinite() { + return isInfinite; + } -} \ No newline at end of file +} diff --git a/src/tmltranslator/TMLModeling.java b/src/tmltranslator/TMLModeling.java index df6c77caa19c927424e45658eb38a1439329fa9b..453e223ca3ff8381220df9e7f62f67402e73704c 100755 --- a/src/tmltranslator/TMLModeling.java +++ b/src/tmltranslator/TMLModeling.java @@ -1637,4 +1637,10 @@ public class TMLModeling { reads[nb-1].addNext(write); } + public void removeEmptyInfiniteLoop() { + for(TMLTask task: tasks) { + task.removeEmptyInfiniteLoop(); + } + } + } diff --git a/src/tmltranslator/TMLTask.java b/src/tmltranslator/TMLTask.java index 878355d0d705433c9dff006e8ed0a2857f74a361..d0bac2c0f8769cdb1b7aa4fc4ffa697c9d30fb83 100755 --- a/src/tmltranslator/TMLTask.java +++ b/src/tmltranslator/TMLTask.java @@ -57,11 +57,11 @@ public class TMLTask extends TMLElement { private ArrayList<TMLAttribute> attributes; private boolean mustExit = false; private int priority; - private HashSet<TMLChannel> channelsList; - private HashSet<TMLChannel> readTMLChannelsList; - private HashSet<TMLChannel> writeTMLChannelsList; - private HashSet<TMLEvent> eventsList; - private OperationMEC operationMEC; + private HashSet<TMLChannel> channelsList; + private HashSet<TMLChannel> readTMLChannelsList; + private HashSet<TMLChannel> writeTMLChannelsList; + private HashSet<TMLEvent> eventsList; + private OperationMEC operationMEC; public TMLTask(String name, Object referenceToClass, Object referenceToActivityDiagram) { @@ -69,10 +69,10 @@ public class TMLTask extends TMLElement { //TraceManager.addDev("Creating new TMLTask:" + name); activity = new TMLActivity(name+"activity_diagram", referenceToActivityDiagram); attributes = new ArrayList<TMLAttribute>(); - channelsList = new HashSet<TMLChannel>(); - readTMLChannelsList = new HashSet<TMLChannel>(); - writeTMLChannelsList = new HashSet<TMLChannel>(); - eventsList = new HashSet<TMLEvent>(); + channelsList = new HashSet<TMLChannel>(); + readTMLChannelsList = new HashSet<TMLChannel>(); + writeTMLChannelsList = new HashSet<TMLChannel>(); + eventsList = new HashSet<TMLEvent>(); } public void setRequested(boolean _b) { @@ -148,7 +148,7 @@ public class TMLTask extends TMLElement { return null; } - //For SDR operations only 1 channel + //For SDR operations only 1 channel public ArrayList<TMLReadChannel> getReadChannels() { ArrayList<TMLReadChannel> list = new ArrayList<TMLReadChannel>(); @@ -161,7 +161,7 @@ public class TMLTask extends TMLElement { return list; } - //For SDR operations, only 1 channel + //For SDR operations, only 1 channel public ArrayList<TMLWriteChannel> getWriteChannels() { ArrayList<TMLWriteChannel> list = new ArrayList<TMLWriteChannel>(); @@ -179,7 +179,7 @@ public class TMLTask extends TMLElement { ArrayList<TMLSendEvent> list = new ArrayList<TMLSendEvent>(); for( int i = 0; i < getActivityDiagram().nElements(); i++ ) { if( getActivityDiagram().get(i) instanceof TMLSendEvent ) { - list.add( (TMLSendEvent) getActivityDiagram().get(i) ); + list.add( (TMLSendEvent) getActivityDiagram().get(i) ); } } return list; @@ -190,7 +190,7 @@ public class TMLTask extends TMLElement { ArrayList<TMLWaitEvent> list = new ArrayList<TMLWaitEvent>(); for( int i = 0; i < getActivityDiagram().nElements(); i++ ) { if( getActivityDiagram().get(i) instanceof TMLWaitEvent ) { - list.add( (TMLWaitEvent) getActivityDiagram().get(i) ); + list.add( (TMLWaitEvent) getActivityDiagram().get(i) ); } } return list; @@ -309,54 +309,59 @@ public class TMLTask extends TMLElement { } public void replaceReadChannelWith(TMLChannel oldChan, TMLChannel newChan) { - activity.replaceReadChannelWith(oldChan, newChan); + activity.replaceReadChannelWith(oldChan, newChan); } public void replaceWriteChannelWith(TMLChannel oldChan, TMLChannel newChan) { - activity.replaceWriteChannelWith(oldChan, newChan); + activity.replaceWriteChannelWith(oldChan, newChan); } public void addSendEventAfterWriteIn(TMLChannel chan, TMLEvent evt, String action) { - activity.addSendEventAfterWriteIn(chan, evt, action); + activity.addSendEventAfterWriteIn(chan, evt, action); } - - public void addTMLChannel( TMLChannel _ch ) { - channelsList.add( _ch ); - } - public void addReadTMLChannel( TMLChannel _ch ) { - readTMLChannelsList.add( _ch ); - } + public void addTMLChannel( TMLChannel _ch ) { + channelsList.add( _ch ); + } - public void addWriteTMLChannel( TMLChannel _ch ) { - writeTMLChannelsList.add( _ch ); - } + public void addReadTMLChannel( TMLChannel _ch ) { + readTMLChannelsList.add( _ch ); + } - public ArrayList<TMLChannel> getTMLChannels() { - return new ArrayList<TMLChannel>( channelsList ); - } + public void addWriteTMLChannel( TMLChannel _ch ) { + writeTMLChannelsList.add( _ch ); + } - public ArrayList<TMLChannel> getReadTMLChannels() { - return new ArrayList<TMLChannel>( readTMLChannelsList ); - } + public ArrayList<TMLChannel> getTMLChannels() { + return new ArrayList<TMLChannel>( channelsList ); + } - public ArrayList<TMLChannel> getWriteTMLChannels() { - return new ArrayList<TMLChannel>( writeTMLChannelsList ); - } + public ArrayList<TMLChannel> getReadTMLChannels() { + return new ArrayList<TMLChannel>( readTMLChannelsList ); + } - public void addTMLEvent( TMLEvent _evt ) { - eventsList.add( _evt ); - } + public ArrayList<TMLChannel> getWriteTMLChannels() { + return new ArrayList<TMLChannel>( writeTMLChannelsList ); + } - public ArrayList<TMLEvent> getTMLEvents() { - return new ArrayList<TMLEvent>( eventsList ); - } + public void addTMLEvent( TMLEvent _evt ) { + eventsList.add( _evt ); + } - public void addOperationMEC( OperationMEC _operationMEC ) { - operationMEC = _operationMEC; - } + public ArrayList<TMLEvent> getTMLEvents() { + return new ArrayList<TMLEvent>( eventsList ); + } + + public void addOperationMEC( OperationMEC _operationMEC ) { + operationMEC = _operationMEC; + } - public OperationMEC getOperationMEC() { - return operationMEC; - } + public OperationMEC getOperationMEC() { + return operationMEC; + } + + public void removeEmptyInfiniteLoop() { + activity.removeEmptyInfiniteLoop(); + + } } diff --git a/src/ui/AttackTreePanelTranslator.java b/src/ui/AttackTreePanelTranslator.java new file mode 100644 index 0000000000000000000000000000000000000000..2f83dfdbe4ed97020e915a017b5618a1a99a14dd --- /dev/null +++ b/src/ui/AttackTreePanelTranslator.java @@ -0,0 +1,240 @@ +/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille + * + * ludovic.apvrille AT enst.fr + * + * This software is a computer program whose purpose is to allow the + * edition of TURTLE analysis, design and deployment diagrams, to + * allow the generation of RT-LOTOS or Java code from this diagram, + * and at last to allow the analysis of formal validation traces + * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + * from INRIA Rhone-Alpes. + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + * + * /** + * Class AvatarTreePanelTranslator + * Creation: 13/04/2015 + * @author Ludovic APVRILLE + * @see + */ + +package ui; + +import java.util.*; + +import myutil.*; +import ui.atd.*; + +import attacktrees.*; +//import translator.*; +import ui.window.*; + + +public class AttackTreePanelTranslator { + + + protected AttackTreePanel atp; + protected Vector checkingErrors, warnings; + protected CorrespondanceTGElement listE; // usual list + //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks + protected LinkedList <TDiagramPanel> panels; + + + public AttackTreePanelTranslator(AttackTreePanel _atp) { + atp = _atp; + reinit(); + } + + public void reinit() { + checkingErrors = new Vector(); + warnings = new Vector(); + listE = new CorrespondanceTGElement(); + panels = new LinkedList <TDiagramPanel>(); + } + + public Vector getCheckingErrors() { + return checkingErrors; + } + + public Vector getWarnings() { + return warnings; + } + + public CorrespondanceTGElement getCorrespondanceTGElement() { + return listE; + } + + public AttackTree translateToAttackTreeDataStructure() { + + AttackTree at = new AttackTree("AttackTree", atp); + + + for(TDiagramPanel panel: atp.panels) { + if (panel instanceof AttackTreeDiagramPanel) { + translate((AttackTreeDiagramPanel)panel); + } + } + + return at; + + } + + public void translate(AttackTreeDiagramPanel atdp) { + } + + + + + + + /*public void createBlocks(AvatarSpecification _as, LinkedList<AvatarBDBlock> _blocks) { + AvatarBlock ab; + Vector v; + TAttribute a; + int i; + AvatarAttribute aa; + ui.AvatarMethod uiam; + ui.AvatarSignal uias; + avatartranslator.AvatarMethod atam; + avatartranslator.AvatarSignal atas; + TGComponent tgc1, tgc2; + Vector types; + + for(AvatarBDBlock block: _blocks) { + ab = new AvatarBlock(block.getBlockName(), block); + _as.addBlock(ab); + listE.addCor(ab, block); + block.setAVATARID(ab.getID()); + + // Create attributes + v = block.getAttributeList(); + for(i=0; i<v.size(); i++) { + a = (TAttribute)(v.elementAt(i)); + if (a.getType() == TAttribute.INTEGER){ + addRegularAttribute(ab, a, ""); + } else if (a.getType() == TAttribute.NATURAL){ + addRegularAttribute(ab, a, ""); + } else if (a.getType() == TAttribute.BOOLEAN) { + addRegularAttribute(ab, a, ""); + } else if (a.getType() == TAttribute.TIMER) { + addRegularAttribute(ab, a, ""); + } else { + // other + //TraceManager.addDev(" -> Other type found: " + a.getTypeOther()); + types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther()); + if (types == null) { + CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type: " + a.getTypeOther() + " used in " + ab.getName()); + ce.setAvatarBlock(ab); + ce.setTDiagramPanel(adp.getAvatarBDPanel()); + addCheckingError(ce); + return; + } else { + if (types.size() ==0) { + CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, "Data type definition must contain at least one attribute: " + ab.getName()); + ce.setAvatarBlock(ab); + ce.setTDiagramPanel(adp.getAvatarBDPanel()); + addCheckingError(ce); + } else { + for(int j=0; j<types.size(); j++) { + addRegularAttribute(ab, (TAttribute)(types.elementAt(j)), a.getId() + "__"); + } + } + } + + } + } + + // Create methods + v = block.getMethodList(); + for(i=0; i<v.size(); i++) { + uiam = (AvatarMethod)(v.get(i)); + atam = new avatartranslator.AvatarMethod(uiam.getId(), uiam); + atam.setImplementationProvided(uiam.isImplementationProvided()); + ab.addMethod(atam); + makeParameters(ab, atam, uiam); + makeReturnParameters(ab, block, atam, uiam); + } + // Create signals + v = block.getSignalList(); + for(i=0; i<v.size(); i++) { + uias = (AvatarSignal)(v.get(i)); + + if (uias.getInOut() == uias.IN) { + atas = new avatartranslator.AvatarSignal(uias.getId(), avatartranslator.AvatarSignal.IN, uias); + } else { + atas = new avatartranslator.AvatarSignal(uias.getId(), avatartranslator.AvatarSignal.OUT, uias); + } + ab.addSignal(atas); + makeParameters(ab, atas, uias); + } + + // Put global code + ab.addGlobalCode(block.getGlobalCode()); + + } + + // Make block hierarchy + for(AvatarBlock block: _as.getListOfBlocks()) { + tgc1 = listE.getTG(block); + if ((tgc1 != null) && (tgc1.getFather() != null)) { + tgc2 = tgc1.getFather(); + ab = listE.getAvatarBlock(tgc2); + if (ab != null) { + block.setFather(ab); + } + } + } + }*/ + + + /*} + + //TraceManager.addDev("Size of vector:" + v.size()); + for(i=0; i<v.size(); i++) { + aa = _ab.getAvatarAttributeWithName((String)(v.get(i))); + if (aa == null) { + CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + _name + " in signal expression: " + _idOperator); + ce.setAvatarBlock(_ab); + ce.setTDiagramPanel(_tdp); + ce.setTGComponent(_tgc); + addCheckingError(ce); + return ; + } else { + //TraceManager.addDev("-> Adding attr in action on signal in block " + _ab.getName() + ":" + _name + "__" + tatmp.getId()); + _aaos.addValue((String)(v.get(i))); + } + } + + + }*/ + + + + + + +} diff --git a/src/ui/AvatarDesignPanelTranslator.java b/src/ui/AvatarDesignPanelTranslator.java index 82d05fd2223f1f7be72245c8595b4f607525b419..42704bdabfb4209ec46b21fc044292ee7d2401a9 100644 --- a/src/ui/AvatarDesignPanelTranslator.java +++ b/src/ui/AvatarDesignPanelTranslator.java @@ -1217,6 +1217,10 @@ public class AvatarDesignPanelTranslator { if (!isAVariableAssignation(s)) { // Method call + int index2 = s.indexOf(";"); + if (index2 != -1) { + makeError(error, tdp, _ab, tgc, "transition action", s); + } s = modifyStringMethodCall(s, _ab.getName()); if(!_ab.isAValidMethodCall(s)) { CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed transition method call: " + s); @@ -1401,6 +1405,7 @@ public class AvatarDesignPanelTranslator { return _input; } + String s = _input.substring(index0+1, index1).trim(); String output = ""; diff --git a/src/ui/GTURTLEModeling.java b/src/ui/GTURTLEModeling.java index 8a84f13829d91962bf980dc192d4ad7aa58ccdbd..cda56def8262e501c8a0e8a9cc0d65ea861e510e 100755 --- a/src/ui/GTURTLEModeling.java +++ b/src/ui/GTURTLEModeling.java @@ -93,6 +93,8 @@ import avatartranslator.touppaal.*; import avatartranslator.toproverif.*; import avatartranslator.totpn.*; +import attacktrees.*; + import tpndescription.*; import ui.diplodocusmethodology.*; @@ -137,7 +139,7 @@ import tmltranslator.ctranslator.*; public class GTURTLEModeling { //Added by Solange - + public GProactiveDesign gpdtemp; @@ -145,6 +147,7 @@ public class GTURTLEModeling { private Vector panels; /* analysis, design, deployment, tml design */ private TURTLEModeling tm; private AvatarSpecification avatarspec; + private AttackTree attackTree; private AVATAR2UPPAAL avatar2uppaal; private AVATAR2ProVerif avatar2proverif; private boolean optimizeAvatar; @@ -158,18 +161,18 @@ public class GTURTLEModeling { private MainGUI mgui; private CorrespondanceTGElement listE; private String rtlotos; - + private EBRDD ebrdd; - + private UPPAALSpec uppaal; private RelationTIFUPPAAL uppaalTIFTable; private RelationTMLUPPAAL uppaalTMLTable; - + private ProVerifSpec proverif; - + private AVATAR2TPN avatar2tpn; private TPN tpnFromAvatar; - + private String tpn; private String sim; private String dta; @@ -195,9 +198,9 @@ public class GTURTLEModeling { private Vector checkingErrors; private Vector warnings; - + private LinkedList<Invariant> invariants; - + ArrayList<TGConnectorInfo> pendingConnectors; private Vector savedOperations; @@ -221,431 +224,431 @@ public class GTURTLEModeling { public final static int MATRIX = 4; public final static int UPPAAL = 5; public final static int PROVERIF = 6; - + private boolean undoRunning = false; //private Charset chset1, chset2; public GTURTLEModeling(MainGUI _mgui, Vector _panels) { - mgui = _mgui; - panels = _panels; - try { - dbf = DocumentBuilderFactory.newInstance(); - db = dbf.newDocumentBuilder(); - } catch (ParserConfigurationException e) { - dbf = null; - db = null; - } - savedOperations = new Vector(); - savedPanels = new Vector(); - pointerOperation = -1; - - invariants = new LinkedList<Invariant>(); - - //vdt = new ValidationDataTree(mgui); - mcvdt = new SyntaxAnalysisTree(mgui); - idt = new InvariantDataTree(mgui); - st = new SearchTree(mgui); - - /*if (!Charset.isSupported("UTF-8")) { - ErrorGUI.exit(ErrorGUI.ERROR_CHARSET); - } - - chset1 = Charset.forName("UTF-8");*/ + mgui = _mgui; + panels = _panels; + try { + dbf = DocumentBuilderFactory.newInstance(); + db = dbf.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + dbf = null; + db = null; + } + savedOperations = new Vector(); + savedPanels = new Vector(); + pointerOperation = -1; + + invariants = new LinkedList<Invariant>(); + + //vdt = new ValidationDataTree(mgui); + mcvdt = new SyntaxAnalysisTree(mgui); + idt = new InvariantDataTree(mgui); + st = new SearchTree(mgui); + + /*if (!Charset.isSupported("UTF-8")) { + ErrorGUI.exit(ErrorGUI.ERROR_CHARSET); + } + + chset1 = Charset.forName("UTF-8");*/ } public int getLanguageID() { - return languageID; + return languageID; } - + public boolean isRegularTM() { - if (tm == null ){ - return false; - } - return tm.isARegularTIFSpec(); + if (tm == null ){ + return false; + } + return tm.isARegularTIFSpec(); } - + public LinkedList<Invariant> getInvariants() { - return invariants; + return invariants; } - + public void addInvariant(Invariant _inv) { - invariants.add(_inv); - TraceManager.addDev("Adding invariant: " + _inv.toString()); + invariants.add(_inv); + TraceManager.addDev("Adding invariant: " + _inv.toString()); } - + public void clearInvariants() { - invariants.clear(); + invariants.clear(); } - - + + public String saveTIF() { - if (tm == null) { - TraceManager.addDev("NO TIF to save"); - return null; - } - - TIFExchange tif = new TIFExchange(); - tif.setTURTLEModeling(tm); - String ret = tif.saveInXMLTIF(); - TraceManager.addDev("TIF=\n" + ret); - return ret; - } - + if (tm == null) { + TraceManager.addDev("NO TIF to save"); + return null; + } + + TIFExchange tif = new TIFExchange(); + tif.setTURTLEModeling(tm); + String ret = tif.saveInXMLTIF(); + TraceManager.addDev("TIF=\n" + ret); + return ret; + } + public boolean openTIF(String s) { - TIFExchange tif = new TIFExchange(); - boolean ret = false; - - try { - ret = tif.loadFromXMLTIF(s); - if (ret) { - tm = tif.getTURTLEModeling(); - tmState = 0; - TraceManager.addDev("Got TIF"); - generateDesign(); - } - } catch (Exception e) { - TraceManager.addDev("Exception on TIF: " + e.getMessage()); - } - return ret; - } - + TIFExchange tif = new TIFExchange(); + boolean ret = false; + + try { + ret = tif.loadFromXMLTIF(s); + if (ret) { + tm = tif.getTURTLEModeling(); + tmState = 0; + TraceManager.addDev("Got TIF"); + generateDesign(); + } + } catch (Exception e) { + TraceManager.addDev("Exception on TIF: " + e.getMessage()); + } + return ret; + } + public boolean openSD(String s) { - SDExchange sde = new SDExchange(); - boolean ret = false; - - try { - ret = sde.loadFromXMLSD(s); - if (ret) { - //tm = tif.getTURTLEModeling(); - //tmState = 0; - TraceManager.addDev("Got SD"); - generateIOD(sde.getHMSC(), sde.getMSC()); - } - } catch (Exception e) { - TraceManager.addDev("Exception on SD: " + e.getMessage()); - } - return ret; - } - + SDExchange sde = new SDExchange(); + boolean ret = false; + + try { + ret = sde.loadFromXMLSD(s); + if (ret) { + //tm = tif.getTURTLEModeling(); + //tmState = 0; + TraceManager.addDev("Got SD"); + generateIOD(sde.getHMSC(), sde.getMSC()); + } + } catch (Exception e) { + TraceManager.addDev("Exception on SD: " + e.getMessage()); + } + return ret; + } + /*public void mergeChoices(boolean nonDeterministic) { if (tm != null) { tm.mergeChoices(nonDeterministic); } }*/ - + public NCStructure getNCS() { - return ncs; + return ncs; } public void generateRTLOTOS(File f) { - TURTLETranslator tt = new TURTLETranslator(tm); - rtlotos = tt.generateRTLOTOS(); - warnings = tt.getWarnings(); - nbRTLOTOS ++; - if (f != null) { - saveInFile(f, rtlotos); - } - languageID = RT_LOTOS; - mgui.setMode(MainGUI.RTLOTOS_OK); - } - + TURTLETranslator tt = new TURTLETranslator(tm); + rtlotos = tt.generateRTLOTOS(); + warnings = tt.getWarnings(); + nbRTLOTOS ++; + if (f != null) { + saveInFile(f, rtlotos); + } + languageID = RT_LOTOS; + mgui.setMode(MainGUI.RTLOTOS_OK); + } + public void generateFullLOTOS(File f) { - reinitSIM(); + reinitSIM(); reinitDTA(); reinitRG(); reinitRGAUT(); reinitRGAUTPROJDOT(); - //TraceManager.addDev("generate LOTOS"); + //TraceManager.addDev("generate LOTOS"); generateLOTOS(f); } public void generateLOTOS(File f) { - //tm.print(); - TraceManager.addDev("Generating Lotos"); - TURTLETranslator tt = new TURTLETranslator(tm); - rtlotos = tt.generateLOTOS(true); - warnings = tt.getWarnings(); - TraceManager.addDev("Lotos generated"); - - - - nbRTLOTOS ++; - if (f != null) { - saveInFile(f, rtlotos); - } - TraceManager.addDev("LOTOS to file done"); - languageID = LOTOS; - mgui.setMode(MainGUI.RTLOTOS_OK); + //tm.print(); + TraceManager.addDev("Generating Lotos"); + TURTLETranslator tt = new TURTLETranslator(tm); + rtlotos = tt.generateLOTOS(true); + warnings = tt.getWarnings(); + TraceManager.addDev("Lotos generated"); + + + + nbRTLOTOS ++; + if (f != null) { + saveInFile(f, rtlotos); + } + TraceManager.addDev("LOTOS to file done"); + languageID = LOTOS; + mgui.setMode(MainGUI.RTLOTOS_OK); } public void generateTPN(File f) { - //tm.print(); - TURTLE2TPN t2tpn = new TURTLE2TPN(tm); - tpn = t2tpn.generateTPN(false).toString(); - warnings = t2tpn.getWarnings(); - - nbTPN ++; - if (f != null) { - TraceManager.addDev("Saving in file: " + f); - saveInFile(f, tpn); - } - languageID = TPN; + //tm.print(); + TURTLE2TPN t2tpn = new TURTLE2TPN(tm); + tpn = t2tpn.generateTPN(false).toString(); + warnings = t2tpn.getWarnings(); + + nbTPN ++; + if (f != null) { + TraceManager.addDev("Saving in file: " + f); + saveInFile(f, tpn); + } + languageID = TPN; + + // For debug purpose + //TraceManager.addDev(tpn); + + mgui.setMode(MainGUI.RTLOTOS_OK); + } - // For debug purpose - //TraceManager.addDev(tpn); + public LinkedList generateAUT(String path) { + TML2AUT tml2aut = new TML2AUT(tmlm); + tml2aut.generateAutomatas(true); + try { + return tml2aut.saveInFiles(path); + } catch (FileException fe) { + return null; + } + } - mgui.setMode(MainGUI.RTLOTOS_OK); + public boolean generateCcode( String _title ) { + + CheckingError ce; + int type; + TGComponent tgc; + String applicationName; + TMLCCodeGeneration Ccode; + + if( tmap == null ) { + JOptionPane.showMessageDialog(mgui.frame, "C code is only generated from an architecture diagram with mapping information", "Code generation failed", JOptionPane.INFORMATION_MESSAGE); + return false; + } + TraceManager.addDev( "ABOUT TO CHECK ERRORS FOR CODE GENERATION" ); + TMLCCodeGenerationSyntaxCheck syntax = new TMLCCodeGenerationSyntaxCheck( tmap, tmap.getTMLModeling(), tmap.getTMLArchitecture() ); + syntax.check(); + if( syntax.hasErrors() ) { + for( TMLCCodeGenerationError error: syntax.getErrors() ) { + if( error.type == TMLCCodeGenerationError.ERROR_STRUCTURE ) { + type = CheckingError.STRUCTURE_ERROR; + } + else { + type = CheckingError.BEHAVIOR_ERROR; + } + ce = new CheckingError( type, error.message ); + tgc = listE.getTG( error.element ); + if ( tgc != null ) { + ce.setTDiagramPanel( tgc.getTDiagramPanel() ); + ce.setTGComponent( tgc ); + } + ce.setTMLTask( error.task ); + checkingErrors.add( ce ); + } + JOptionPane.showMessageDialog( mgui.frame, + "The system design contains several errors: the application C code could not be generated", + "Code generation failed", JOptionPane.INFORMATION_MESSAGE ); + return false; + } + applicationName = tmap.getMappedTasks().get(0).getName().split("__")[0]; + Ccode = new TMLCCodeGeneration( _title, applicationName, mgui.frame, mgui.getAllTMLCP(), tmap ); + Ccode.toTextFormat(); + try { + if( ConfigurationTTool.CcodeDirectory.equals("") ) { + JOptionPane.showMessageDialog( mgui.frame, + "No directory for C code generation found in config.xml. The C code cannot be generated.", + "Code generation failed", JOptionPane.INFORMATION_MESSAGE ); + return false; + } + else { + Ccode.saveFile( ConfigurationTTool.CcodeDirectory + File.separator, applicationName ); + JOptionPane.showMessageDialog( mgui.frame, "The application C code has been successfully generated in: " + + ConfigurationTTool.CcodeDirectory + "/", "C code generation successful", + JOptionPane.INFORMATION_MESSAGE); + } + } + catch( Exception e ) { + TraceManager.addError( "Application C files could not be saved: " + e.getMessage() ); + return false; + } + return true; } - public LinkedList generateAUT(String path) { - TML2AUT tml2aut = new TML2AUT(tmlm); - tml2aut.generateAutomatas(true); - try { - return tml2aut.saveInFiles(path); - } catch (FileException fe) { - return null; - } - } - - public boolean generateCcode( String _title ) { - - CheckingError ce; - int type; - TGComponent tgc; - String applicationName; - TMLCCodeGeneration Ccode; - - if( tmap == null ) { - JOptionPane.showMessageDialog(mgui.frame, "C code is only generated from an architecture diagram with mapping information", "Code generation failed", JOptionPane.INFORMATION_MESSAGE); - return false; - } - TraceManager.addDev( "ABOUT TO CHECK ERRORS FOR CODE GENERATION" ); - TMLCCodeGenerationSyntaxCheck syntax = new TMLCCodeGenerationSyntaxCheck( tmap, tmap.getTMLModeling(), tmap.getTMLArchitecture() ); - syntax.check(); - if( syntax.hasErrors() ) { - for( TMLCCodeGenerationError error: syntax.getErrors() ) { - if( error.type == TMLCCodeGenerationError.ERROR_STRUCTURE ) { - type = CheckingError.STRUCTURE_ERROR; - } - else { - type = CheckingError.BEHAVIOR_ERROR; - } - ce = new CheckingError( type, error.message ); - tgc = listE.getTG( error.element ); - if ( tgc != null ) { - ce.setTDiagramPanel( tgc.getTDiagramPanel() ); - ce.setTGComponent( tgc ); - } - ce.setTMLTask( error.task ); - checkingErrors.add( ce ); - } - JOptionPane.showMessageDialog( mgui.frame, - "The system design contains several errors: the application C code could not be generated", - "Code generation failed", JOptionPane.INFORMATION_MESSAGE ); - return false; - } - applicationName = tmap.getMappedTasks().get(0).getName().split("__")[0]; - Ccode = new TMLCCodeGeneration( _title, applicationName, mgui.frame, mgui.getAllTMLCP(), tmap ); - Ccode.toTextFormat(); - try { - if( ConfigurationTTool.CcodeDirectory.equals("") ) { - JOptionPane.showMessageDialog( mgui.frame, - "No directory for C code generation found in config.xml. The C code cannot be generated.", - "Code generation failed", JOptionPane.INFORMATION_MESSAGE ); - return false; - } - else { - Ccode.saveFile( ConfigurationTTool.CcodeDirectory + File.separator, applicationName ); - JOptionPane.showMessageDialog( mgui.frame, "The application C code has been successfully generated in: " - + ConfigurationTTool.CcodeDirectory + "/", "C code generation successful", - JOptionPane.INFORMATION_MESSAGE); - } - } - catch( Exception e ) { - TraceManager.addError( "Application C files could not be saved: " + e.getMessage() ); - return false; - } - return true; - } - public boolean generateTMLTxt( String _title ) { - if( tmlcp != null ) { //Use the data structure filled by translateToTML... and pass it to the appropriate toTextFormat() - TraceManager.addError( "About to generate the TMLText for CPs" ); - TMLCPTextSpecification specCP = new TMLCPTextSpecification( _title ); - - //get the architecture panel and the nodes - TMLArchiDiagramPanel tmlap = mgui.getTMLArchiDiagramPanels().get(0).tmlap; - LinkedList components = tmlap.getComponentList(); - ListIterator iterator = components.listIterator(); - TGComponent tgc; - - while(iterator.hasNext()) { - tgc = (TGComponent)(iterator.next()); - if (tgc instanceof TMLArchiCPNode) { - TMLArchiCPNode node = (TMLArchiCPNode) tgc; - TraceManager.addDev( "Found CP node: " + node.getName() ); - TraceManager.addDev( "with mapping info: " + node.getMappedUnits() ); - } - } - - ArrayList<TMLCommunicationPatternPanel> tmlcpPanelsList = new ArrayList<TMLCommunicationPatternPanel>(); - //get the TMLCommunicationPatternPanels :) - for( int i = 0; i < mgui.tabs.size(); i++ ) { - TURTLEPanel panel = (TURTLEPanel)( mgui.tabs.get(i) ); - if( panel instanceof TMLCommunicationPatternPanel ) { - tmlcpPanelsList.add( (TMLCommunicationPatternPanel) panel ); - TraceManager.addDev( "Found TMLCommunicationPatternPanel: " + ((TMLCommunicationPatternPanel)panel).toString() ); - } - } - - specCP.toTextFormat( tmlcp ); // the data structure tmlcp is filled with the info concerning the CP panel - // from which the button is pressed. If there are multiple CP panels this operation must be repeated for each panel. It - // should be no difficult to implement. - try { - specCP.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tmlcp" ); - } - catch( Exception e ) { - TraceManager.addError( "Writing TMLText for CPs, file could not be saved: " + e.getMessage() ); - return false; - } - } - else { - //This branch is activated if doing the syntax check from the application panel. - //It only generates the application TML text - if( tmap == null ) { - TMLTextSpecification spec = new TMLTextSpecification( _title ); - spec.toTextFormat( tmlm ); //TMLModeling - try { - spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tml" ); - } - catch( Exception e ) { - TraceManager.addError( "File could not be saved: " + e.getMessage() ); - return false; - } - } - //This branch is activated if doing the syntax check from the architecture panel. - //It generates the text TML for the architecture and the application + mapping information - else { - TMLMappingTextSpecification spec = new TMLMappingTextSpecification( _title ); - spec.toTextFormat( tmap ); //TMLMapping - try { - spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec" ); - } - catch( Exception e ) { - TraceManager.addError( "Files could not be saved: " + e.getMessage() ); - return false; - } - } - } - return true; //temporary, just to check functionality - } - + if( tmlcp != null ) { //Use the data structure filled by translateToTML... and pass it to the appropriate toTextFormat() + TraceManager.addError( "About to generate the TMLText for CPs" ); + TMLCPTextSpecification specCP = new TMLCPTextSpecification( _title ); + + //get the architecture panel and the nodes + TMLArchiDiagramPanel tmlap = mgui.getTMLArchiDiagramPanels().get(0).tmlap; + LinkedList components = tmlap.getComponentList(); + ListIterator iterator = components.listIterator(); + TGComponent tgc; + + while(iterator.hasNext()) { + tgc = (TGComponent)(iterator.next()); + if (tgc instanceof TMLArchiCPNode) { + TMLArchiCPNode node = (TMLArchiCPNode) tgc; + TraceManager.addDev( "Found CP node: " + node.getName() ); + TraceManager.addDev( "with mapping info: " + node.getMappedUnits() ); + } + } + + ArrayList<TMLCommunicationPatternPanel> tmlcpPanelsList = new ArrayList<TMLCommunicationPatternPanel>(); + //get the TMLCommunicationPatternPanels :) + for( int i = 0; i < mgui.tabs.size(); i++ ) { + TURTLEPanel panel = (TURTLEPanel)( mgui.tabs.get(i) ); + if( panel instanceof TMLCommunicationPatternPanel ) { + tmlcpPanelsList.add( (TMLCommunicationPatternPanel) panel ); + TraceManager.addDev( "Found TMLCommunicationPatternPanel: " + ((TMLCommunicationPatternPanel)panel).toString() ); + } + } + + specCP.toTextFormat( tmlcp ); // the data structure tmlcp is filled with the info concerning the CP panel + // from which the button is pressed. If there are multiple CP panels this operation must be repeated for each panel. It + // should be no difficult to implement. + try { + specCP.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tmlcp" ); + } + catch( Exception e ) { + TraceManager.addError( "Writing TMLText for CPs, file could not be saved: " + e.getMessage() ); + return false; + } + } + else { + //This branch is activated if doing the syntax check from the application panel. + //It only generates the application TML text + if( tmap == null ) { + TMLTextSpecification spec = new TMLTextSpecification( _title ); + spec.toTextFormat( tmlm ); //TMLModeling + try { + spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec.tml" ); + } + catch( Exception e ) { + TraceManager.addError( "File could not be saved: " + e.getMessage() ); + return false; + } + } + //This branch is activated if doing the syntax check from the architecture panel. + //It generates the text TML for the architecture and the application + mapping information + else { + TMLMappingTextSpecification spec = new TMLMappingTextSpecification( _title ); + spec.toTextFormat( tmap ); //TMLMapping + try { + spec.saveFile( ConfigurationTTool.TMLCodeDirectory + File.separator, "spec" ); + } + catch( Exception e ) { + TraceManager.addError( "Files could not be saved: " + e.getMessage() ); + return false; + } + } + } + return true; //temporary, just to check functionality + } + public boolean generateUPPAALFromTIF(String path, boolean debug, int nb, boolean choices, boolean variables) { - TURTLE2UPPAAL turtle2uppaal = new TURTLE2UPPAAL(tm); - turtle2uppaal.setChoiceDeterministic(choices); - turtle2uppaal.setVariablesAsActions(variables); - uppaal = turtle2uppaal.generateUPPAAL(debug, nb); - TraceManager.addDev("Building relation table"); - uppaalTIFTable = turtle2uppaal.getRelationTIFUPPAAL(); - TraceManager.addDev("Building relation table done"); - uppaalTMLTable = null; - - languageID = UPPAAL; - mgui.setMode(MainGUI.UPPAAL_OK); - - try { - TraceManager.addDev("Saving specification in " + path + "\n"); - turtle2uppaal.saveInFile(path); - TraceManager.addDev("UPPAAL specification has been generated in " + path + "\n"); - return true; - } catch (FileException fe) { - TraceManager.addError("Exception: " + fe.getMessage()); - return false; - } + TURTLE2UPPAAL turtle2uppaal = new TURTLE2UPPAAL(tm); + turtle2uppaal.setChoiceDeterministic(choices); + turtle2uppaal.setVariablesAsActions(variables); + uppaal = turtle2uppaal.generateUPPAAL(debug, nb); + TraceManager.addDev("Building relation table"); + uppaalTIFTable = turtle2uppaal.getRelationTIFUPPAAL(); + TraceManager.addDev("Building relation table done"); + uppaalTMLTable = null; + + languageID = UPPAAL; + mgui.setMode(MainGUI.UPPAAL_OK); + + try { + TraceManager.addDev("Saving specification in " + path + "\n"); + turtle2uppaal.saveInFile(path); + TraceManager.addDev("UPPAAL specification has been generated in " + path + "\n"); + return true; + } catch (FileException fe) { + TraceManager.addError("Exception: " + fe.getMessage()); + return false; + } } public boolean generateUPPAALFromTML(String _path, boolean _debug, int _size, boolean choices) { - TML2UPPAAL tml2uppaal = new TML2UPPAAL(tmlm); - //tml2uppaal.setChoiceDeterministic(choices); - tml2uppaal.setSizeInfiniteFIFO(_size); - uppaal = tml2uppaal.generateUPPAAL(_debug); - uppaalTMLTable = tml2uppaal.getRelationTMLUPPAAL(); - uppaalTIFTable = null; - languageID = UPPAAL; - mgui.setMode(MainGUI.UPPAAL_OK); - //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug); - try { - tml2uppaal.saveInFile(_path); - return true; - } catch (FileException fe) { - TraceManager.addError("Exception: " + fe.getMessage()); - return false; - } - } - + TML2UPPAAL tml2uppaal = new TML2UPPAAL(tmlm); + //tml2uppaal.setChoiceDeterministic(choices); + tml2uppaal.setSizeInfiniteFIFO(_size); + uppaal = tml2uppaal.generateUPPAAL(_debug); + uppaalTMLTable = tml2uppaal.getRelationTMLUPPAAL(); + uppaalTIFTable = null; + languageID = UPPAAL; + mgui.setMode(MainGUI.UPPAAL_OK); + //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug); + try { + tml2uppaal.saveInFile(_path); + return true; + } catch (FileException fe) { + TraceManager.addError("Exception: " + fe.getMessage()); + return false; + } + } + public boolean generateUPPAALFromAVATAR(String _path) { - avatar2uppaal = new AVATAR2UPPAAL(avatarspec); - //tml2uppaal.setChoiceDeterministic(choices); - //tml2uppaal.setSizeInfiniteFIFO(_size); - uppaal = avatar2uppaal.generateUPPAAL(true, optimizeAvatar); - warnings = avatar2uppaal.getWarnings(); - uppaalTMLTable = null; - uppaalTIFTable = null; - languageID = UPPAAL; - mgui.setMode(MainGUI.UPPAAL_OK); - //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug); - try { - avatar2uppaal.saveInFile(_path); - return true; - } catch (FileException fe) { - TraceManager.addError("Exception: " + fe.getMessage()); - return false; - } - } - + avatar2uppaal = new AVATAR2UPPAAL(avatarspec); + //tml2uppaal.setChoiceDeterministic(choices); + //tml2uppaal.setSizeInfiniteFIFO(_size); + uppaal = avatar2uppaal.generateUPPAAL(true, optimizeAvatar); + warnings = avatar2uppaal.getWarnings(); + uppaalTMLTable = null; + uppaalTIFTable = null; + languageID = UPPAAL; + mgui.setMode(MainGUI.UPPAAL_OK); + //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug); + try { + avatar2uppaal.saveInFile(_path); + return true; + } catch (FileException fe) { + TraceManager.addError("Exception: " + fe.getMessage()); + return false; + } + } + public AvatarSpecification getAvatarSpecification() { - return avatarspec; + return avatarspec; } - + public boolean generateProVerifFromAVATAR(String _path, boolean _stateReachability, boolean _advancedTranslation) { - avatar2proverif = new AVATAR2ProVerif(avatarspec); - //tml2uppaal.setChoiceDeterministic(choices); - //tml2uppaal.setSizeInfiniteFIFO(_size); - proverif = avatar2proverif.generateProVerif(true, true, _stateReachability, _advancedTranslation); - languageID = PROVERIF; - mgui.setMode(MainGUI.EDIT_PROVERIF_OK); - //mgui.setMode(MainGUI.MODEL_PROVERIF_OK); - //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug); - try { - avatar2proverif.saveInFile(_path); - TraceManager.addDev("Specification generated in " + _path); - return true; - } catch (FileException fe) { - TraceManager.addError("Exception: " + fe.getMessage()); - return false; - } - } - + avatar2proverif = new AVATAR2ProVerif(avatarspec); + //tml2uppaal.setChoiceDeterministic(choices); + //tml2uppaal.setSizeInfiniteFIFO(_size); + proverif = avatar2proverif.generateProVerif(true, true, _stateReachability, _advancedTranslation); + languageID = PROVERIF; + mgui.setMode(MainGUI.EDIT_PROVERIF_OK); + //mgui.setMode(MainGUI.MODEL_PROVERIF_OK); + //uppaalTable = tml2uppaal.getRelationTIFUPPAAL(_debug); + try { + avatar2proverif.saveInFile(_path); + TraceManager.addDev("Specification generated in " + _path); + return true; + } catch (FileException fe) { + TraceManager.addError("Exception: " + fe.getMessage()); + return false; + } + } + public TPN generateTPNFromAvatar() { - avatar2tpn = new AVATAR2TPN(avatarspec); - //tml2uppaal.setChoiceDeterministic(choices); - //tml2uppaal.setSizeInfiniteFIFO(_size); - tpnFromAvatar = avatar2tpn.generateTPN(true, true); - languageID = TPN; - return tpnFromAvatar; - } - + avatar2tpn = new AVATAR2TPN(avatarspec); + //tml2uppaal.setChoiceDeterministic(choices); + //tml2uppaal.setSizeInfiniteFIFO(_size); + tpnFromAvatar = avatar2tpn.generateTPN(true, true); + languageID = TPN; + return tpnFromAvatar; + } + /*IntMatrix im = tpnFromAvatar.getIncidenceMatrix(); TraceManager.addDev("Farkas computing on " + im.toString()); im.Farkas(); TraceManager.addDev("Farkas done:" + im.toString()); - - - + + + languageID = TPN; mgui.setMode(MainGUI.EDIT_PROVERIF_OK); //mgui.setMode(MainGUI.MODEL_PROVERIF_OK); @@ -659,232 +662,232 @@ public class GTURTLEModeling { TraceManager.addError("Exception: " + fe.getMessage()); return false; }*/ - + public ArrayList<String> getUPPAALQueries() { - return getUPPAALQueries(mgui.getCurrentTURTLEPanel()); + return getUPPAALQueries(mgui.getCurrentTURTLEPanel()); } - + public ArrayList<String> getUPPAALQueries(TURTLEPanel tp) { - TraceManager.addDev("Searching for queries on " + mgui.getTabName(tp)); - ArrayList<TGComponent> list = new ArrayList<TGComponent>(); - ArrayList<TClass> tclasses; - tp.getAllCheckableTGComponent(list); - - ArrayList<String> listQ = new ArrayList<String>(); - - if (tp instanceof DesignPanel) { - ArrayList<ADComponent> listAD = listE.getADComponentCorrespondance(list); - - //TraceManager.addDev("List size:" + listAD.size()); - - if (listAD == null) { - return null; - } - - TClass t; - String s; - for(ADComponent adc:listAD) { - if (adc != null) { - t = tm.findTClass(adc); - //TraceManager.addDev("Found class:" + t.getName()); - if (t!= null) { - tclasses = new ArrayList<TClass>(); - tclasses.add(t); - // For handling tobjects - tm.addAllTClassesEndingWith(tclasses, "_" + t.getName()); - for(TClass tc: tclasses) { - //TraceManager.addDev("Analyzing class:" + tc.getName()); - s = uppaalTIFTable.getRQuery(tc, adc); - if (s != null) { - //TraceManager.addDev("Adding query:" + s); - listQ.add(s + "$" + adc); - } - } - } - } - } - } else if ((tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLDesignPanel)) { - //TraceManager.addDev("uppaalTMLTable"); - ArrayList<TMLActivityElement> listAE = listE.getTMLActivityElementCorrespondance(list); - - if (listAE == null) { - return null; - } - - TMLTask task; - String s; - for(TMLActivityElement elt:listAE) { - if (elt != null) { - task = tmlm.findTMLTask(elt); - if (task!= null) { - s = uppaalTMLTable.getRQuery(task, elt); - if (s != null) { - //TraceManager.addDev("Adding query:" + s); - listQ.add(s + "$" + elt); - } - } - } - } - - } else if ((avatar2uppaal != null) && (tp instanceof AvatarDesignPanel)) { - TraceManager.addDev("Making UPPAAL queries"); - for(TGComponent tgc: list) { - TraceManager.addDev("Making UPPAAL query for " + tgc); - String s = avatar2uppaal.getUPPAALIdentification(tgc); - TraceManager.addDev("Query: " + s); - if ((s!= null) && (s.length() > 0)) { - AvatarBlock block = avatar2uppaal.getBlockFromReferenceObject(tgc); - listQ.add(s + "$" + block.getName() + "." + tgc); - } else { - TraceManager.addDev("Could not make query for " + tgc); - } - } - } - - return listQ; + TraceManager.addDev("Searching for queries on " + mgui.getTabName(tp)); + ArrayList<TGComponent> list = new ArrayList<TGComponent>(); + ArrayList<TClass> tclasses; + tp.getAllCheckableTGComponent(list); + + ArrayList<String> listQ = new ArrayList<String>(); + + if (tp instanceof DesignPanel) { + ArrayList<ADComponent> listAD = listE.getADComponentCorrespondance(list); + + //TraceManager.addDev("List size:" + listAD.size()); + + if (listAD == null) { + return null; + } + + TClass t; + String s; + for(ADComponent adc:listAD) { + if (adc != null) { + t = tm.findTClass(adc); + //TraceManager.addDev("Found class:" + t.getName()); + if (t!= null) { + tclasses = new ArrayList<TClass>(); + tclasses.add(t); + // For handling tobjects + tm.addAllTClassesEndingWith(tclasses, "_" + t.getName()); + for(TClass tc: tclasses) { + //TraceManager.addDev("Analyzing class:" + tc.getName()); + s = uppaalTIFTable.getRQuery(tc, adc); + if (s != null) { + //TraceManager.addDev("Adding query:" + s); + listQ.add(s + "$" + adc); + } + } + } + } + } + } else if ((tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLDesignPanel)) { + //TraceManager.addDev("uppaalTMLTable"); + ArrayList<TMLActivityElement> listAE = listE.getTMLActivityElementCorrespondance(list); + + if (listAE == null) { + return null; + } + + TMLTask task; + String s; + for(TMLActivityElement elt:listAE) { + if (elt != null) { + task = tmlm.findTMLTask(elt); + if (task!= null) { + s = uppaalTMLTable.getRQuery(task, elt); + if (s != null) { + //TraceManager.addDev("Adding query:" + s); + listQ.add(s + "$" + elt); + } + } + } + } + + } else if ((avatar2uppaal != null) && (tp instanceof AvatarDesignPanel)) { + TraceManager.addDev("Making UPPAAL queries"); + for(TGComponent tgc: list) { + TraceManager.addDev("Making UPPAAL query for " + tgc); + String s = avatar2uppaal.getUPPAALIdentification(tgc); + TraceManager.addDev("Query: " + s); + if ((s!= null) && (s.length() > 0)) { + AvatarBlock block = avatar2uppaal.getBlockFromReferenceObject(tgc); + listQ.add(s + "$" + block.getName() + "." + tgc); + } else { + TraceManager.addDev("Could not make query for " + tgc); + } + } + } + + return listQ; } public LinkedList generateLOTOSAUT(String path) { - TML2AUTviaLOTOS tml2aut = new TML2AUTviaLOTOS(tmlm, tm); - tml2aut.generateLOTOS(true); - return tml2aut.getSpecs(); - /*try { - return tml2aut.saveInFiles(path); - } catch (FileException fe) { - return null; - }*/ + TML2AUTviaLOTOS tml2aut = new TML2AUTviaLOTOS(tmlm, tm); + tml2aut.generateLOTOS(true); + return tml2aut.getSpecs(); + /*try { + return tml2aut.saveInFiles(path); + } catch (FileException fe) { + return null; + }*/ } public void generateSystemC() { - String path = ConfigurationTTool.SystemCCodeDirectory; - String list = FileUtils.deleteFiles(path, ".cpp"); - if (list.length() == 0) { - TraceManager.addDev("No cpp files were deleted\n"); - } else { - TraceManager.addDev("Files deleted:\n" + list + "\n"); - } - - list = FileUtils.deleteFiles(path, ".x"); - - if (list.length() == 0) { - TraceManager.addDev("No x files were deleted\n"); - } else { - TraceManager.addDev("Files deleted:\n" + list + "\n"); - } - - TML2SystemC tml2systc = new TML2SystemC(tmlm); - tml2systc.generateSystemC(true); - //tml2systc.print(); - try { - tml2systc.saveFile(path, "appmodel"); - } catch (FileException fe) { - TraceManager.addError("File could not be saved (SystemC)"); - } + String path = ConfigurationTTool.SystemCCodeDirectory; + String list = FileUtils.deleteFiles(path, ".cpp"); + if (list.length() == 0) { + TraceManager.addDev("No cpp files were deleted\n"); + } else { + TraceManager.addDev("Files deleted:\n" + list + "\n"); + } + + list = FileUtils.deleteFiles(path, ".x"); + + if (list.length() == 0) { + TraceManager.addDev("No x files were deleted\n"); + } else { + TraceManager.addDev("Files deleted:\n" + list + "\n"); + } + + TML2SystemC tml2systc = new TML2SystemC(tmlm); + tml2systc.generateSystemC(true); + //tml2systc.print(); + try { + tml2systc.saveFile(path, "appmodel"); + } catch (FileException fe) { + TraceManager.addError("File could not be saved (SystemC)"); + } } public void saveSIM(File f) { - if ((sim != null) && (f != null)) { - saveInFile(f, sim); - } + if ((sim != null) && (f != null)) { + saveInFile(f, sim); + } } public void saveDTA(File f) { - if ((dta != null) && (f != null)) { - saveInFile(f, dta); - } + if ((dta != null) && (f != null)) { + saveInFile(f, dta); + } } public void saveDTADOT(File f) { - if ((dtadot != null) && (f != null)) { - saveInFile(f, dtadot); - } + if ((dtadot != null) && (f != null)) { + saveInFile(f, dtadot); + } } public void saveRG(File f) { - if ((rg != null) && (f != null)) { - saveInFile(f, rg); - } + if ((rg != null) && (f != null)) { + saveInFile(f, rg); + } } public void saveTLSA(File f) { - if ((rg != null) && (f != null)) { - saveInFile(f, tlsa); - } + if ((rg != null) && (f != null)) { + saveInFile(f, tlsa); + } } public void saveRGAut(File f) { - if ((rgaut != null) && (f != null)) { - saveInFile(f, rgaut); - } + if ((rgaut != null) && (f != null)) { + saveInFile(f, rgaut); + } } public void saveRGDOT(File f) { - if ((rgdot != null) && (f != null)) { - saveInFile(f, rgdot); - } + if ((rgdot != null) && (f != null)) { + saveInFile(f, rgdot); + } } public void saveTLSADOT(File f) { - if ((rgdot != null) && (f != null)) { - saveInFile(f, tlsadot); - } + if ((rgdot != null) && (f != null)) { + saveInFile(f, tlsadot); + } } public void saveRGAutDOT(File f) { - if ((rgautdot != null) && (f != null)) { - saveInFile(f, rgautdot); - } + if ((rgautdot != null) && (f != null)) { + saveInFile(f, rgautdot); + } } public void saveRGAutProj(File f) { - if ((rgautproj != null) && (f != null)) { - saveInFile(f, rgautproj); - } + if ((rgautproj != null) && (f != null)) { + saveInFile(f, rgautproj); + } } public void saveRGAutProjDOT(File f) { - if ((rgautprojdot != null) && (f != null)) { - saveInFile(f, rgautprojdot); - } + if ((rgautprojdot != null) && (f != null)) { + saveInFile(f, rgautprojdot); + } } - + public void modifyMinimizedGraph() { - /*AUTMappingGraph graph = new AUTMappingGraph(); - TraceManager.addDev("Building graph"); - graph.buildGraph(rgautproj); - TraceManager.addDev("Renaming transitions"); - graph.renameTransitions(); - TraceManager.addDev("Merging transitions 23/4=" + (23/4) + "23%4=" + (23%4)); - graph.mergeWriteTransitions(); - graph.mergeReadTransitions(); - graph.removeInternalTransitions(); - TraceManager.addDev("Printing graph:\n" + graph.toAUTStringFormat()); - TraceManager.addDev("Splitting transitions"); - graph.splitTransitions(); - modifiedaut = graph.toAUTStringFormat(); - TraceManager.addDev("Printing graph:\n" + modifiedaut); - TraceManager.addDev("Translation in DOT format"); - - // AUT 2 dot - String fileName = "graph"; - try { - RshClient rshc = new RshClient(getHostAldebaran()); - int id = rshc.getId(); - fileName = FileUtils.addBeforeFileExtension(fileName, "_" + id); - String data = rgautproj; - rshc.sendFileData(fileName + ".aut", data); - String cmd1 = getPathBcgio() + " -aldebaran " + fileName + ".aut" + " -graphviz " + fileName + ".dot"; - data = processCmd(rshc, cmd1); - data = rshc.getFileData(fileName + ".dot"); - modifiedautdot = data; - TraceManager.addDev("All done"); - } catch (LauncherException le) { - TraceManager.addDev("Error: conversion failed"); - }*/ - } - + /*AUTMappingGraph graph = new AUTMappingGraph(); + TraceManager.addDev("Building graph"); + graph.buildGraph(rgautproj); + TraceManager.addDev("Renaming transitions"); + graph.renameTransitions(); + TraceManager.addDev("Merging transitions 23/4=" + (23/4) + "23%4=" + (23%4)); + graph.mergeWriteTransitions(); + graph.mergeReadTransitions(); + graph.removeInternalTransitions(); + TraceManager.addDev("Printing graph:\n" + graph.toAUTStringFormat()); + TraceManager.addDev("Splitting transitions"); + graph.splitTransitions(); + modifiedaut = graph.toAUTStringFormat(); + TraceManager.addDev("Printing graph:\n" + modifiedaut); + TraceManager.addDev("Translation in DOT format"); + + // AUT 2 dot + String fileName = "graph"; + try { + RshClient rshc = new RshClient(getHostAldebaran()); + int id = rshc.getId(); + fileName = FileUtils.addBeforeFileExtension(fileName, "_" + id); + String data = rgautproj; + rshc.sendFileData(fileName + ".aut", data); + String cmd1 = getPathBcgio() + " -aldebaran " + fileName + ".aut" + " -graphviz " + fileName + ".dot"; + data = processCmd(rshc, cmd1); + data = rshc.getFileData(fileName + ".dot"); + modifiedautdot = data; + TraceManager.addDev("All done"); + } catch (LauncherException le) { + TraceManager.addDev("Error: conversion failed"); + }*/ + } + protected String processCmd(RshClient rshc, String cmd) throws LauncherException { rshc.setCmd(cmd); String s = null; @@ -894,653 +897,653 @@ public class GTURTLEModeling { } public void showSIM(int type) { - if (sim != null) { - JFrameSimulationTrace jfst = new JFrameSimulationTrace("Last simulation trace", sim, type); - jfst.setIconImage(IconManager.img8); - jfst.setSize(900, 600); - GraphicLib.centerOnParent(jfst); - jfst.setVisible(true); - } + if (sim != null) { + JFrameSimulationTrace jfst = new JFrameSimulationTrace("Last simulation trace", sim, type); + jfst.setIconImage(IconManager.img8); + jfst.setSize(900, 600); + GraphicLib.centerOnParent(jfst); + jfst.setVisible(true); + } } public String showDTA() { - if (dta != null) { - return runDOTTY(dtadot); - } - return null; + if (dta != null) { + return runDOTTY(dtadot); + } + return null; } public String showRG() { - if (rg != null) { - return runDOTTY(rgdot); - } - return null; + if (rg != null) { + return runDOTTY(rgdot); + } + return null; } public String showTLSA() { - if (rg != null) { - return runDOTTY(tlsadot); - } - return null; + if (rg != null) { + return runDOTTY(tlsadot); + } + return null; } public String showRGAut() { - if (rgaut != null) { - return runDOTTY(rgautdot); - } - return null; + if (rgaut != null) { + return runDOTTY(rgautdot); + } + return null; } - + public String showRGDiplodocus() { - TraceManager.addDev("Show diplodocus graph located in " + ConfigurationTTool.GGraphPath + "/tree.dot"); - RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, null, null, ConfigurationTTool.DOTTYPath + " " + ConfigurationTTool.GGraphPath + "/tree.dot"); - ret.start(); - return null; + TraceManager.addDev("Show diplodocus graph located in " + ConfigurationTTool.GGraphPath + "/tree.dot"); + RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, null, null, ConfigurationTTool.DOTTYPath + " " + ConfigurationTTool.GGraphPath + "/tree.dot"); + ret.start(); + return null; } public String showRGAutProj() { - if (rgaut != null) { - return runDOTTY(rgautprojdot); - } - return null; + if (rgaut != null) { + return runDOTTY(rgautprojdot); + } + return null; } public static String showGGraph(String ggraph) { - if (ggraph != null) { - return runDOTTY(ggraph); - } - return null; + if (ggraph != null) { + return runDOTTY(ggraph); + } + return null; } public static String runDOTTY(String data) { - String fileName = "graph" + graphId + ".dot"; - graphId ++; + String fileName = "graph" + graphId + ".dot"; + graphId ++; - RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, fileName, data, ConfigurationTTool.DOTTYPath + " " + fileName); - ret.start(); + RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.DOTTYHost, fileName, data, ConfigurationTTool.DOTTYPath + " " + fileName); + ret.start(); - return null; + return null; } public boolean useDynamicStructure(String data) { - int index1 = data.indexOf("behaviour"); - if (index1 == -1) { - return false; - } + int index1 = data.indexOf("behaviour"); + if (index1 == -1) { + return false; + } - data = data.substring(index1, data.length()); + data = data.substring(index1, data.length()); - return (data.indexOf("Queue_nat") != -1); + return (data.indexOf("Queue_nat") != -1); } public void saveInFile(File file, String s) { - TraceManager.addDev("Saving in file " + file.getAbsolutePath() + " size of file=" + s.length()); - //TraceManager.addDev("Length of s=" + s.length()); - - int index1 = 0, index2; - int step = 1048576; - int length = s.length(); - //String sub; - - try { - FileOutputStream fos = new FileOutputStream(file); - while(index1<length) { - index2 = Math.min(index1+step, length); - fos.write(s.substring(index1, index2).getBytes()); - index1 += step; - } - fos.close(); - } catch(Exception e) { - JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE); - TraceManager.addError("Specification could not be saved " + e.getMessage()); - } - - /*try { - FileOutputStream fos = new FileOutputStream(file); - fos.write(s.getBytes()); - fos.close(); - } catch(Exception e) { - JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE); - TraceManager.addDev("Specification could not be saved " + e.getMessage()); - }*/ + TraceManager.addDev("Saving in file " + file.getAbsolutePath() + " size of file=" + s.length()); + //TraceManager.addDev("Length of s=" + s.length()); + + int index1 = 0, index2; + int step = 1048576; + int length = s.length(); + //String sub; + + try { + FileOutputStream fos = new FileOutputStream(file); + while(index1<length) { + index2 = Math.min(index1+step, length); + fos.write(s.substring(index1, index2).getBytes()); + index1 += step; + } + fos.close(); + } catch(Exception e) { + JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE); + TraceManager.addError("Specification could not be saved " + e.getMessage()); + } + + /*try { + FileOutputStream fos = new FileOutputStream(file); + fos.write(s.getBytes()); + fos.close(); + } catch(Exception e) { + JOptionPane.showMessageDialog(mgui.frame, "Specification could not be saved " + e.getMessage(), "Lotos File Error", JOptionPane.INFORMATION_MESSAGE); + TraceManager.addDev("Specification could not be saved " + e.getMessage()); + }*/ } public String getLastRTLOTOSSpecification() { - return rtlotos; + return rtlotos; } public String getLastTextualDTA() { - return dta; + return dta; } public String getLastGraphicalDTA() { - return dtadot; + return dtadot; } public String getLastTextualRG() { - return rg; + return rg; } public String getLastGraphicalRG() { - return rgdot; + return rgdot; } public String getLastTextualTLSA() { - return tlsa; + return tlsa; } public String getLastGraphicalTLSA() { - return tlsadot; + return tlsadot; } public String getLastTextualRGAUT() { - return rgaut; + return rgaut; } public String getLastGraphicalRGAUT() { - return rgautdot; + return rgautdot; } public String getLastTextualRGAUTProj() { - return rgautproj; + return rgautproj; } public String getLastGraphicalRGAUTProj() { - return rgautprojdot; + return rgautprojdot; } - + public String getLastProVerifSpecification() { - if (proverif == null) { - return ""; - } - - return proverif.getStringSpec(); + if (proverif == null) { + return ""; + } + + return proverif.getStringSpec(); } public int getNbRTLOTOS() { - return nbRTLOTOS; + return nbRTLOTOS; } public String getLastTextualDesign() { - if (tm == null) { - return ""; - } else { - return tm.printToStringBuffer().toString(); - } + if (tm == null) { + return ""; + } else { + return tm.printToStringBuffer().toString(); + } } public int getNbSuggestedDesign() { - return nbSuggestedDesign; + return nbSuggestedDesign; } // formal validation public void reinitSIM() { - sim = null; - mgui.setMode(MainGUI.SIM_KO); + sim = null; + mgui.setMode(MainGUI.SIM_KO); } public void reinitDTA() { - dta = null; - dtadot = null; - mgui.setMode(MainGUI.DTADOT_KO); + dta = null; + dtadot = null; + mgui.setMode(MainGUI.DTADOT_KO); } public void reinitRG() { - rg = null; - rgdot = null; - mgui.setMode(MainGUI.RGDOT_KO); + rg = null; + rgdot = null; + mgui.setMode(MainGUI.RGDOT_KO); } public void reinitRGAUT() { - rgaut = null; - rgautdot = null; - mgui.setMode(MainGUI.RGAUTDOT_KO); - mgui.setMode(MainGUI.RGAUT_KO); + rgaut = null; + rgautdot = null; + mgui.setMode(MainGUI.RGAUTDOT_KO); + mgui.setMode(MainGUI.RGAUT_KO); } public void reinitRGAUTPROJDOT() { - rgautprojdot = null; - mgui.setMode(MainGUI.RGAUTPROJDOT_KO); + rgautprojdot = null; + mgui.setMode(MainGUI.RGAUTPROJDOT_KO); } public void setSIM(String data) { - sim = data; - mgui.setMode(MainGUI.SIM_OK); + sim = data; + mgui.setMode(MainGUI.SIM_OK); } public void setDTA(String data) { - dta = data; + dta = data; } public void setDTADOT(String data) { - dtadot = data; - mgui.setMode(MainGUI.DTADOT_OK); + dtadot = data; + mgui.setMode(MainGUI.DTADOT_OK); } public void setRG(String data) { - rg = data; - mgui.setMode(MainGUI.RGDOT_OK); + rg = data; + mgui.setMode(MainGUI.RGDOT_OK); } public void setTLSA(String data) { - tlsa = data; - //mgui.setMode(MainGUI.TLSADOT_OK); + tlsa = data; + //mgui.setMode(MainGUI.TLSADOT_OK); } public void setTLSADOT(String data) { - tlsadot = data; - mgui.setMode(MainGUI.TLSADOT_OK); + tlsadot = data; + mgui.setMode(MainGUI.TLSADOT_OK); } public void setRGAut(String data) { - rgaut = data; - mgui.setMode(MainGUI.RGAUT_OK); + rgaut = data; + mgui.setMode(MainGUI.RGAUT_OK); } public String getLastRGAUT() { - return rgaut; + return rgaut; } public void setRGDOT(String data) { - rgdot = data; - mgui.setMode(MainGUI.RGDOT_OK); + rgdot = data; + mgui.setMode(MainGUI.RGDOT_OK); } public void setRGAutDOT(String data) { - rgautdot = data; - mgui.setMode(MainGUI.RGAUTDOT_OK); + rgautdot = data; + mgui.setMode(MainGUI.RGAUTDOT_OK); } public void setRGAUTPROJ(String data) { - rgautproj = data; + rgautproj = data; } public void setRGAUTPROJDOT(String data) { - rgautprojdot = data; - mgui.setMode(MainGUI.RGAUTPROJDOT_OK); + rgautprojdot = data; + mgui.setMode(MainGUI.RGAUTPROJDOT_OK); } // Configuration public String getPathRTL() { - return ConfigurationTTool.RTLPath; + return ConfigurationTTool.RTLPath; } public String getPathCaesar() { - return ConfigurationTTool.CaesarPath; + return ConfigurationTTool.CaesarPath; } public String getPathCaesarOpen() { - return ConfigurationTTool.CaesarOpenPath; + return ConfigurationTTool.CaesarOpenPath; } public String getPathDTA2DOT() { - return ConfigurationTTool.DTA2DOTPath; + return ConfigurationTTool.DTA2DOTPath; } public String getPathRGSTRAP() { - return ConfigurationTTool.RGSTRAPPath; + return ConfigurationTTool.RGSTRAPPath; } public String getPathRG2TLSA() { - return ConfigurationTTool.RG2TLSAPath; + return ConfigurationTTool.RG2TLSAPath; } public String getHost() { - return ConfigurationTTool.RTLHost; + return ConfigurationTTool.RTLHost; } public static String getCaesarHost() { - return ConfigurationTTool.AldebaranHost; + return ConfigurationTTool.AldebaranHost; } public static String getHostAldebaran() { - return ConfigurationTTool.AldebaranHost; + return ConfigurationTTool.AldebaranHost; } public static String getPathAldebaran() { - return ConfigurationTTool.AldebaranPath; + return ConfigurationTTool.AldebaranPath; } public static String getPathBcgio() { - return ConfigurationTTool.BcgioPath; + return ConfigurationTTool.BcgioPath; } - + public static String getPathBisimulator() { - return ConfigurationTTool.BisimulatorPath; + return ConfigurationTTool.BisimulatorPath; } public String getPathBcgmerge() { - return ConfigurationTTool.BcgmergePath; + return ConfigurationTTool.BcgmergePath; } public String getPathBcgmin() { - return ConfigurationTTool.BcgminPath; + return ConfigurationTTool.BcgminPath; } - + public String getPathVerifyta() { - return ConfigurationTTool.UPPAALVerifierPath; + return ConfigurationTTool.UPPAALVerifierPath; } - + public String getPathUPPAALVerifier() { - return ConfigurationTTool.UPPAALVerifierPath; + return ConfigurationTTool.UPPAALVerifierPath; } - + public String getPathUPPAALFile() { - return ConfigurationTTool.UPPAALCodeDirectory; + return ConfigurationTTool.UPPAALCodeDirectory; } - + public String getUPPAALVerifierHost() { - return ConfigurationTTool.UPPAALVerifierHost; + return ConfigurationTTool.UPPAALVerifierHost; } - - + + public TURTLEModeling getTURTLEModeling() { - return tm; + return tm; } - + public int getTURTLEModelingState() { - return tmState; + return tmState; } public TMLModeling getTMLModeling() { - return tmlm; + return tmlm; } - + public TMLMapping getArtificialTMLMapping() { - return artificialtmap; + return artificialtmap; } - + public TMLMapping getTMLMapping() { - return tmap; + return tmap; } - + public UPPAALSpec getLastUPPAALSpecification() { - return uppaal; + return uppaal; } // TREE MANAGEMENT public String toString() { - return mgui.getTitle(); + return mgui.getTitle(); } public int getChildCount() { - return panels.size() + 3; + return panels.size() + 3; } public Object getChild(int index) { - if (index < panels.size()) { - return panels.elementAt(index); - } else if (index == panels.size()) { - return mcvdt; - } else if (index == (panels.size() + 1)) { - return idt; - } else { - return st; - } + if (index < panels.size()) { + return panels.elementAt(index); + } else if (index == panels.size()) { + return mcvdt; + } else if (index == (panels.size() + 1)) { + return idt; + } else { + return st; + } } public int getIndexOfChild(Object child) { - int index = panels.indexOf(child); + int index = panels.indexOf(child); - if (index > -1) { - return index; - } + if (index > -1) { + return index; + } - if (child == mcvdt) { - return panels.size(); - } - - if (child == idt) { - return panels.size() + 1; - } - - return panels.size()+2; + if (child == mcvdt) { + return panels.size(); + } + + if (child == idt) { + return panels.size() + 1; + } + + return panels.size()+2; } // Projection management public MasterGateManager getNewMasterGateManager() { - return new MasterGateManager(tm); + return new MasterGateManager(tm); } // Assume the inputData is in AUT format: generated by RTL or CADP public String performProjection(String inputData, Vector gates) { - StringBuffer result = new StringBuffer(""); - StringReader sr = new StringReader(inputData); - BufferedReader br = new BufferedReader(sr); - String s; - String actionName, actionName1; - int index, index1, index2; - MasterGateManager mgm = new MasterGateManager(tm, 1); - Gate g; - GroupOfGates gog; - Hashtable <String, GroupOfGates> hashtable = new Hashtable<String, GroupOfGates>(); - - int cpt = 0; - - //TraceManager.addDev("input data=" + inputData); - - // Fill Hashtable - TClassAndGateDS tag; - int j; - for(int i=0; i<gates.size(); i++) { - tag = (TClassAndGateDS)(gates.get(i)); - //TraceManager.addDev("TClass:" + tag.getTClassName() + " Gate:" + tag.getGateName()); - //actionName = tag.getGateName(); - //g = mgm.getGate(tag.getTClassName(), actionName); - //TraceManager.addDev("actionName = " + actionName + " gateName = " + g.getName()); - //if (g != null) { - //gog = mgm.getGroupOfGatesByGate(g); - gog = mgm.groupOf(tag.getTClassName(), tag.getGateName()); - if (gog != null) { - //TraceManager.addDev("Found a gog: >" + gog.getMasterGateName() + "<"); - hashtable.put(gog.getMasterGateName().getName(), gog); - /*for(j=0;j<gog.size();j++) { - g = gog.getGateAt(j); - TraceManager.addDev("Putting: " + g.getName()); - hashtable.put(g.getName(), g); - }*/ - } - //} - } - - try { - while((s = br.readLine()) != null) { - /*if (cpt % 10000 == 0) { - TraceManager.addDev("cpt=" + cpt); - }*/ - cpt ++; - - if (s.startsWith("des")) { - result.append(s + "\n"); - } else if (s.startsWith("(")) { - index = s.indexOf("\"t\""); - if (index > 0) { - // temporal action - // replace t with i - s = s.replaceAll("\"t\"", "i"); - result.append(s + "\n"); - } else { - //exit action? - index = s.indexOf("\"exit\""); - if (index > 0) { - // exit action - // replace t with i - s = s.replaceAll("\"exit\"", "i"); - result.append(s + "\n"); - } else { - // regular action - // find the name of this action - index1 = s.indexOf("i("); - index2 = s.indexOf(")"); - actionName = s.substring(index1 + 2, index2); - index = actionName.indexOf("<"); - if (index < 0) { - actionName1 = actionName; - } else { - actionName1 = actionName.substring(0, index); - } - TraceManager.addDev("Action = >" + actionName1 + "<"); - - gog = hashtable.get(actionName1); - if (gog == null) { - TraceManager.addDev("Not in hash"); - result.append(makeIAction(s) + "\n"); - } else { - TraceManager.addDev("In hash"); - result.append(makeAction(s, actionName) + "\n"); - } - - // action to ignored or to project ? - /*g = mgm.getGate(actionName1); - if (g == null) { - //TraceManager.addDev("null1"); - result.append(makeIAction(s) + "\n"); - } else { - gog = mgm.getGroupOfGatesByGate(g); - if (gog == null) { - //TraceManager.addDev("null2"); - result.append(makeIAction(s) + "\n"); - } else { - if (!belongTo(gog, gates)) { - // Check if directly a master Gate! - // A completer ... - //TraceManager.addDev("null3"); - result.append(makeIAction(s) + "\n"); - } else { - //TraceManager.addDev("action added: " + actionName); - result.append(makeAction(s, actionName) + "\n"); - } - } - }*/ - } - - } - } - } - } catch (Exception e) { - TraceManager.addError("Exception during projection" + e.getMessage()); - return null; - } - return new String(result); + StringBuffer result = new StringBuffer(""); + StringReader sr = new StringReader(inputData); + BufferedReader br = new BufferedReader(sr); + String s; + String actionName, actionName1; + int index, index1, index2; + MasterGateManager mgm = new MasterGateManager(tm, 1); + Gate g; + GroupOfGates gog; + Hashtable <String, GroupOfGates> hashtable = new Hashtable<String, GroupOfGates>(); + + int cpt = 0; + + //TraceManager.addDev("input data=" + inputData); + + // Fill Hashtable + TClassAndGateDS tag; + int j; + for(int i=0; i<gates.size(); i++) { + tag = (TClassAndGateDS)(gates.get(i)); + //TraceManager.addDev("TClass:" + tag.getTClassName() + " Gate:" + tag.getGateName()); + //actionName = tag.getGateName(); + //g = mgm.getGate(tag.getTClassName(), actionName); + //TraceManager.addDev("actionName = " + actionName + " gateName = " + g.getName()); + //if (g != null) { + //gog = mgm.getGroupOfGatesByGate(g); + gog = mgm.groupOf(tag.getTClassName(), tag.getGateName()); + if (gog != null) { + //TraceManager.addDev("Found a gog: >" + gog.getMasterGateName() + "<"); + hashtable.put(gog.getMasterGateName().getName(), gog); + /*for(j=0;j<gog.size();j++) { + g = gog.getGateAt(j); + TraceManager.addDev("Putting: " + g.getName()); + hashtable.put(g.getName(), g); + }*/ + } + //} + } + + try { + while((s = br.readLine()) != null) { + /*if (cpt % 10000 == 0) { + TraceManager.addDev("cpt=" + cpt); + }*/ + cpt ++; + + if (s.startsWith("des")) { + result.append(s + "\n"); + } else if (s.startsWith("(")) { + index = s.indexOf("\"t\""); + if (index > 0) { + // temporal action + // replace t with i + s = s.replaceAll("\"t\"", "i"); + result.append(s + "\n"); + } else { + //exit action? + index = s.indexOf("\"exit\""); + if (index > 0) { + // exit action + // replace t with i + s = s.replaceAll("\"exit\"", "i"); + result.append(s + "\n"); + } else { + // regular action + // find the name of this action + index1 = s.indexOf("i("); + index2 = s.indexOf(")"); + actionName = s.substring(index1 + 2, index2); + index = actionName.indexOf("<"); + if (index < 0) { + actionName1 = actionName; + } else { + actionName1 = actionName.substring(0, index); + } + TraceManager.addDev("Action = >" + actionName1 + "<"); + + gog = hashtable.get(actionName1); + if (gog == null) { + TraceManager.addDev("Not in hash"); + result.append(makeIAction(s) + "\n"); + } else { + TraceManager.addDev("In hash"); + result.append(makeAction(s, actionName) + "\n"); + } + + // action to ignored or to project ? + /*g = mgm.getGate(actionName1); + if (g == null) { + //TraceManager.addDev("null1"); + result.append(makeIAction(s) + "\n"); + } else { + gog = mgm.getGroupOfGatesByGate(g); + if (gog == null) { + //TraceManager.addDev("null2"); + result.append(makeIAction(s) + "\n"); + } else { + if (!belongTo(gog, gates)) { + // Check if directly a master Gate! + // A completer ... + //TraceManager.addDev("null3"); + result.append(makeIAction(s) + "\n"); + } else { + //TraceManager.addDev("action added: " + actionName); + result.append(makeAction(s, actionName) + "\n"); + } + } + }*/ + } + + } + } + } + } catch (Exception e) { + TraceManager.addError("Exception during projection" + e.getMessage()); + return null; + } + return new String(result); } // Assume the inputData is in AUT format and has been generated by CADP // Note: might not work because of case sensitive problem... public String convertCADP_AUT_to_RTL_AUT(String inputData, int max) { - StringBuffer result = new StringBuffer(""); - StringReader sr = new StringReader(inputData); - BufferedReader br = new BufferedReader(sr); - String s, s1; - String actionName; - int index1, index2, index3, index4; - Gate g; - String g0, g1, g2; - int cpt, transi=0; - MasterGateManager mgm = new MasterGateManager(tm, 1); - Hashtable ht = mgm.getGatesUpperCaseHashTable(); - warnings = new Vector(); - - //TraceManager.addDev("input data=" + inputData); - - int cpt1 = 0; - - try { - while((s = br.readLine()) != null) { - cpt1 ++; - //if (cpt1 % 100000 == 0) { - //TraceManager.addDev("=" + cpt1 + " / " + transi); - //} - if (s.charAt(0) == '(') { - index1 = s.indexOf(","); - if ((index1 > -1) && ((index1+1) < s.length())) { - g1 = s.substring(0, index1 + 1); - s = s.substring(index1+1, s.length()); - - //TraceManager.addDev("g1=" + g1 + " s=" + s); - - index2 = s.indexOf(","); - if ((index2 > -1) && ((index2+1) < s.length())) { - g2 = s.substring(index2, s.length()); - s = s.substring(0, index2); - s = s.trim(); - - //TraceManager.addDev("g2=" + g2 + " s=" + s); - - // Get action id - // Most common case: no data - index3 = s.indexOf('"'); - if (index3 == -1) { // no data - actionName = s; - g0 = ""; - } else { - // Extract action name - actionName = s.substring(index3+1, s.indexOf('!')).trim(); - - // Format data - g0 = "<"; - cpt = 0; - while((index4 = s.indexOf('!')) > -1) { - s = s.substring(index4+1, s.length()); - if (cpt > 0) { - g0 += ","; - } - cpt ++; - index4 = s.indexOf('!'); - if (index4 > -1) { - g0 += s.substring(0, index4); - } else { - g0 += s.substring(0, s.indexOf('"')).trim(); - } - } - g0 += ">"; - } - - // Working on action name! - //g = mgm.getGateLowerCase(actionName); - g = (Gate)(ht.get(actionName)); - - if (g != null) { - //actionName1 = actionName; - actionName = g.getName(); - //TraceManager.addDev("actionName = " + g.getName()); - /*if (mgm.nbOfPossibleGatesLowerCase(actionName1) > 1) { - CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Action " + actionName1 + " has several possible candidates ; " + actionName + " has been chosen"); - warnings.add(ce); - }*/ - } else { - TraceManager.addDev("actionName is not in hashtable: ->" + actionName + "<- length=" + actionName.length()); - } - - // Store result - result.append(g1 + "\"i(" + actionName + g0 + ")\"" + g2 + "\n"); - } - } - } else if (s.startsWith("des")) { - index1 = s.indexOf(","); - s1 = s.substring(index1+1, s.length()); - index1 = s1.indexOf(","); - s1 = s1.substring(0, index1).trim(); - //TraceManager.addDev("nb of transitions=" + s); - transi = Integer.decode(s1).intValue(); - if (transi > max) { - return null; - } - result.append(s + "\n"); - } - } - } catch (Exception e) { - TraceManager.addError("Exception convert0" + e.getMessage()); - return null; - } - return new String(result); + StringBuffer result = new StringBuffer(""); + StringReader sr = new StringReader(inputData); + BufferedReader br = new BufferedReader(sr); + String s, s1; + String actionName; + int index1, index2, index3, index4; + Gate g; + String g0, g1, g2; + int cpt, transi=0; + MasterGateManager mgm = new MasterGateManager(tm, 1); + Hashtable ht = mgm.getGatesUpperCaseHashTable(); + warnings = new Vector(); + + //TraceManager.addDev("input data=" + inputData); + + int cpt1 = 0; + + try { + while((s = br.readLine()) != null) { + cpt1 ++; + //if (cpt1 % 100000 == 0) { + //TraceManager.addDev("=" + cpt1 + " / " + transi); + //} + if (s.charAt(0) == '(') { + index1 = s.indexOf(","); + if ((index1 > -1) && ((index1+1) < s.length())) { + g1 = s.substring(0, index1 + 1); + s = s.substring(index1+1, s.length()); + + //TraceManager.addDev("g1=" + g1 + " s=" + s); + + index2 = s.indexOf(","); + if ((index2 > -1) && ((index2+1) < s.length())) { + g2 = s.substring(index2, s.length()); + s = s.substring(0, index2); + s = s.trim(); + + //TraceManager.addDev("g2=" + g2 + " s=" + s); + + // Get action id + // Most common case: no data + index3 = s.indexOf('"'); + if (index3 == -1) { // no data + actionName = s; + g0 = ""; + } else { + // Extract action name + actionName = s.substring(index3+1, s.indexOf('!')).trim(); + + // Format data + g0 = "<"; + cpt = 0; + while((index4 = s.indexOf('!')) > -1) { + s = s.substring(index4+1, s.length()); + if (cpt > 0) { + g0 += ","; + } + cpt ++; + index4 = s.indexOf('!'); + if (index4 > -1) { + g0 += s.substring(0, index4); + } else { + g0 += s.substring(0, s.indexOf('"')).trim(); + } + } + g0 += ">"; + } + + // Working on action name! + //g = mgm.getGateLowerCase(actionName); + g = (Gate)(ht.get(actionName)); + + if (g != null) { + //actionName1 = actionName; + actionName = g.getName(); + //TraceManager.addDev("actionName = " + g.getName()); + /*if (mgm.nbOfPossibleGatesLowerCase(actionName1) > 1) { + CheckingError ce = new CheckingError(CheckingError.BEHAVIOR_ERROR, "Action " + actionName1 + " has several possible candidates ; " + actionName + " has been chosen"); + warnings.add(ce); + }*/ + } else { + TraceManager.addDev("actionName is not in hashtable: ->" + actionName + "<- length=" + actionName.length()); + } + + // Store result + result.append(g1 + "\"i(" + actionName + g0 + ")\"" + g2 + "\n"); + } + } + } else if (s.startsWith("des")) { + index1 = s.indexOf(","); + s1 = s.substring(index1+1, s.length()); + index1 = s1.indexOf(","); + s1 = s1.substring(0, index1).trim(); + //TraceManager.addDev("nb of transitions=" + s); + transi = Integer.decode(s1).intValue(); + if (transi > max) { + return null; + } + result.append(s + "\n"); + } + } + } catch (Exception e) { + TraceManager.addError("Exception convert0" + e.getMessage()); + return null; + } + return new String(result); } /*public String convertCADP_AUT_to_RTL_AUT(String inputData, int max) { @@ -1648,45 +1651,45 @@ public class GTURTLEModeling { }*/ public boolean belongTo(GroupOfGates gog, Vector gates) { - int i, j; - TClassAndGateDS tcg; - String nameTClass, nameGate; - for(i=0; i<gog.size(); i++) { - nameTClass = gog.getTClassAt(i).getName(); - nameGate = gog.getGateAt(i).getName(); - for(j=0; j<gates.size(); j++) { - tcg = (TClassAndGateDS)(gates.elementAt(j)); - if ((tcg.getTClassName().compareTo(nameTClass) == 0) && (tcg.getGateName().compareTo(nameGate) == 0)) { - //TraceManager.addDev("Projected gate"); - return true; - } - } - - } - return false; + int i, j; + TClassAndGateDS tcg; + String nameTClass, nameGate; + for(i=0; i<gog.size(); i++) { + nameTClass = gog.getTClassAt(i).getName(); + nameGate = gog.getGateAt(i).getName(); + for(j=0; j<gates.size(); j++) { + tcg = (TClassAndGateDS)(gates.elementAt(j)); + if ((tcg.getTClassName().compareTo(nameTClass) == 0) && (tcg.getGateName().compareTo(nameGate) == 0)) { + //TraceManager.addDev("Projected gate"); + return true; + } + } + + } + return false; } public String makeIAction(String s) { - int index1, index2; - index1 = s.indexOf("i("); - index2 = s.indexOf(")"); - return s.substring(0, index1-1) + "i" + s.substring(index2+2, s.length()); + int index1, index2; + index1 = s.indexOf("i("); + index2 = s.indexOf(")"); + return s.substring(0, index1-1) + "i" + s.substring(index2+2, s.length()); } public String makeAction(String s, String actionName) { - int index1, index2; - index1 = s.indexOf("i("); - index2 = s.indexOf(")"); - return s.substring(0, index1) + actionName + s.substring(index2+1, s.length()); + int index1, index2; + index1 = s.indexOf("i("); + index2 = s.indexOf(")"); + return s.substring(0, index1) + actionName + s.substring(index2+1, s.length()); } - + public void enableUndo(boolean b) { - undoRunning = !b; + undoRunning = !b; } - + public boolean isUndoEnable() { - return !undoRunning; + return !undoRunning; } // UNDO MANAGEMENT @@ -1694,5055 +1697,5066 @@ public class GTURTLEModeling { // This function is not be performed when executing an undo // if variable undoRunnin has been set to true public void saveOperation(Point p) { - if (undoRunning) { - return; - } - - //TraceManager.addDev("Save operation"); - - String s = makeXMLFromTurtleModeling(-1); - - if ((pointerOperation > -1) && (pointerOperation < savedOperations.size() - 1)) { - // some save operations must be erased - for (int i = pointerOperation +1; i<savedOperations.size(); i++) { - savedOperations.removeElementAt(i); - savedPanels.removeElementAt(i); - i --; - } - } - - // save actions on tab - int size = savedPanels.size(); - if (size > 0) { - Point p1 = (Point)(savedPanels.elementAt(size - 1)); // panels are saved under the form of a point -> x = analysis/design, y = panel - if (p == null) - p = p1; - /*if ((p1.x != p.x) || (p1.y != p.y)){ - savedOperations.add(savedOperations.elementAt(size - 1)); - savedPanels.add(p); - if (savedOperations.size() > nbMaxSavedOperations) { - savedOperations.removeElementAt(0); - savedPanels.removeElementAt(0); - } - }*/ - } - - savedOperations.add(s); - savedPanels.add(p); - if (savedOperations.size() > nbMaxSavedOperations) { - savedOperations.removeElementAt(0); - savedPanels.removeElementAt(0); - } - pointerOperation = savedOperations.size() - 1; - //TraceManager.addDev("Setting pointer to " + pointerOperation); - - selectBackwardMode(); + if (undoRunning) { + return; + } + + //TraceManager.addDev("Save operation"); + + String s = makeXMLFromTurtleModeling(-1); + + if ((pointerOperation > -1) && (pointerOperation < savedOperations.size() - 1)) { + // some save operations must be erased + for (int i = pointerOperation +1; i<savedOperations.size(); i++) { + savedOperations.removeElementAt(i); + savedPanels.removeElementAt(i); + i --; + } + } + + // save actions on tab + int size = savedPanels.size(); + if (size > 0) { + Point p1 = (Point)(savedPanels.elementAt(size - 1)); // panels are saved under the form of a point -> x = analysis/design, y = panel + if (p == null) + p = p1; + /*if ((p1.x != p.x) || (p1.y != p.y)){ + savedOperations.add(savedOperations.elementAt(size - 1)); + savedPanels.add(p); + if (savedOperations.size() > nbMaxSavedOperations) { + savedOperations.removeElementAt(0); + savedPanels.removeElementAt(0); + } + }*/ + } + + savedOperations.add(s); + savedPanels.add(p); + if (savedOperations.size() > nbMaxSavedOperations) { + savedOperations.removeElementAt(0); + savedPanels.removeElementAt(0); + } + pointerOperation = savedOperations.size() - 1; + //TraceManager.addDev("Setting pointer to " + pointerOperation); + + selectBackwardMode(); } public void backward() { - undoRunning = true; - TraceManager.addDev("Nb Of saved operations:" + savedOperations.size() + " pointer=" + pointerOperation); - if ((pointerOperation < 1) || (savedOperations.size() < 2)) { - TraceManager.addDev("Undo not possible"); - undoRunning = false; - return; - } - - removeAllComponents(); - mgui.reinitMainTabbedPane(); - try { - pointerOperation --; - TraceManager.addDev("Decrementing pointer =" + pointerOperation); - loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation))); - - } catch (Exception e) { - TraceManager.addError("Exception in backward: " + e.getMessage()); - } - - TraceManager.addDev("Selecting tab"); - - Point p = (Point)(savedPanels.elementAt(pointerOperation)); - if (p != null) { - TraceManager.addDev("Selecting tab panel=" + p.getX() + " diagram=" + p.getY()); - TDiagramPanel tdp = mgui.selectTab(p); - tdp.mode = tdp.NORMAL; - tdp.setDraw(true); - tdp.repaint(); - } - - - TraceManager.addDev("Selecting backward mode"); - selectBackwardMode(); - undoRunning = false; - } - + undoRunning = true; + TraceManager.addDev("Nb Of saved operations:" + savedOperations.size() + " pointer=" + pointerOperation); + if ((pointerOperation < 1) || (savedOperations.size() < 2)) { + TraceManager.addDev("Undo not possible"); + undoRunning = false; + return; + } + + removeAllComponents(); + mgui.reinitMainTabbedPane(); + try { + pointerOperation --; + TraceManager.addDev("Decrementing pointer =" + pointerOperation); + loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation))); + + } catch (Exception e) { + TraceManager.addError("Exception in backward: " + e.getMessage()); + } + + TraceManager.addDev("Selecting tab"); + + Point p = (Point)(savedPanels.elementAt(pointerOperation)); + if (p != null) { + TraceManager.addDev("Selecting tab panel=" + p.getX() + " diagram=" + p.getY()); + TDiagramPanel tdp = mgui.selectTab(p); + tdp.mode = tdp.NORMAL; + tdp.setDraw(true); + tdp.repaint(); + } + + + TraceManager.addDev("Selecting backward mode"); + selectBackwardMode(); + undoRunning = false; + } + public void selectBackwardMode() { - if (pointerOperation <0) { - mgui.setMode(MainGUI.NO_BACKWARD); - mgui.setMode(MainGUI.NO_FORWARD); - } else { - - // forward - if (pointerOperation < savedOperations.size() - 1) { - mgui.setMode(MainGUI.FORWARD); - } else { - mgui.setMode(MainGUI.NO_FORWARD); - } - - // backward - if (pointerOperation > 0) { - mgui.setMode(MainGUI.BACKWARD); - } else { - mgui.setMode(MainGUI.NO_BACKWARD); - } - } - } - - - public void forward() { - if ((pointerOperation < 0) || (pointerOperation > savedOperations.size() - 2)) { - return; - } - - undoRunning = true; - removeAllComponents(); - mgui.reinitMainTabbedPane(); - - try { - pointerOperation ++; - loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation))); - } catch (Exception e) { - TraceManager.addError("Exception in forward: " + e.getMessage()); - } - - Point p = (Point)(savedPanels.elementAt(pointerOperation)); - if (p != null) { - TDiagramPanel tdp = mgui.selectTab(p); - tdp.mode = TDiagramPanel.NORMAL; - tdp.setDraw(true); - tdp.repaint(); - } - - selectBackwardMode(); - undoRunning = false; - } - - - // BUILDING A TURTLE MODELING AND CHECKING IT - public boolean checkTURTLEModeling(Vector tclasses, DesignPanel dp, boolean overideSyntaxChecking) { - // Builds a TURTLE modeling from diagrams - //warnings = new Vector(); - //checkingErrors = null; - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - //tm = new TURTLEModeling(); - //listE = new CorrespondanceTGElement(); - mgui.reinitCountOfPanels(); - - DesignPanelTranslator dpt = new DesignPanelTranslator(dp); - tm = dpt.generateTURTLEModeling(tclasses, ""); - tmState = 0; - - listE = dpt.getCorrespondanceTGElement(); - checkingErrors = dpt.getErrors(); - warnings = dpt.getWarnings(); - if ((checkingErrors != null) && (checkingErrors.size() >0)){ - return false; - } - - // modeling is built - // Now check it ! - if (!overideSyntaxChecking) { - TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE); - - checkingErrors = tmc.syntaxAnalysisChecking(); - warnings.addAll(tmc.getWarnings()); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - return false; - } else { - return true; - } - } - - return true; - } - - // BUILDING An AVATAR Design AND CHECKING IT - public boolean checkAvatarDesign(Vector blocks, AvatarDesignPanel adp, boolean _optimize) { - // Builds a TURTLE modeling from diagrams - //warnings = new Vector(); - //checkingErrors = null; - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - //tm = new TURTLEModeling(); - //listE = new CorrespondanceTGElement(); - mgui.reinitCountOfPanels(); - - //avatarspec = new AvatarSpecification("avatarspecification", adp); - - AvatarDesignPanelTranslator adpt = new AvatarDesignPanelTranslator(adp); - avatarspec = adpt.generateAvatarSpecification(blocks); - avatarspec.setInformationSource(adp); - optimizeAvatar = _optimize; - //TraceManager.addDev("AvatarSpec:" + avatarspec.toString() + "\n\n"); - tmState = 3; - - listE = adpt.getCorrespondanceTGElement(); - checkingErrors = adpt.getErrors(); - warnings = adpt.getWarnings(); - if ((checkingErrors != null) && (checkingErrors.size() >0)){ - return false; - } - return true; - - // Modeling is built - // Now check it ! - /*if (!overideSyntaxChecking) { - TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE); - - checkingErrors = tmc.syntaxAnalysisChecking(); - warnings.addAll(tmc.getWarnings()); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - return false; - } else { - return true; - } - } - - return true;*/ - } - - // Return values - // -1: error - // -2: no mutex - // -3: invariant for mutex not found - // else: invariant found! -> invariant index - public int computeMutex() { - if (avatarspec == null) { - return -1; - } - - AvatarDesignPanel adp = null; - - try { - adp = (AvatarDesignPanel)(avatarspec.getInformationSource()); - } catch (Exception e) { - TraceManager.addDev("Exception gtm: " + e.getMessage()); - return -1; - } - - // Building the list of all states in the mutex - LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex(); - TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size()); - - if (compInMutex.size() ==0) { - return -2; - } - - LinkedList<TGComponent> comps; - boolean found; - int nbOfFound; - int cpt = 0; - // Go thru invariants, and see whether one contains - for(Invariant inv: invariants) { - comps = inv.getComponents(); - nbOfFound = 0; - for(TGComponent tgc_mutex: compInMutex) { - found = false; - for(TGComponent tgc_inv: comps) { - if (tgc_mutex == tgc_inv) { - found = true; - break; - } - } - if (!found) { - break; - } - nbOfFound ++; - } - if (nbOfFound == compInMutex.size()) { - TraceManager.addDev("Mutex found in inv:" + cpt); - for(TGComponent tgc: compInMutex) { - tgc.setMutexResult(TGComponent.MUTEX_OK); - } - return cpt; - } - cpt ++; - } - - - for(TGComponent tgc: compInMutex) { - tgc.setMutexResult(TGComponent.MUTEX_UNKNOWN); - } - - return -3; - - - } - + if (pointerOperation <0) { + mgui.setMode(MainGUI.NO_BACKWARD); + mgui.setMode(MainGUI.NO_FORWARD); + } else { + + // forward + if (pointerOperation < savedOperations.size() - 1) { + mgui.setMode(MainGUI.FORWARD); + } else { + mgui.setMode(MainGUI.NO_FORWARD); + } + + // backward + if (pointerOperation > 0) { + mgui.setMode(MainGUI.BACKWARD); + } else { + mgui.setMode(MainGUI.NO_BACKWARD); + } + } + } + + + public void forward() { + if ((pointerOperation < 0) || (pointerOperation > savedOperations.size() - 2)) { + return; + } + + undoRunning = true; + removeAllComponents(); + mgui.reinitMainTabbedPane(); + + try { + pointerOperation ++; + loadModelingFromXML((String)(savedOperations.elementAt(pointerOperation))); + } catch (Exception e) { + TraceManager.addError("Exception in forward: " + e.getMessage()); + } + + Point p = (Point)(savedPanels.elementAt(pointerOperation)); + if (p != null) { + TDiagramPanel tdp = mgui.selectTab(p); + tdp.mode = TDiagramPanel.NORMAL; + tdp.setDraw(true); + tdp.repaint(); + } + + selectBackwardMode(); + undoRunning = false; + } + + + // BUILDING A TURTLE MODELING AND CHECKING IT + public boolean checkTURTLEModeling(Vector tclasses, DesignPanel dp, boolean overideSyntaxChecking) { + // Builds a TURTLE modeling from diagrams + //warnings = new Vector(); + //checkingErrors = null; + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + //tm = new TURTLEModeling(); + //listE = new CorrespondanceTGElement(); + mgui.reinitCountOfPanels(); + + DesignPanelTranslator dpt = new DesignPanelTranslator(dp); + tm = dpt.generateTURTLEModeling(tclasses, ""); + tmState = 0; + + listE = dpt.getCorrespondanceTGElement(); + checkingErrors = dpt.getErrors(); + warnings = dpt.getWarnings(); + if ((checkingErrors != null) && (checkingErrors.size() >0)){ + return false; + } + + // modeling is built + // Now check it ! + if (!overideSyntaxChecking) { + TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE); + + checkingErrors = tmc.syntaxAnalysisChecking(); + warnings.addAll(tmc.getWarnings()); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + return false; + } else { + return true; + } + } + + return true; + } + + // BUILDING An AVATAR Design AND CHECKING IT + public boolean checkAvatarDesign(Vector blocks, AvatarDesignPanel adp, boolean _optimize) { + // Builds a TURTLE modeling from diagrams + //warnings = new Vector(); + //checkingErrors = null; + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + //tm = new TURTLEModeling(); + //listE = new CorrespondanceTGElement(); + mgui.reinitCountOfPanels(); + + //avatarspec = new AvatarSpecification("avatarspecification", adp); + + AvatarDesignPanelTranslator adpt = new AvatarDesignPanelTranslator(adp); + avatarspec = adpt.generateAvatarSpecification(blocks); + avatarspec.setInformationSource(adp); + optimizeAvatar = _optimize; + //TraceManager.addDev("AvatarSpec:" + avatarspec.toString() + "\n\n"); + tmState = 3; + + listE = adpt.getCorrespondanceTGElement(); + checkingErrors = adpt.getErrors(); + warnings = adpt.getWarnings(); + if ((checkingErrors != null) && (checkingErrors.size() >0)){ + return false; + } + return true; + + // Modeling is built + // Now check it ! + /*if (!overideSyntaxChecking) { + TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE); + + checkingErrors = tmc.syntaxAnalysisChecking(); + warnings.addAll(tmc.getWarnings()); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + return false; + } else { + return true; + } + } + + return true;*/ + } + + // Return values + // -1: error + // -2: no mutex + // -3: invariant for mutex not found + // else: invariant found! -> invariant index + public int computeMutex() { + if (avatarspec == null) { + return -1; + } + + AvatarDesignPanel adp = null; + + try { + adp = (AvatarDesignPanel)(avatarspec.getInformationSource()); + } catch (Exception e) { + TraceManager.addDev("Exception gtm: " + e.getMessage()); + return -1; + } + + // Building the list of all states in the mutex + LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex(); + TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size()); + + if (compInMutex.size() ==0) { + return -2; + } + + LinkedList<TGComponent> comps; + boolean found; + int nbOfFound; + int cpt = 0; + // Go thru invariants, and see whether one contains + for(Invariant inv: invariants) { + comps = inv.getComponents(); + nbOfFound = 0; + for(TGComponent tgc_mutex: compInMutex) { + found = false; + for(TGComponent tgc_inv: comps) { + if (tgc_mutex == tgc_inv) { + found = true; + break; + } + } + if (!found) { + break; + } + nbOfFound ++; + } + if (nbOfFound == compInMutex.size()) { + TraceManager.addDev("Mutex found in inv:" + cpt); + for(TGComponent tgc: compInMutex) { + tgc.setMutexResult(TGComponent.MUTEX_OK); + } + return cpt; + } + cpt ++; + } + + + for(TGComponent tgc: compInMutex) { + tgc.setMutexResult(TGComponent.MUTEX_UNKNOWN); + } + + return -3; + + + } + public void clearGraphicalInfoOnInvariants() { - if (avatarspec == null) { - return; - } - - AvatarDesignPanel adp = null; - - try { - adp = (AvatarDesignPanel)(avatarspec.getInformationSource()); - } catch (Exception e) { - TraceManager.addDev("Exception gtm: " + e.getMessage()); - return; - } - - adp.removeAllMutualExclusionWithMasterMutex(); - - - - } - - + if (avatarspec == null) { + return; + } + + AvatarDesignPanel adp = null; + + try { + adp = (AvatarDesignPanel)(avatarspec.getInformationSource()); + } catch (Exception e) { + TraceManager.addDev("Exception gtm: " + e.getMessage()); + return; + } + + adp.removeAllMutualExclusionWithMasterMutex(); + + + + } + + // Returns the number of states found // Returns -1 in case of error public int computeMutexStatesWith(AvatarSMDState state) { - Vector<TGComponent> list = new Vector<TGComponent>(); - - if (state == null) { - state.setMutexWith(TGComponent.MUTEX_UNKNOWN); - return -1; - } - - for(Invariant inv: invariants) { - if (inv.containsComponent(state)) { - // All other states are in mutual exclusion - for(TGComponent tgc: inv.getComponents()) { - if ((tgc instanceof AvatarSMDState) && (tgc != state)) { - if (tgc.getTDiagramPanel() != state.getTDiagramPanel()) { - if (!(list.contains(tgc))) { - tgc.setMutualExclusionWithMasterMutex(state.getTDiagramPanel().getName() + "/" + state.getStateName()); - list.add(tgc); - - } - } - } - } - } - } - - if (list.size() > 0) { - state.setMutexWith(TGComponent.MUTEX_OK); - } else { - state.setMutexWith(TGComponent.MUTEX_UNKNOWN); - } - - return list.size(); - - } - - + Vector<TGComponent> list = new Vector<TGComponent>(); + + if (state == null) { + state.setMutexWith(TGComponent.MUTEX_UNKNOWN); + return -1; + } + + for(Invariant inv: invariants) { + if (inv.containsComponent(state)) { + // All other states are in mutual exclusion + for(TGComponent tgc: inv.getComponents()) { + if ((tgc instanceof AvatarSMDState) && (tgc != state)) { + if (tgc.getTDiagramPanel() != state.getTDiagramPanel()) { + if (!(list.contains(tgc))) { + tgc.setMutualExclusionWithMasterMutex(state.getTDiagramPanel().getName() + "/" + state.getStateName()); + list.add(tgc); + + } + } + } + } + } + } + + if (list.size() > 0) { + state.setMutexWith(TGComponent.MUTEX_OK); + } else { + state.setMutexWith(TGComponent.MUTEX_UNKNOWN); + } + + return list.size(); + + } + + public void computeAllMutualExclusions() { - TURTLEPanel tp = mgui.getCurrentTURTLEPanel(); - - if (tp == null) { - return; - } - - if (!(tp instanceof AvatarDesignPanel)) { - return; - } - - AvatarDesignPanel adp = (AvatarDesignPanel)(tp); - adp.reinitMutualExclusionStates(); - - // First step: build a list of all states being in invariants - Vector<AvatarSMDState> v = new Vector<AvatarSMDState>(); - for(Invariant inv: invariants) { - for(TGComponent tgc: inv.getComponents()) { - if (tgc instanceof AvatarSMDState) { - if (!(v.contains(tgc))) { - v.add((AvatarSMDState)tgc); - } - } - } - } - - // Then, add to all states its list of mutually exclusive states - - for(AvatarSMDState s: v) { - Vector<AvatarSMDState> v0 = new Vector<AvatarSMDState>(); - for(Invariant inv: invariants) { - if (inv.containsComponent(s)) { - for(TGComponent tgc: inv.getComponents()) { - if ((tgc instanceof AvatarSMDState) && (tgc != s)) { - if (tgc.getTDiagramPanel() != s.getTDiagramPanel()) { - if (!(v0.contains(tgc))) { - v0.add((AvatarSMDState)tgc); - } - } - } - } - } - } - TraceManager.addDev("State " + s.getStateName() + " has " + v0.size() + " mutually eclusive states"); - - for(AvatarSMDState s0: v0) { - s.addMutexState(s0); - } - } - - - } - - // From AVATAR to TURTLEModeling - public boolean translateAvatarSpecificationToTIF() { - AVATAR2TURTLE att = new AVATAR2TURTLE(avatarspec); - tm = att.generateTURTLEModeling(); - - TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE); - - checkingErrors = tmc.syntaxAnalysisChecking(); - warnings.addAll(tmc.getWarnings()); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - return false; - } else { - return true; - } - - } - - public Vector getCheckingErrors() { - return checkingErrors; - } - - public Vector getCheckingWarnings() { - return warnings; - } - - - // SAVING AND LOADING IN XML - public static String transformString(String s) { - if (s != null) { - s = Conversion.replaceAllChar(s, '&', "&"); - s = Conversion.replaceAllChar(s, '<', "<"); - s = Conversion.replaceAllChar(s, '>', ">"); - s = Conversion.replaceAllChar(s, '"', """); - s = Conversion.replaceAllChar(s, '\'', "'"); - } - return s; - } - - public static String encodeString(String s) { - return s; - } - - public static String decodeString(String s) throws MalformedModelingException { - if (s == null) - return s; - byte b[] = null; - try { - b = s.getBytes("ISO-8859-1"); - return new String(b); - } catch (Exception e) { - throw new MalformedModelingException(); - } - } - - public String mergeTURTLEGModeling(String modeling1, String modeling2) { - int index1 = modeling1.indexOf("</TURTLEGMODELING"); - int index2 = modeling2.indexOf("<TURTLEGMODELING"); - if ((index1 == -1) || (index2 == -1)) { - return null; - } - - String modeling = modeling1.substring(0, index1); - String tmp = modeling2.substring(index2, modeling2.length()); - index2 = modeling2.indexOf('<'); - if (index2 == -1) { - return null; - } - - tmp = tmp.substring(index2+1, tmp.length()); - - return modeling + tmp; - } - - public String makeXMLFromComponentOfADiagram(TDiagramPanel tdp, TGComponent tgc, int copyMaxId, int _decX, int _decY) { - StringBuffer sb = new StringBuffer(); - - //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); - sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS "); - sb.append("version=\"" + DefaultText.getVersion()); - sb.append("\" copyMaxId=\"" + copyMaxId); - sb.append("\" decX=\"" + _decX); - sb.append("\" decY=\"" + _decY); - sb.append("\" >\n\n"); - - StringBuffer s; - String str; - - s = tdp.saveComponentInXML(tgc); - - if (tgc instanceof AvatarBDBlock) { - AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); - s.append(asmdp.saveInXML()); - LinkedList<AvatarBDBlock> list = ((AvatarBDBlock)tgc).getFullBlockList(); - for(AvatarBDBlock b:list) { - asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue()); - s.append(asmdp.saveInXML()); - } - - } - - if (tgc instanceof TCDTClass) { - TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); - s.append(tadp.saveInXML()); - } - - if (tgc instanceof TOSClass) { - TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); - s.append(tosadp.saveInXML()); - } - - if (tgc instanceof TMLTaskOperator) { - TMLActivityDiagramPanel tmladp1 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); - s.append(tmladp1.saveInXML()); - } - - if (tgc instanceof TMLCPrimitiveComponent) { - TMLActivityDiagramPanel tmladp2 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); - s.append(tmladp2.saveInXML()); - } - - if (tgc instanceof TMLCCompositeComponent) { - TMLActivityDiagramPanel tmladp3; - ArrayList<TMLCPrimitiveComponent> list = ((TMLCCompositeComponent)tgc).getAllPrimitiveComponents(); - for (TMLCPrimitiveComponent comp: list) { - tmladp3 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), comp.getValue()); - s.append(tmladp3.saveInXML()); - } - } - - if (s == null) { - return null; - } - sb.append(s); - sb.append("\n\n"); - sb.append("</TURTLEGSELECTEDCOMPONENTS>"); - - str = new String(sb); - str = encodeString(str); - - return str; - } - - - public String makeXMLFromSelectedComponentOfADiagram(TDiagramPanel tdp, int copyMaxId, int _decX, int _decY) { - StringBuffer sb = new StringBuffer(); - //TraceManager.addDev("Making copy"); - - //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); - sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS "); - sb.append("version=\"" + DefaultText.getVersion()); - sb.append("\" copyMaxId=\"" + copyMaxId); - sb.append("\" decX=\"" + _decX); - sb.append("\" decY=\"" + _decY); - sb.append("\" >\n\n"); - - StringBuffer s; - String str; - - s = tdp.saveSelectedInXML(); - - Vector v = tdp.selectedTclasses(); - - if ((v != null) && (v.size() > 0)) { - TCDTClass t; - TActivityDiagramPanel tadp; - for(int i=0; i<v.size(); i++) { - t = (TCDTClass)(v.elementAt(i)); - tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue()); - s.append(tadp.saveInXML()); - } - } - - //Added by Solange - //bug removed by Emil - if (tdp instanceof ProactiveCSDPanel) - { - v=((ProactiveCSDPanel)tdp).selectedProCSDComponent(null); - if ((v != null) && (v.size() > 0)) { - ProCSDComponent t; - ProactiveSMDPanel psmd; - for(int i=0; i<v.size(); i++) { - t = (ProCSDComponent)(v.elementAt(i)); - psmd = mgui.getSMDPanel(mgui.getCurrentSelectedIndex(), t.getValue()); - if (psmd!=null) - s.append(psmd.saveInXML()); - } - } - } - //until here - - - v = tdp.selectedTURTLEOSClasses(); - if ((v != null) && (v.size() > 0)) { - //TraceManager.addDev("Saving TURTLEOS activity diagram Panel..."); - TOSClass t; - TURTLEOSActivityDiagramPanel tosadp; - for(int i=0; i<v.size(); i++) { - t = (TOSClass)(v.elementAt(i)); - tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue()); - s.append(tosadp.saveInXML()); - } - } - - v = tdp.selectedTMLTasks(); - if ((v != null) && (v.size() > 0)) { - //TraceManager.addDev("Saving TML activity diagram Panel..."); - TMLTaskOperator t; - TMLActivityDiagramPanel tmladp; - for(int i=0; i<v.size(); i++) { - t = (TMLTaskOperator)(v.elementAt(i)); - tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue()); - s.append(tmladp.saveInXML()); - } - } - - v = tdp.selectedAvatarBDBlocks(); - if ((v != null) && (v.size() > 0)) { - //TraceManager.addDev("Saving TML activity diagram Panel..."); - AvatarBDBlock abdb; - AvatarSMDPanel asmdp; - for(int i=0; i<v.size(); i++) { - abdb = (AvatarBDBlock)(v.elementAt(i)); - asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), abdb.getBlockName()); - s.append(asmdp.saveInXML()); - - } - } - - v = tdp.selectedCPrimitiveComponent(); - if ((v != null) && (v.size() > 0)) { - //TraceManager.addDev("Saving TML activity diagram Panel..."); - TMLCPrimitiveComponent ct; - TMLActivityDiagramPanel tmladp; - for(int i=0; i<v.size(); i++) { - ct = (TMLCPrimitiveComponent)(v.elementAt(i)); - tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), ct.getValue()); - s.append(tmladp.saveInXML()); - } - } - - if (s == null) { - return null; - } - sb.append(s); - sb.append("\n\n"); - sb.append("</TURTLEGSELECTEDCOMPONENTS>"); - - str = new String(sb); - str = encodeString(str); - - TraceManager.addDev("Copy done"); - //TraceManager.addDev(str); - - return str; - } - - public String makeOneDiagramXMLFromGraphicalModel(TURTLEPanel tp, int indexOfDiagram) { - StringBuffer sb = new StringBuffer(); - //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); - sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n"); - - StringBuffer s; - String str; - - - s = tp.saveInXML(indexOfDiagram); - - sb.append(s); - sb.append("\n\n"); - - - sb.append("</TURTLEGMODELING>"); - - str = new String(sb); - str = encodeString(str); - - return str; - } - - public String makeXMLFromTurtleModeling(int index) { - StringBuffer sb = new StringBuffer(); - //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); - sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n"); - - StringBuffer s; - String str; - - TURTLEPanel tp; - int i; - // search for diagram panels (Design) - for(i=0; i<panels.size(); i++) { - if ((index == -1) || (i == index)) { - tp = (TURTLEPanel)(panels.elementAt(i)); - s = tp.saveInXML(); - if (s == null) { - return null; - } - sb.append(s); - sb.append("\n\n"); - } - } - - sb.append("</TURTLEGMODELING>"); - - str = new String(sb); - str = encodeString(str); - - return str; - } - - public void removeAllComponents() { - TDiagramPanel tdp; - int i, j; - Vector panelss; - // search for diagram panels - for(i=0; i<panels.size(); i++) { - panelss = (Vector)(((TURTLEPanel)(panels.elementAt(i))).panels); - for(j=0; j<panelss.size(); j++) { - tdp = (TDiagramPanel)(panelss.elementAt(j)); - tdp.removeAll(); - } - } - } - - public void copyModelingFromXML(TDiagramPanel tdp, String s, int X, int Y) throws MalformedModelingException { - //TraceManager.addDev("copyModelingFromXML: " + s); - //TraceManager.addDev("tdp: " + tdp); - - //TraceManager.addDev(s); - //TraceManager.addDev("copyModelingFromXML:"); - //LinkedList ComponentsList=tdp.getComponentList(); - int beginIndex = tdp.getComponentList().size(); - - //Added by Solange - int cuenta=1; - - s = decodeString(s); - - //TraceManager.addDev("copy=" + s); - - ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes()); - if ((dbf == null) || (db == null)) { - throw new MalformedModelingException(); - } - - int i; - //int copyMaxId; - int _decX = 0, _decY = 0; - - try { - // building nodes from xml String - Document doc = db.parse(bais); - NodeList nl; - - decId = tdp.getMaxId() + 1; - TGComponent.setGeneralId(TGComponent.getGeneralId() + decId + 2); - nl = doc.getElementsByTagName("TURTLEGSELECTEDCOMPONENTS"); - - if (nl == null) { - return; - } - - Node adn; - Element elt; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - _decX = X - Integer.decode(elt.getAttribute("decX")).intValue(); - _decY = Y - Integer.decode(elt.getAttribute("decY")).intValue(); - //copyMaxId = Integer.decode(elt.getAttribute("copyMaxId")).intValue(); - } - } - - // Managing diagrams - if (tdp instanceof TClassDiagramPanel) { - TraceManager.addDev("TClassDiagramPanel copy"); - - nl = doc.getElementsByTagName("TClassDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - - TClassDiagramPanel tcdp = (TClassDiagramPanel)tdp; - - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tcdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - tcdp.loadExtraParameters(elt); - - //TraceManager.addDev("Class diagram : " + tcdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tcdp); - makePostProcessing(tcdp); - //TraceManager.addDev("Class diagram : " + tcdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tcdp); - //TraceManager.addDev("Class diagram : " + tcdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tcdp); - //TraceManager.addDev("Class diagram : " + tcdp.getName() + " real points"); - connectConnectorsToRealPoints(tcdp); - tcdp.structureChanged(); - //TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading " + beginIndex); - makePostLoading(tcdp, beginIndex); - //TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading done"); - } - } - docCopy = null; - - } else if (tdp instanceof TActivityDiagramPanel) { - TraceManager.addDev("TActivityDiagramPanel copy"); - nl = doc.getElementsByTagName("TActivityDiagramPanelCopy"); - - if (nl == null) { - return; - } - - TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tadp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - tadp.loadExtraParameters(elt); - - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(tadp); - tadp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(tadp, beginIndex); - } - } - } else if (tdp instanceof InteractionOverviewDiagramPanel) { - - nl = doc.getElementsByTagName("InteractionOverviewDiagramPanelCopy"); - - if (nl == null) { - return; - } - - InteractionOverviewDiagramPanel iodp = (InteractionOverviewDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (iodp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), iodp); - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), iodp); - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), iodp); - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " real points"); - connectConnectorsToRealPoints(iodp); - iodp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); - makePostLoading(iodp, beginIndex); - } - } - } else if (tdp instanceof SequenceDiagramPanel) { - //TraceManager.addDev("Sequence diagram!"); - nl = doc.getElementsByTagName("SequenceDiagramPanelCopy"); - - if (nl == null) { - return; - } - - SequenceDiagramPanel sdp = (SequenceDiagramPanel)tdp; - - //TraceManager.addDev("Sequence diagram!"); - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (sdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), sdp); - //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), sdp); - //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), sdp); - //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " real points"); - connectConnectorsToRealPoints(sdp); - sdp.structureChanged(); - //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " post loading"); - makePostLoading(sdp, beginIndex); - } - } - } else if (tdp instanceof UseCaseDiagramPanel) { - nl = doc.getElementsByTagName("UseCaseDiagramPanelCopy"); - - if (nl == null) { - return; - } - - UseCaseDiagramPanel ucdp = (UseCaseDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (ucdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ucdp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ucdp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ucdp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points"); - connectConnectorsToRealPoints(ucdp); - ucdp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); - makePostLoading(ucdp, beginIndex); - } - } - } else if (tdp instanceof TDeploymentDiagramPanel) { - nl = doc.getElementsByTagName("TDeploymentDiagramPanelCopy"); - - if (nl == null) { - return; - } - - TDeploymentDiagramPanel tddp = (TDeploymentDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tddp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tddp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tddp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tddp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points"); - connectConnectorsToRealPoints(tddp); - tddp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); - makePostLoading(tddp, beginIndex); - } - } - } else if (tdp instanceof NCDiagramPanel) { - nl = doc.getElementsByTagName("NCDiagramPanelCopy"); - - if (nl == null) { - return; - } - - NCDiagramPanel ncdp = (NCDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (ncdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ncdp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ncdp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ncdp); - //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points"); - connectConnectorsToRealPoints(ncdp); - ncdp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); - makePostLoading(ncdp, beginIndex); - } - } - } else if (tdp instanceof RequirementDiagramPanel) { - nl = doc.getElementsByTagName("TRequirementDiagramPanelCopy"); - - if (nl == null) { - return; - } - - RequirementDiagramPanel rdp = (RequirementDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (rdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), rdp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), rdp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), rdp); - connectConnectorsToRealPoints(rdp); - rdp.structureChanged(); - makePostLoading(rdp, beginIndex); - } - } - } else if (tdp instanceof EBRDDPanel) { - nl = doc.getElementsByTagName("EBRDDPanelCopy"); - - if (nl == null) { - return; - } - - EBRDDPanel ebrddp = (EBRDDPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (ebrddp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ebrddp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ebrddp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ebrddp); - connectConnectorsToRealPoints(ebrddp); - ebrddp.structureChanged(); - makePostLoading(ebrddp, beginIndex); - } - } - } else if (tdp instanceof AttackTreeDiagramPanel) { - nl = doc.getElementsByTagName("AttackTreeDiagramPanelCopy"); - - if (nl == null) { - return; - } - - AttackTreeDiagramPanel atdp = (AttackTreeDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (atdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), atdp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), atdp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), atdp); - connectConnectorsToRealPoints(atdp); - atdp.structureChanged(); - makePostLoading(atdp, beginIndex); - } - } - } else if (tdp instanceof TMLTaskDiagramPanel) { - nl = doc.getElementsByTagName("TMLTaskDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - - TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; - - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tmltdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - tmltdp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(tmltdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(tmltdp); - tmltdp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(tmltdp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - }else if (tdp instanceof DiplodocusMethodologyDiagramPanel) { - nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - - DiplodocusMethodologyDiagramPanel tmltdp = (DiplodocusMethodologyDiagramPanel)tdp; - - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tmltdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - tmltdp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(tmltdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(tmltdp); - tmltdp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(tmltdp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - - - }else if (tdp instanceof AvatarMethodologyDiagramPanel) { - nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - - AvatarMethodologyDiagramPanel amdp = (AvatarMethodologyDiagramPanel)tdp; - - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (amdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - amdp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(amdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(amdp); - amdp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(amdp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - } else if (tdp instanceof TMLComponentTaskDiagramPanel) { - nl = doc.getElementsByTagName("TMLComponentTaskDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - - TMLComponentTaskDiagramPanel tmlctdp = (TMLComponentTaskDiagramPanel)tdp; - //tmlctdp.updateReferences(); - - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tmlctdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - tmlctdp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlctdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(tmlctdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlctdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlctdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(tmlctdp); - tmlctdp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(tmlctdp, beginIndex); - tmlctdp.hideConnectors(); - tmlctdp.updatePorts(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - tmlctdp.updatePorts(); - } else if (tdp instanceof TMLActivityDiagramPanel) { - nl = doc.getElementsByTagName("TMLActivityDiagramPanelCopy"); - - if (nl == null) { - return; - } - - TMLActivityDiagramPanel tmladp = (TMLActivityDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tmladp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //tmladp.loadExtraParameters(elt); - - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(tmladp); - tmladp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(tmladp, beginIndex); - } - } - } else if (tdp instanceof TMLCPPanel) { - nl = doc.getElementsByTagName("CommunicationPatternDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - TMLCPPanel tmlcpp = (TMLCPPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tmlcpp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //tmlcpp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlcpp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(tmlcpp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlcpp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlcpp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(tmlcpp); - tmlcpp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(tmlcpp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - } else if (tdp instanceof TMLSDPanel) { - nl = doc.getElementsByTagName("TMLSDPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - TMLSDPanel tmlsdp = (TMLSDPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tmlsdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //tmlcpp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlsdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(tmlsdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlsdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlsdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(tmlsdp); - tmlsdp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(tmlsdp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - } else if (tdp instanceof TMLArchiDiagramPanel) { - nl = doc.getElementsByTagName("TMLArchiDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - TMLArchiDiagramPanel tmadp = (TMLArchiDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tmadp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - tmadp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmadp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(tmadp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmadp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmadp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(tmadp); - tmadp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(tmadp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - } else if (tdp instanceof TURTLEOSClassDiagramPanel) { - nl = doc.getElementsByTagName("TURTLEOSClassDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - TURTLEOSClassDiagramPanel toscdp = (TURTLEOSClassDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (toscdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //toscdp.loadExtraParameters(elt); - //TraceManager.addDev("Toto 2"); - //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), toscdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(toscdp); - //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), toscdp); - //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), toscdp); - //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " real points"); - connectConnectorsToRealPoints(toscdp); - toscdp.structureChanged(); - //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading " + beginIndex); - makePostLoading(toscdp, beginIndex); - //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading done"); - } - } - } else if (tdp instanceof TURTLEOSActivityDiagramPanel) { - nl = doc.getElementsByTagName("TURTLEOSActivityDiagramPanelCopy"); - - if (nl == null) { - return; - } - - TURTLEOSActivityDiagramPanel tosadp = (TURTLEOSActivityDiagramPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (tosadp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //tmladp.loadExtraParameters(elt); - - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tosadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tosadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tosadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(tosadp); - tosadp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(tosadp, beginIndex); - } - } - } else if (tdp instanceof ProactiveCSDPanel) { - //cuenta=beginIndex+1; - cuenta=mgui.tabs.size()-1; - nl = doc.getElementsByTagName("ProactiveCSDPanelCopy"); - if (nl.getLength()==0) - { - nl=doc.getElementsByTagName("ProactiveCSDPanel"); - } - docCopy = doc; - if (nl == null) - { - return; - } - ProactiveCSDPanel pcsdp = (ProactiveCSDPanel)tdp; - for(i=0; i<nl.getLength(); i++) - { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) - { - elt = (Element) adn; - if (pcsdp == null) - { - throw new MalformedModelingException(); - } - - -// int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); -//int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); -//int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); -//int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //pcsdp.loadExtraParameters(elt); - //TraceManager.addDev("Toto 2"); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), pcsdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(pcsdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), pcsdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), pcsdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(pcsdp); - pcsdp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(pcsdp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - // Added by Solange - nl = doc.getElementsByTagName("ProactiveSMDPanel"); - if (nl == null) - { - return; - } - String name=""; - ProactiveSMDPanel psmdp; - for(i=0; i<nl.getLength(); i++) //Erased cuenta++ by Solange at the end condition of the for - { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) - { - elt = (Element) adn; - name=elt.getAttribute("name"); - //Added by Solange name at the beginning and cuenta - name=mgui.createProActiveSMD(cuenta,name); - psmdp=mgui.getSMDPanel(cuenta, name); - if (psmdp == null) - { - throw new MalformedModelingException(); - } - -// int xSel = Integer.decode(elt.getAttribute("minX")).intValue(); -//int ySel = Integer.decode(elt.getAttribute("maxX")).intValue(); // - mgui.getCurrentTDiagramPanel().currentX; -// int widthSel = Integer.decode(elt.getAttribute("minY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;; -// int heightSel = Integer.decode(elt.getAttribute("maxY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;; - - decX = _decX; - decY = _decY; - - //tmladp.loadExtraParameters(elt); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(psmdp); - psmdp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(psmdp, beginIndex); - //until here - } - } - } else if (tdp instanceof ProactiveSMDPanel) { - //Changed by Solange, before it was like the first line - //nl = doc.getElementsByTagName("ProactiveSMDPanelCopy"); - nl = doc.getElementsByTagName("ProactiveSMDPanelCopy"); - - if (nl == null) { - return; - } - - ProactiveSMDPanel psmdp = (ProactiveSMDPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (psmdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //tmladp.loadExtraParameters(elt); - - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(psmdp); - psmdp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(psmdp, beginIndex); - } - } - - // AVATAR - } else if (tdp instanceof AvatarBDPanel) { - nl = doc.getElementsByTagName("AVATARBlockDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - - AvatarBDPanel abdp = (AvatarBDPanel)tdp; - - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (abdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - abdp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), abdp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(abdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), abdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), abdp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(abdp); - abdp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(abdp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - - - } else if (tdp instanceof ADDDiagramPanel) { - nl = doc.getElementsByTagName("ADDDiagramPanelCopy"); - docCopy = doc; - - if (nl == null) { - return; - } - - //TraceManager.addDev("Toto 1"); - - - ADDDiagramPanel addp = (ADDDiagramPanel)tdp; - - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (addp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - addp.loadExtraParameters(elt); - - //TraceManager.addDev("Toto 2"); - - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), addp); - //TraceManager.addDev("Toto 3"); - makePostProcessing(addp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), addp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), addp); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); - connectConnectorsToRealPoints(addp); - addp.structureChanged(); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); - makePostLoading(addp, beginIndex); - //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); - } - } - - } else if (tdp instanceof AvatarSMDPanel) { - nl = doc.getElementsByTagName("AVATARStateMachineDiagramPanelCopy"); - - if (nl == null) { - return; - } - - AvatarSMDPanel asmdp = (AvatarSMDPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (asmdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - //tmladp.loadExtraParameters(elt); - - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(asmdp); - asmdp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(asmdp, beginIndex); - } - } - } else if (tdp instanceof AvatarRDPanel) { - nl = doc.getElementsByTagName("AvatarRDPanelCopy"); - - if (nl == null) { - return; - } - - AvatarRDPanel ardp = (AvatarRDPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (ardp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ardp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ardp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ardp); - connectConnectorsToRealPoints(ardp); - ardp.structureChanged(); - makePostLoading(ardp, beginIndex); - } - } - - } else if (tdp instanceof AvatarMADPanel) { - nl = doc.getElementsByTagName("AvatarMADPanelCopy"); - - if (nl == null) { - return; - } - - AvatarMADPanel amadp = (AvatarMADPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (amadp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amadp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amadp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amadp); - connectConnectorsToRealPoints(amadp); - amadp.structureChanged(); - makePostLoading(amadp, beginIndex); - } - } - - } else if (tdp instanceof AvatarPDPanel) { - nl = doc.getElementsByTagName("AvatarPDPanelCopy"); - - if (nl == null) { - return; - } - - AvatarPDPanel apdp = (AvatarPDPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (apdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), apdp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), apdp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), apdp); - connectConnectorsToRealPoints(apdp); - apdp.structureChanged(); - makePostLoading(apdp, beginIndex); - } - } - - } else if (tdp instanceof AvatarCDPanel) { - nl = doc.getElementsByTagName("AvatarCDPanelCopy"); - - if (nl == null) { - return; - } - - AvatarCDPanel acdp = (AvatarCDPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (acdp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), acdp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), acdp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), acdp); - connectConnectorsToRealPoints(acdp); - acdp.structureChanged(); - makePostLoading(acdp, beginIndex); - } - } - } else if (tdp instanceof AvatarADPanel) { - nl = doc.getElementsByTagName("AvatarADPanelCopy"); - - if (nl == null) { - return; - } - - AvatarADPanel aadp = (AvatarADPanel)tdp; - - for(i=0; i<nl.getLength(); i++) { - adn = nl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - - if (aadp == null) { - throw new MalformedModelingException(); - } - - //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); - //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); - //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); - //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); - - decX = _decX; - decY = _decY; - - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), aadp); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), aadp); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), aadp); - connectConnectorsToRealPoints(aadp); - aadp.structureChanged(); - makePostLoading(aadp, beginIndex); - } - } - } - - } catch (IOException e) { - TraceManager.addError("Loading 500: " + e.getMessage()); - throw new MalformedModelingException(); - } catch (SAXException saxe) { - TraceManager.addError("Loading 501 " + saxe.getMessage()); - throw new MalformedModelingException(); - } - } - - // Returns null if s is not a saved TURTLE modeling of an older format - public String upgradeSaved(String s) { - int index1, index2, index3; - StringBuffer sb = new StringBuffer("");; - //String tmp; - - index1 = s.indexOf("<TClassDiagramPanel"); - index2 = s.indexOf("<InteractionOverviewDiagramPanel "); - index3 = s.indexOf("</TURTLEGMODELING>"); - - if ((index1 <0) ||(index3 < 0)){ - return null; - } - - sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n"); - - if (index2 > -1) { - sb.append("<Modeling type=\"Analysis\" nameTab=\"Analysis\" >\n"); - sb.append(s.substring(index2, index3)); - sb.append("</Modeling>\n\n"); - } - - if (index2 < 0) { - index2 = index3; - } - sb.append("<Modeling type=\"Design\" nameTab=\"Design\" >\n"); - sb.append(s.substring(index1, index2)); - sb.append("</Modeling>\n\n"); - - sb.append(s.substring(index3, s.length())); - - //TraceManager.addDev("Got:" + sb); - - return sb.toString(); - } - - public void loadModelingFromXML(String s) throws MalformedModelingException { - - if (s == null) { - return; - } - - s = decodeString(s); - - decX = 0; - decY = 0; - decId = 0; - TGComponent.setGeneralId(100000); - - ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes()); - - if ((dbf == null) || (db == null)) { - throw new MalformedModelingException(); - } - - try { - // building nodes from xml String - Document doc = db.parse(bais); - NodeList panelNl; - //NodeList designPanelNl; - //NodeList analysisNl; - - int i; - //Element elt; - Node node; - - // Managing design panels - panelNl = doc.getElementsByTagName("Modeling"); - - if (panelNl.getLength() == 0) { - // Modeling saved in old format? - s = upgradeSaved(s); - if (s != null) { - JOptionPane.showMessageDialog(mgui.frame, "The modeling has been converted to this new version of TTool", "Loading information", JOptionPane.INFORMATION_MESSAGE); - } - loadModelingFromXML(s); - return; - - } - //designPanelNl = doc.getElementsByTagName("Design"); - //analysisNl = doc.getElementsByTagName("Analysis"); - - pendingConnectors = new ArrayList<TGConnectorInfo>(); - - //TraceManager.addDev("nb de design=" + designPanelNl.getLength() + " nb d'analyse=" + analysisNl.getLength()); - boolean error = false; - for(i=0; i<panelNl.getLength(); i++) { - node = panelNl.item(i); - //TraceManager.addDev("Node = " + dnd); - - if (node.getNodeType() == Node.ELEMENT_NODE) { - // create design, and get an index for it - try { - loadModeling(node); - } catch (MalformedModelingException mme) { - Element elt = (Element) node; - String type = elt.getAttribute("type"); - TraceManager.addDev("Error when loading diagram: " + type); - error = true; - } - } - } - if (error == true) { - throw new MalformedModelingException(); - } - - } catch (NumberFormatException nfe) { - TraceManager.addError("Loading 400 " + nfe.getMessage()); - throw new MalformedModelingException(); - } catch (IOException e) { - TraceManager.addError("Loading 600 " + e.getMessage()); - throw new MalformedModelingException(); - } catch (SAXException saxe) { - TraceManager.addError("Loading 601 " + saxe.getMessage()); - throw new MalformedModelingException(); - } - //TraceManager.addDev("making IDs"); - makeLastLoad(); - makeLovelyIds(); - //TraceManager.addDev("IDs done"); - } - - public void loadModeling(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String type = elt.getAttribute("type"); - // AVATAR - if (type.compareTo("ADD") == 0) { - loadAvatarDeployment(node); - } else if (type.compareTo("AVATAR Design") == 0) { - loadAvatarDesign(node); - } else if (type.compareTo("Avatar Requirement") == 0) { - loadAvatarRequirement(node); - } else if (type.compareTo("Avatar MAD") == 0) { - loadAvatarMADs(node); - } else if (type.compareTo("Avatar Analysis") == 0) { - loadAvatarAnalysis(node); - - - // TURTLE - } else if (type.compareTo("Design") == 0) { - loadDesign(node); - } else if (type.compareTo("Analysis") == 0) { - loadAnalysis(node); - } else if (type.compareTo("Deployment") == 0) { - loadDeployment(node); - } else if (type.compareTo("NC diagram") == 0) { - loadNC(node); - } else if (type.compareTo("Requirement") == 0) { - loadRequirement(node); - } else if (type.compareTo("AttackTree") == 0) { - loadAttackTree(node); - } else if (type.compareTo("Diplodocus Methodology") == 0) { - loadDiplodocusMethodology(node); - } else if (type.compareTo("Avatar Methodology") == 0) { - loadAvatarMethodology(node); - } else if (type.compareTo("TML Design") == 0) { - loadTMLDesign(node); - } else if (type.compareTo("TML Component Design") == 0) { - loadTMLComponentDesign(node); - } else if (type.compareTo("TML CP") == 0) { - loadTMLCP(node); - } else if (type.compareTo("TML Architecture") == 0) { - loadTMLArchitecture(node); - } else if (type.compareTo("TURTLE-OS Design") == 0) { - loadTURTLEOSDesign(node); - } else if (type.compareTo("ProActive Design") == 0) { - loadProActiveDesign(node); - } else { - throw new MalformedModelingException(); - } - } - - public void loadAvatarDesign(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createAvatarDesign(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("AVATARBlockDiagramPanel") == 0) { - // Class diagram - loadAvatarBD(elt, indexDesign); - } else { // Managing activity diagrams - if (elt.getTagName().compareTo("AVATARStateMachineDiagramPanel") == 0) { - // Managing activity diagrams - loadAvatarSMD(elt, indexDesign); - } - } - } - } - } - - public void loadAvatarDeployment(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexReq; - int cpt_req = 0; - - TraceManager.addDev("Loading ADD 0"); - - nameTab = elt.getAttribute("nameTab"); - - indexReq = mgui.createADD(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Deployment nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("ADDDiagramPanel") == 0) { - TraceManager.addDev("Loading ADD 1"); - loadADDDiagram(elt, indexReq, cpt_req); - cpt_req ++; - } - } - } - } - - public void loadAvatarRequirement(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexReq; - int cpt_req = 0; - - - nameTab = elt.getAttribute("nameTab"); - - indexReq = mgui.createAvatarRequirement(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Deployment nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("AvatarRDPanel") == 0) { - loadAvatarRD(elt, indexReq, cpt_req); - cpt_req ++; - } else if (elt.getTagName().compareTo("AvatarPDPanel") == 0) { - loadAvatarPD(elt, indexReq, cpt_req); - cpt_req ++; - } - } - } - } - - public void loadAvatarMADs(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexReq; - int cpt_req = 0; - - - nameTab = elt.getAttribute("nameTab"); - - TraceManager.addDev("Creating MAD panel "); - - indexReq = mgui.createAvatarMADs(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - TraceManager.addDev("MADs nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("AvatarMADPanel") == 0) { - loadAvatarMAD(elt, indexReq, cpt_req); - cpt_req ++; - } - } - } - } - - public void loadDesign(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createDesign(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("TClassDiagramPanel") == 0) { - // Class diagram - loadTClassDiagram(elt, indexDesign); - } else { // Managing activity diagrams - if (elt.getTagName().compareTo("TActivityDiagramPanel") == 0) { - // Managing activity diagrams - loadTActivityDiagram(elt, indexDesign); - } - } - } - } - } - - public void loadAnalysis(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexAnalysis; - int cpt = 0; - - nameTab = elt.getAttribute("nameTab"); - - indexAnalysis = mgui.createAnalysis(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("InteractionOverviewDiagramPanel") == 0) { - // IOD - loadIODiagram(elt, indexAnalysis); - cpt ++; - } else { // Managing sequence diagrams - if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) { - loadSequenceDiagram(elt, indexAnalysis); - cpt ++; - } else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) { - // Managing use case diagrams - loadUseCaseDiagram(elt, indexAnalysis, cpt); - cpt ++; - } /*else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) { - // Managing use case diagrams - loadAvatarCD(elt, indexAnalysis, cpt); - cpt ++; - } else if (elt.getTagName().compareTo("AvatarADPanel") == 0) { - // Managing use case diagrams - loadAvatarAD(elt, indexAnalysis, cpt); - cpt ++; - }*/ - } - } - } - } - - public void loadTMLCP(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexTMLCP; - int cpt = 0; - - nameTab = elt.getAttribute("nameTab"); - - indexTMLCP = mgui.createTMLCP(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("CommunicationPatternDiagramPanel") == 0) { - // CP - loadTMLCPDiagram(elt, indexTMLCP); - cpt ++; - } else { // Managing sequence diagrams - if (elt.getTagName().compareTo("TMLSDPanel") == 0) { - loadTMLSDDiagram(elt, indexTMLCP); - cpt ++; - } - } - } - } - } - - public void loadAvatarAnalysis(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexAnalysis; - int cpt = 0; - - //TraceManager.addDev("Loading Avatar analysis"); - - nameTab = elt.getAttribute("nameTab"); - - indexAnalysis = mgui.createAvatarAnalysis(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - - if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) { - //TraceManager.addDev("Loading seq diag"); - loadSequenceDiagram(elt, indexAnalysis); - //TraceManager.addDev("Loading seq diag done"); - cpt ++; - } else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) { - // Managing use case diagrams - //TraceManager.addDev("Loading ucd diag"); - loadUseCaseDiagram(elt, indexAnalysis, cpt); - //TraceManager.addDev("Loading ucd diag done"); - - cpt ++; - } else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) { - // Managing use case diagrams - //TraceManager.addDev("Loading cd diag"); - loadAvatarCD(elt, indexAnalysis, cpt); - //TraceManager.addDev("Loading cd diag done"); - cpt ++; - } else if (elt.getTagName().compareTo("AvatarADPanel") == 0) { - // Managing use case diagrams - //TraceManager.addDev("Loading ad diag"); - loadAvatarAD(elt, indexAnalysis, cpt); - //TraceManager.addDev("Loading ad diag done"); - cpt ++; - } - - } - } - } - - public void loadDeployment(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexAnalysis; - - - nameTab = elt.getAttribute("nameTab"); - - indexAnalysis = mgui.createDeployment(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Deployment nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("TDeploymentDiagramPanel") == 0) { - // IOD - loadTDeploymentDiagram(elt, indexAnalysis); - } - } - } - } - - public void loadNC(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexAnalysis; - - - nameTab = elt.getAttribute("nameTab"); - - indexAnalysis = mgui.createNC(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Deployment nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("NCDiagramPanel") == 0) { - // IOD - loadNCDiagram(elt, indexAnalysis); - } - } - } - } - - public void loadRequirement(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexReq; - int cpt_req = 0; - - - nameTab = elt.getAttribute("nameTab"); - - indexReq = mgui.createRequirement(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Deployment nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("TRequirementDiagramPanel") == 0) { - loadRequirementDiagram(elt, indexReq, cpt_req); - cpt_req ++; - } else if (elt.getTagName().compareTo("EBRDDPanel") == 0) { - loadEBRDD(elt, indexReq, cpt_req); - cpt_req ++; - } - } - } - } - - public void loadAttackTree(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexTree; - - nameTab = elt.getAttribute("nameTab"); - - indexTree = mgui.createAttackTree(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Deployment nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("AttackTreeDiagramPanel") == 0) { - loadAttackTreeDiagram(elt, indexTree); - } - } - } - } - - public void loadDiplodocusMethodology(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createDiplodocusMethodology(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("DiplodocusMethodologyDiagramPanel") == 0) { - // Class diagram - //TraceManager.addDev("Loading TML CD"); - loadDiplodocusMethodologyDiagram(elt, indexDesign); - //TraceManager.addDev("End loading TML CD"); - } - } - } - } - - public void loadAvatarMethodology(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createAvatarMethodology(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("AvatarMethodologyDiagramPanel") == 0) { - // Class diagram - //TraceManager.addDev("Loading TML CD"); - loadAvatarMethodologyDiagram(elt, indexDesign); - //TraceManager.addDev("End loading TML CD"); - } - } - } - } - - public void loadTMLDesign(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createTMLDesign(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("TMLTaskDiagramPanel") == 0) { - // Class diagram - //TraceManager.addDev("Loading TML CD"); - loadTMLTaskDiagram(elt, indexDesign); - //TraceManager.addDev("End loading TML CD"); - } else { // Managing activity diagrams - if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) { - // Managing activity diagrams - //TraceManager.addDev("Loading TML AD"); - loadTMLActivityDiagram(elt, indexDesign); - } - } - } - } - } - - public void loadTMLComponentDesign(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createTMLComponentDesign(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("TMLComponentTaskDiagramPanel") == 0) { - // Component diagram - //TraceManager.addDev("Loading TML Component diagram"); - loadTMLComponentTaskDiagram(elt, indexDesign); - //TraceManager.addDev("End loading TML CD"); - } else { // Managing activity diagrams - if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) { - // Managing activity diagrams - //TraceManager.addDev("Loading TML AD"); - loadTMLActivityDiagram(elt, indexDesign); - } - } - } - } - } - - public void loadTMLArchitecture(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createTMLArchitecture(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - TraceManager.addDev("TML Architecture nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("TMLArchiDiagramPanel") == 0) { - TraceManager.addDev("Loading TML DD" + elt.getTagName() ); - loadTMLArchitectureDiagram(elt, indexDesign); - TraceManager.addDev("End loading TML DD"); - } - } - } - } - - public void loadTURTLEOSDesign(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createTURTLEOSDesign(nameTab); - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("TURTLEOSClassDiagramPanel") == 0) { - // Class diagram - //TraceManager.addDev("Loading TURTLEOS CD"); - loadTURTLEOSClassDiagram(elt, indexDesign); - //TraceManager.addDev("End loading TML CD"); - } else { // Managing activity diagrams - if (elt.getTagName().compareTo("TURTLEOSActivityDiagramPanel") == 0) { - // Managing activity diagrams - //TraceManager.addDev("Loading TURTLEOS AD"); - loadTURTLEOSActivityDiagram(elt, indexDesign); - } - } - } - } - } - - public void loadProActiveDesign(Node node) throws MalformedModelingException, SAXException { - Element elt = (Element) node; - String nameTab; - NodeList diagramNl; - int indexDesign; - - - nameTab = elt.getAttribute("nameTab"); - - indexDesign = mgui.createProActiveDesign(nameTab); - - - diagramNl = node.getChildNodes(); - - for(int j=0; j<diagramNl.getLength(); j++) { - //TraceManager.addDev("Design nodes: " + j); - node = diagramNl.item(j); - if (node.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)node; - if (elt.getTagName().compareTo("ProactiveCSDPanel") == 0) { - // Class diagram - //TraceManager.addDev("Loading TML CD"); - loadProactiveCSD(elt, indexDesign); - //TraceManager.addDev("End loading TML CD"); - } else { // Managing activity diagrams - if (elt.getTagName().compareTo("ProactiveSMDPanel") == 0) { - // Managing activity diagrams - //TraceManager.addDev("Loading TML AD"); - loadProactiveSMD(elt, indexDesign); - } - } - } - } - } - - public void loadDiagram(Element elt, TDiagramPanel tdp) throws MalformedModelingException, SAXException { - int x, y; - double zoom = 0; - try { - x = Integer.decode(elt.getAttribute("minX")).intValue(); - tdp.setMinX(x); - x = Integer.decode(elt.getAttribute("maxX")).intValue(); - tdp.setMaxX(x); - y = Integer.decode(elt.getAttribute("minY")).intValue(); - tdp.setMinY(y); - y = Integer.decode(elt.getAttribute("maxY")).intValue(); - tdp.setMaxY(y); - tdp.updateSize(); - zoom = Double.parseDouble(elt.getAttribute("zoom")); - if (zoom != 0) { - tdp.setZoom(zoom); - mgui.updateZoomInfo(); - } - } catch (Exception e) { - // Model was saved in an older version of TTool - } - - // for TClassdiagram Panel - if (tdp instanceof TClassDiagramPanel) { - ((TClassDiagramPanel)tdp).loadExtraParameters(elt); - } - - if (tdp instanceof TActivityDiagramPanel) { - ((TActivityDiagramPanel)tdp).loadExtraParameters(elt); - } - - if (tdp instanceof TMLTaskDiagramPanel) { - ((TMLTaskDiagramPanel)tdp).loadExtraParameters(elt); - } - - if (tdp instanceof TMLComponentTaskDiagramPanel) { - ((TMLComponentTaskDiagramPanel)tdp).loadExtraParameters(elt); - } - - if (tdp instanceof TMLArchiDiagramPanel) { - ((TMLArchiDiagramPanel)tdp).loadExtraParameters(elt); - } - - - if (tdp instanceof AvatarBDPanel) { - ((AvatarBDPanel)tdp).loadExtraParameters(elt); - } - - //TraceManager.addDev("Element" + elt.toString()); - // Loads components of the class diagram - //TraceManager.addDev("Components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tdp); - //TraceManager.addDev("Post processing"); - makePostProcessing(tdp); - //TraceManager.addDev("Connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tdp); - //TraceManager.addDev("Subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tdp); - //TraceManager.addDev("RealPoints"); - connectConnectorsToRealPoints(tdp); - //TraceManager.addDev("Structure changed"); - tdp.structureChanged(); - //TraceManager.addDev("Post loading"); - makePostLoading(tdp, 0); - - //TraceManager.addDev("Test connectors"); - if (tdp instanceof TMLComponentTaskDiagramPanel) { - //TraceManager.addDev("Connectors..."); - ((TMLComponentTaskDiagramPanel)tdp).setConnectorsToFront(); - } - - if (tdp instanceof EBRDDPanel) { - //TraceManager.addDev("Connectors..."); - ((EBRDDPanel)tdp).setConnectorsToFront(); - } - - if (tdp instanceof AttackTreeDiagramPanel) { - //TraceManager.addDev("Connectors..."); - ((AttackTreeDiagramPanel)tdp).setConnectorsToFront(); - } - - if (tdp instanceof AvatarBDPanel) { - //TraceManager.addDev("Connectors..."); - ((AvatarBDPanel)tdp).setConnectorsToFront(); - } - - if (tdp instanceof AvatarSMDPanel) { - //TraceManager.addDev("Connectors..."); - ((AvatarSMDPanel)tdp).setConnectorsToFront(); - } - - if (tdp instanceof AvatarPDPanel) { - //TraceManager.addDev("Connectors..."); - ((AvatarPDPanel)tdp).setConnectorsToFront(); - } - - if (tdp instanceof AvatarCDPanel) { - //TraceManager.addDev("Connectors..."); - ((AvatarCDPanel)tdp).setConnectorsToFront(); - } - - if (tdp instanceof AvatarADPanel) { - //TraceManager.addDev("Connectors..."); - ((AvatarADPanel)tdp).setConnectorsToFront(); - } - } - - // AVATAR - public void loadAvatarBD(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - - String name; - TDiagramPanel tdp; - - // class diagram name - name = elt.getAttribute("name"); - mgui.setAvatarBDName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); - - loadDiagram(elt, tdp); - } - - public void loadAvatarSMD(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - //TraceManager.addDev("Loading SMD of:" + name); - AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(indexDesign, name); - - if (asmdp == null) { - throw new MalformedModelingException(); - } - - asmdp.removeAll(); - - loadDiagram(elt, asmdp); - } - - public void loadAvatarRD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - mgui.createAvatarRD(indexAnalysis, name); - - - TDiagramPanel tdp = mgui.getAvatarRDPanel(indexAnalysis, indexTab, name); - - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); - - loadDiagram(elt, tdp); - } - - public void loadAvatarMAD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - mgui.createAvatarMAD(indexAnalysis, name); - - - TDiagramPanel tdp = mgui.getAvatarMADPanel(indexAnalysis, indexTab, name); - - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); - - loadDiagram(elt, tdp); - } - - public void loadADDDiagram(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - - TraceManager.addDev("ADD 2"); - mgui.createAvatarPD(indexAnalysis, name); - - TraceManager.addDev("ADD 3"); - TDiagramPanel tdp = mgui.getAvatarADDPanel(indexAnalysis, indexTab, name); - - TraceManager.addDev("ADD 3.1"); - - if (tdp == null) { - TraceManager.addDev("ADD 3.2"); - throw new MalformedModelingException(); - } - tdp.removeAll(); - TraceManager.addDev("ADD 4"); - - loadDiagram(elt, tdp); - TraceManager.addDev("ADD 5"); - } - - public void loadAvatarPD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; + TURTLEPanel tp = mgui.getCurrentTURTLEPanel(); + + if (tp == null) { + return; + } + + if (!(tp instanceof AvatarDesignPanel)) { + return; + } + + AvatarDesignPanel adp = (AvatarDesignPanel)(tp); + adp.reinitMutualExclusionStates(); + + // First step: build a list of all states being in invariants + Vector<AvatarSMDState> v = new Vector<AvatarSMDState>(); + for(Invariant inv: invariants) { + for(TGComponent tgc: inv.getComponents()) { + if (tgc instanceof AvatarSMDState) { + if (!(v.contains(tgc))) { + v.add((AvatarSMDState)tgc); + } + } + } + } + + // Then, add to all states its list of mutually exclusive states + + for(AvatarSMDState s: v) { + Vector<AvatarSMDState> v0 = new Vector<AvatarSMDState>(); + for(Invariant inv: invariants) { + if (inv.containsComponent(s)) { + for(TGComponent tgc: inv.getComponents()) { + if ((tgc instanceof AvatarSMDState) && (tgc != s)) { + if (tgc.getTDiagramPanel() != s.getTDiagramPanel()) { + if (!(v0.contains(tgc))) { + v0.add((AvatarSMDState)tgc); + } + } + } + } + } + } + TraceManager.addDev("State " + s.getStateName() + " has " + v0.size() + " mutually eclusive states"); + + for(AvatarSMDState s0: v0) { + s.addMutexState(s0); + } + } + + + } + + // From AVATAR to TURTLEModeling + public boolean translateAvatarSpecificationToTIF() { + AVATAR2TURTLE att = new AVATAR2TURTLE(avatarspec); + tm = att.generateTURTLEModeling(); + + TURTLEModelChecker tmc = new TURTLEModelChecker(tm, listE); + + checkingErrors = tmc.syntaxAnalysisChecking(); + warnings.addAll(tmc.getWarnings()); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + return false; + } else { + return true; + } + + } + + public Vector getCheckingErrors() { + return checkingErrors; + } + + public Vector getCheckingWarnings() { + return warnings; + } + + + // SAVING AND LOADING IN XML + public static String transformString(String s) { + if (s != null) { + s = Conversion.replaceAllChar(s, '&', "&"); + s = Conversion.replaceAllChar(s, '<', "<"); + s = Conversion.replaceAllChar(s, '>', ">"); + s = Conversion.replaceAllChar(s, '"', """); + s = Conversion.replaceAllChar(s, '\'', "'"); + } + return s; + } + + public static String encodeString(String s) { + return s; + } + + public static String decodeString(String s) throws MalformedModelingException { + if (s == null) + return s; + byte b[] = null; + try { + b = s.getBytes("ISO-8859-1"); + return new String(b); + } catch (Exception e) { + throw new MalformedModelingException(); + } + } + + public String mergeTURTLEGModeling(String modeling1, String modeling2) { + int index1 = modeling1.indexOf("</TURTLEGMODELING"); + int index2 = modeling2.indexOf("<TURTLEGMODELING"); + if ((index1 == -1) || (index2 == -1)) { + return null; + } + + String modeling = modeling1.substring(0, index1); + String tmp = modeling2.substring(index2, modeling2.length()); + index2 = modeling2.indexOf('<'); + if (index2 == -1) { + return null; + } + + tmp = tmp.substring(index2+1, tmp.length()); + + return modeling + tmp; + } + + public String makeXMLFromComponentOfADiagram(TDiagramPanel tdp, TGComponent tgc, int copyMaxId, int _decX, int _decY) { + StringBuffer sb = new StringBuffer(); + + //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); + sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS "); + sb.append("version=\"" + DefaultText.getVersion()); + sb.append("\" copyMaxId=\"" + copyMaxId); + sb.append("\" decX=\"" + _decX); + sb.append("\" decY=\"" + _decY); + sb.append("\" >\n\n"); + + StringBuffer s; + String str; + + s = tdp.saveComponentInXML(tgc); + + if (tgc instanceof AvatarBDBlock) { + AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); + s.append(asmdp.saveInXML()); + LinkedList<AvatarBDBlock> list = ((AvatarBDBlock)tgc).getFullBlockList(); + for(AvatarBDBlock b:list) { + asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue()); + s.append(asmdp.saveInXML()); + } + + } + + if (tgc instanceof TCDTClass) { + TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); + s.append(tadp.saveInXML()); + } + + if (tgc instanceof TOSClass) { + TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); + s.append(tosadp.saveInXML()); + } + + if (tgc instanceof TMLTaskOperator) { + TMLActivityDiagramPanel tmladp1 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); + s.append(tmladp1.saveInXML()); + } + + if (tgc instanceof TMLCPrimitiveComponent) { + TMLActivityDiagramPanel tmladp2 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), tgc.getValue()); + s.append(tmladp2.saveInXML()); + } + + if (tgc instanceof TMLCCompositeComponent) { + TMLActivityDiagramPanel tmladp3; + ArrayList<TMLCPrimitiveComponent> list = ((TMLCCompositeComponent)tgc).getAllPrimitiveComponents(); + for (TMLCPrimitiveComponent comp: list) { + tmladp3 = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), comp.getValue()); + s.append(tmladp3.saveInXML()); + } + } + + if (s == null) { + return null; + } + sb.append(s); + sb.append("\n\n"); + sb.append("</TURTLEGSELECTEDCOMPONENTS>"); + + str = new String(sb); + str = encodeString(str); + + return str; + } + + + public String makeXMLFromSelectedComponentOfADiagram(TDiagramPanel tdp, int copyMaxId, int _decX, int _decY) { + StringBuffer sb = new StringBuffer(); + //TraceManager.addDev("Making copy"); + + //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); + sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGSELECTEDCOMPONENTS "); + sb.append("version=\"" + DefaultText.getVersion()); + sb.append("\" copyMaxId=\"" + copyMaxId); + sb.append("\" decX=\"" + _decX); + sb.append("\" decY=\"" + _decY); + sb.append("\" >\n\n"); + + StringBuffer s; + String str; + + s = tdp.saveSelectedInXML(); + + Vector v = tdp.selectedTclasses(); + + if ((v != null) && (v.size() > 0)) { + TCDTClass t; + TActivityDiagramPanel tadp; + for(int i=0; i<v.size(); i++) { + t = (TCDTClass)(v.elementAt(i)); + tadp = mgui.getActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue()); + s.append(tadp.saveInXML()); + } + } + + //Added by Solange + //bug removed by Emil + if (tdp instanceof ProactiveCSDPanel) + { + v=((ProactiveCSDPanel)tdp).selectedProCSDComponent(null); + if ((v != null) && (v.size() > 0)) { + ProCSDComponent t; + ProactiveSMDPanel psmd; + for(int i=0; i<v.size(); i++) { + t = (ProCSDComponent)(v.elementAt(i)); + psmd = mgui.getSMDPanel(mgui.getCurrentSelectedIndex(), t.getValue()); + if (psmd!=null) + s.append(psmd.saveInXML()); + } + } + } + //until here + + + v = tdp.selectedTURTLEOSClasses(); + if ((v != null) && (v.size() > 0)) { + //TraceManager.addDev("Saving TURTLEOS activity diagram Panel..."); + TOSClass t; + TURTLEOSActivityDiagramPanel tosadp; + for(int i=0; i<v.size(); i++) { + t = (TOSClass)(v.elementAt(i)); + tosadp = mgui.getTURTLEOSActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue()); + s.append(tosadp.saveInXML()); + } + } + + v = tdp.selectedTMLTasks(); + if ((v != null) && (v.size() > 0)) { + //TraceManager.addDev("Saving TML activity diagram Panel..."); + TMLTaskOperator t; + TMLActivityDiagramPanel tmladp; + for(int i=0; i<v.size(); i++) { + t = (TMLTaskOperator)(v.elementAt(i)); + tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), t.getValue()); + s.append(tmladp.saveInXML()); + } + } + + v = tdp.selectedAvatarBDBlocks(); + if ((v != null) && (v.size() > 0)) { + //TraceManager.addDev("Saving TML activity diagram Panel..."); + AvatarBDBlock abdb; + AvatarSMDPanel asmdp; + for(int i=0; i<v.size(); i++) { + abdb = (AvatarBDBlock)(v.elementAt(i)); + asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), abdb.getBlockName()); + s.append(asmdp.saveInXML()); + + } + } + + v = tdp.selectedCPrimitiveComponent(); + if ((v != null) && (v.size() > 0)) { + //TraceManager.addDev("Saving TML activity diagram Panel..."); + TMLCPrimitiveComponent ct; + TMLActivityDiagramPanel tmladp; + for(int i=0; i<v.size(); i++) { + ct = (TMLCPrimitiveComponent)(v.elementAt(i)); + tmladp = mgui.getTMLActivityDiagramPanel(mgui.getCurrentSelectedIndex(), ct.getValue()); + s.append(tmladp.saveInXML()); + } + } + + if (s == null) { + return null; + } + sb.append(s); + sb.append("\n\n"); + sb.append("</TURTLEGSELECTEDCOMPONENTS>"); + + str = new String(sb); + str = encodeString(str); + + TraceManager.addDev("Copy done"); + //TraceManager.addDev(str); + + return str; + } + + public String makeOneDiagramXMLFromGraphicalModel(TURTLEPanel tp, int indexOfDiagram) { + StringBuffer sb = new StringBuffer(); + //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); + sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n"); + + StringBuffer s; + String str; + + + s = tp.saveInXML(indexOfDiagram); + + sb.append(s); + sb.append("\n\n"); + + + sb.append("</TURTLEGMODELING>"); + + str = new String(sb); + str = encodeString(str); + + return str; + } + + public String makeXMLFromTurtleModeling(int index) { + StringBuffer sb = new StringBuffer(); + //sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<TURTLEGMODELING>\n\n"); + sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n"); + + StringBuffer s; + String str; + + TURTLEPanel tp; + int i; + // search for diagram panels (Design) + for(i=0; i<panels.size(); i++) { + if ((index == -1) || (i == index)) { + tp = (TURTLEPanel)(panels.elementAt(i)); + s = tp.saveInXML(); + if (s == null) { + return null; + } + sb.append(s); + sb.append("\n\n"); + } + } + + sb.append("</TURTLEGMODELING>"); + + str = new String(sb); + str = encodeString(str); + + return str; + } + + public void removeAllComponents() { + TDiagramPanel tdp; + int i, j; + Vector panelss; + // search for diagram panels + for(i=0; i<panels.size(); i++) { + panelss = (Vector)(((TURTLEPanel)(panels.elementAt(i))).panels); + for(j=0; j<panelss.size(); j++) { + tdp = (TDiagramPanel)(panelss.elementAt(j)); + tdp.removeAll(); + } + } + } + + public void copyModelingFromXML(TDiagramPanel tdp, String s, int X, int Y) throws MalformedModelingException { + //TraceManager.addDev("copyModelingFromXML: " + s); + //TraceManager.addDev("tdp: " + tdp); + + //TraceManager.addDev(s); + //TraceManager.addDev("copyModelingFromXML:"); + //LinkedList ComponentsList=tdp.getComponentList(); + int beginIndex = tdp.getComponentList().size(); + + //Added by Solange + int cuenta=1; + + s = decodeString(s); + + //TraceManager.addDev("copy=" + s); + + ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes()); + if ((dbf == null) || (db == null)) { + throw new MalformedModelingException(); + } + + int i; + //int copyMaxId; + int _decX = 0, _decY = 0; + + try { + // building nodes from xml String + Document doc = db.parse(bais); + NodeList nl; + + decId = tdp.getMaxId() + 1; + TGComponent.setGeneralId(TGComponent.getGeneralId() + decId + 2); + nl = doc.getElementsByTagName("TURTLEGSELECTEDCOMPONENTS"); + + if (nl == null) { + return; + } + + Node adn; + Element elt; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + _decX = X - Integer.decode(elt.getAttribute("decX")).intValue(); + _decY = Y - Integer.decode(elt.getAttribute("decY")).intValue(); + //copyMaxId = Integer.decode(elt.getAttribute("copyMaxId")).intValue(); + } + } + + // Managing diagrams + if (tdp instanceof TClassDiagramPanel) { + TraceManager.addDev("TClassDiagramPanel copy"); + + nl = doc.getElementsByTagName("TClassDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + + TClassDiagramPanel tcdp = (TClassDiagramPanel)tdp; + + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tcdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + tcdp.loadExtraParameters(elt); + + //TraceManager.addDev("Class diagram : " + tcdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tcdp); + makePostProcessing(tcdp); + //TraceManager.addDev("Class diagram : " + tcdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tcdp); + //TraceManager.addDev("Class diagram : " + tcdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tcdp); + //TraceManager.addDev("Class diagram : " + tcdp.getName() + " real points"); + connectConnectorsToRealPoints(tcdp); + tcdp.structureChanged(); + //TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading " + beginIndex); + makePostLoading(tcdp, beginIndex); + //TraceManager.addDev("Class diagram : " + tcdp.getName() + " post loading done"); + } + } + docCopy = null; + + } else if (tdp instanceof TActivityDiagramPanel) { + TraceManager.addDev("TActivityDiagramPanel copy"); + nl = doc.getElementsByTagName("TActivityDiagramPanelCopy"); + + if (nl == null) { + return; + } + + TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tadp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + tadp.loadExtraParameters(elt); + + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(tadp); + tadp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(tadp, beginIndex); + } + } + } else if (tdp instanceof InteractionOverviewDiagramPanel) { + + nl = doc.getElementsByTagName("InteractionOverviewDiagramPanelCopy"); + + if (nl == null) { + return; + } + + InteractionOverviewDiagramPanel iodp = (InteractionOverviewDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (iodp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), iodp); + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), iodp); + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), iodp); + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " real points"); + connectConnectorsToRealPoints(iodp); + iodp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); + makePostLoading(iodp, beginIndex); + } + } + } else if (tdp instanceof SequenceDiagramPanel) { + //TraceManager.addDev("Sequence diagram!"); + nl = doc.getElementsByTagName("SequenceDiagramPanelCopy"); + + if (nl == null) { + return; + } + + SequenceDiagramPanel sdp = (SequenceDiagramPanel)tdp; + + //TraceManager.addDev("Sequence diagram!"); + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (sdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), sdp); + //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), sdp); + //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), sdp); + //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " real points"); + connectConnectorsToRealPoints(sdp); + sdp.structureChanged(); + //TraceManager.addDev("Sequence diagram: " + sdp.getName() + " post loading"); + makePostLoading(sdp, beginIndex); + } + } + } else if (tdp instanceof UseCaseDiagramPanel) { + nl = doc.getElementsByTagName("UseCaseDiagramPanelCopy"); + + if (nl == null) { + return; + } + + UseCaseDiagramPanel ucdp = (UseCaseDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (ucdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ucdp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ucdp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ucdp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points"); + connectConnectorsToRealPoints(ucdp); + ucdp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); + makePostLoading(ucdp, beginIndex); + } + } + } else if (tdp instanceof TDeploymentDiagramPanel) { + nl = doc.getElementsByTagName("TDeploymentDiagramPanelCopy"); + + if (nl == null) { + return; + } + + TDeploymentDiagramPanel tddp = (TDeploymentDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tddp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tddp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tddp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tddp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points"); + connectConnectorsToRealPoints(tddp); + tddp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); + makePostLoading(tddp, beginIndex); + } + } + } else if (tdp instanceof NCDiagramPanel) { + nl = doc.getElementsByTagName("NCDiagramPanelCopy"); + + if (nl == null) { + return; + } + + NCDiagramPanel ncdp = (NCDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (ncdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ncdp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ncdp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ncdp); + //TraceManager.addDev("Activity diagram : " + sdp.getName() + " real points"); + connectConnectorsToRealPoints(ncdp); + ncdp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + iodp.getName() + " post loading"); + makePostLoading(ncdp, beginIndex); + } + } + } else if (tdp instanceof RequirementDiagramPanel) { + nl = doc.getElementsByTagName("TRequirementDiagramPanelCopy"); + + if (nl == null) { + return; + } + + RequirementDiagramPanel rdp = (RequirementDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (rdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), rdp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), rdp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), rdp); + connectConnectorsToRealPoints(rdp); + rdp.structureChanged(); + makePostLoading(rdp, beginIndex); + } + } + } else if (tdp instanceof EBRDDPanel) { + nl = doc.getElementsByTagName("EBRDDPanelCopy"); + + if (nl == null) { + return; + } + + EBRDDPanel ebrddp = (EBRDDPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (ebrddp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ebrddp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ebrddp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ebrddp); + connectConnectorsToRealPoints(ebrddp); + ebrddp.structureChanged(); + makePostLoading(ebrddp, beginIndex); + } + } + } else if (tdp instanceof AttackTreeDiagramPanel) { + nl = doc.getElementsByTagName("AttackTreeDiagramPanelCopy"); + + if (nl == null) { + return; + } + + AttackTreeDiagramPanel atdp = (AttackTreeDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (atdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), atdp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), atdp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), atdp); + connectConnectorsToRealPoints(atdp); + atdp.structureChanged(); + makePostLoading(atdp, beginIndex); + } + } + } else if (tdp instanceof TMLTaskDiagramPanel) { + nl = doc.getElementsByTagName("TMLTaskDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + + TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; + + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tmltdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + tmltdp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(tmltdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(tmltdp); + tmltdp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(tmltdp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + }else if (tdp instanceof DiplodocusMethodologyDiagramPanel) { + nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + + DiplodocusMethodologyDiagramPanel tmltdp = (DiplodocusMethodologyDiagramPanel)tdp; + + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tmltdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + tmltdp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmltdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(tmltdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmltdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmltdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(tmltdp); + tmltdp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(tmltdp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + + + }else if (tdp instanceof AvatarMethodologyDiagramPanel) { + nl = doc.getElementsByTagName("DiplodocusMethodologyDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + + AvatarMethodologyDiagramPanel amdp = (AvatarMethodologyDiagramPanel)tdp; + + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (amdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + amdp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(amdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(amdp); + amdp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(amdp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + } else if (tdp instanceof TMLComponentTaskDiagramPanel) { + nl = doc.getElementsByTagName("TMLComponentTaskDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + + TMLComponentTaskDiagramPanel tmlctdp = (TMLComponentTaskDiagramPanel)tdp; + //tmlctdp.updateReferences(); + + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tmlctdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + tmlctdp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlctdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(tmlctdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlctdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlctdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(tmlctdp); + tmlctdp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(tmlctdp, beginIndex); + tmlctdp.hideConnectors(); + tmlctdp.updatePorts(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + tmlctdp.updatePorts(); + } else if (tdp instanceof TMLActivityDiagramPanel) { + nl = doc.getElementsByTagName("TMLActivityDiagramPanelCopy"); + + if (nl == null) { + return; + } + + TMLActivityDiagramPanel tmladp = (TMLActivityDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tmladp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //tmladp.loadExtraParameters(elt); + + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(tmladp); + tmladp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(tmladp, beginIndex); + } + } + } else if (tdp instanceof TMLCPPanel) { + nl = doc.getElementsByTagName("CommunicationPatternDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + TMLCPPanel tmlcpp = (TMLCPPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tmlcpp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //tmlcpp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlcpp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(tmlcpp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlcpp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlcpp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(tmlcpp); + tmlcpp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(tmlcpp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + } else if (tdp instanceof TMLSDPanel) { + nl = doc.getElementsByTagName("TMLSDPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + TMLSDPanel tmlsdp = (TMLSDPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tmlsdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //tmlcpp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmlsdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(tmlsdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmlsdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmlsdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(tmlsdp); + tmlsdp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(tmlsdp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + } else if (tdp instanceof TMLArchiDiagramPanel) { + nl = doc.getElementsByTagName("TMLArchiDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + TMLArchiDiagramPanel tmadp = (TMLArchiDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tmadp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + tmadp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmadp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(tmadp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmadp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmadp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(tmadp); + tmadp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(tmadp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + } else if (tdp instanceof TURTLEOSClassDiagramPanel) { + nl = doc.getElementsByTagName("TURTLEOSClassDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + TURTLEOSClassDiagramPanel toscdp = (TURTLEOSClassDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (toscdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //toscdp.loadExtraParameters(elt); + //TraceManager.addDev("Toto 2"); + //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), toscdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(toscdp); + //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), toscdp); + //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), toscdp); + //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " real points"); + connectConnectorsToRealPoints(toscdp); + toscdp.structureChanged(); + //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading " + beginIndex); + makePostLoading(toscdp, beginIndex); + //TraceManager.addDev("TURTLEOS task diagram : " + toscdp.getName() + " post loading done"); + } + } + } else if (tdp instanceof TURTLEOSActivityDiagramPanel) { + nl = doc.getElementsByTagName("TURTLEOSActivityDiagramPanelCopy"); + + if (nl == null) { + return; + } + + TURTLEOSActivityDiagramPanel tosadp = (TURTLEOSActivityDiagramPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (tosadp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //tmladp.loadExtraParameters(elt); + + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tosadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tosadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tosadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(tosadp); + tosadp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(tosadp, beginIndex); + } + } + } else if (tdp instanceof ProactiveCSDPanel) { + //cuenta=beginIndex+1; + cuenta=mgui.tabs.size()-1; + nl = doc.getElementsByTagName("ProactiveCSDPanelCopy"); + if (nl.getLength()==0) + { + nl=doc.getElementsByTagName("ProactiveCSDPanel"); + } + docCopy = doc; + if (nl == null) + { + return; + } + ProactiveCSDPanel pcsdp = (ProactiveCSDPanel)tdp; + for(i=0; i<nl.getLength(); i++) + { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) + { + elt = (Element) adn; + if (pcsdp == null) + { + throw new MalformedModelingException(); + } + + + // int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //pcsdp.loadExtraParameters(elt); + //TraceManager.addDev("Toto 2"); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), pcsdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(pcsdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), pcsdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), pcsdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(pcsdp); + pcsdp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(pcsdp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + // Added by Solange + nl = doc.getElementsByTagName("ProactiveSMDPanel"); + if (nl == null) + { + return; + } + String name=""; + ProactiveSMDPanel psmdp; + for(i=0; i<nl.getLength(); i++) //Erased cuenta++ by Solange at the end condition of the for + { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) + { + elt = (Element) adn; + name=elt.getAttribute("name"); + //Added by Solange name at the beginning and cuenta + name=mgui.createProActiveSMD(cuenta,name); + psmdp=mgui.getSMDPanel(cuenta, name); + if (psmdp == null) + { + throw new MalformedModelingException(); + } + + // int xSel = Integer.decode(elt.getAttribute("minX")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("maxX")).intValue(); // - mgui.getCurrentTDiagramPanel().currentX; + // int widthSel = Integer.decode(elt.getAttribute("minY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;; + // int heightSel = Integer.decode(elt.getAttribute("maxY")).intValue(); // - mgui.getCurrentTDiagramPanel().currentY;; + + decX = _decX; + decY = _decY; + + //tmladp.loadExtraParameters(elt); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(psmdp); + psmdp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(psmdp, beginIndex); + //until here + } + } + } else if (tdp instanceof ProactiveSMDPanel) { + //Changed by Solange, before it was like the first line + //nl = doc.getElementsByTagName("ProactiveSMDPanelCopy"); + nl = doc.getElementsByTagName("ProactiveSMDPanelCopy"); + + if (nl == null) { + return; + } + + ProactiveSMDPanel psmdp = (ProactiveSMDPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (psmdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //tmladp.loadExtraParameters(elt); + + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), psmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), psmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), psmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(psmdp); + psmdp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(psmdp, beginIndex); + } + } + + // AVATAR + } else if (tdp instanceof AvatarBDPanel) { + nl = doc.getElementsByTagName("AVATARBlockDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + + AvatarBDPanel abdp = (AvatarBDPanel)tdp; + + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (abdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + abdp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), abdp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(abdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), abdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), abdp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(abdp); + abdp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(abdp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + + + } else if (tdp instanceof ADDDiagramPanel) { + nl = doc.getElementsByTagName("ADDDiagramPanelCopy"); + docCopy = doc; + + if (nl == null) { + return; + } + + //TraceManager.addDev("Toto 1"); + + + ADDDiagramPanel addp = (ADDDiagramPanel)tdp; + + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (addp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + addp.loadExtraParameters(elt); + + //TraceManager.addDev("Toto 2"); + + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), addp); + //TraceManager.addDev("Toto 3"); + makePostProcessing(addp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), addp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), addp); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " real points"); + connectConnectorsToRealPoints(addp); + addp.structureChanged(); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading " + beginIndex); + makePostLoading(addp, beginIndex); + //TraceManager.addDev("TML task diagram : " + tmltdp.getName() + " post loading done"); + } + } + + } else if (tdp instanceof AvatarSMDPanel) { + nl = doc.getElementsByTagName("AVATARStateMachineDiagramPanelCopy"); + + if (nl == null) { + return; + } + + AvatarSMDPanel asmdp = (AvatarSMDPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (asmdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + //tmladp.loadExtraParameters(elt); + + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(asmdp); + asmdp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(asmdp, beginIndex); + } + } + } else if (tdp instanceof AvatarRDPanel) { + nl = doc.getElementsByTagName("AvatarRDPanelCopy"); + + if (nl == null) { + return; + } + + AvatarRDPanel ardp = (AvatarRDPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (ardp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), ardp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), ardp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), ardp); + connectConnectorsToRealPoints(ardp); + ardp.structureChanged(); + makePostLoading(ardp, beginIndex); + } + } + + } else if (tdp instanceof AvatarMADPanel) { + nl = doc.getElementsByTagName("AvatarMADPanelCopy"); + + if (nl == null) { + return; + } + + AvatarMADPanel amadp = (AvatarMADPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (amadp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), amadp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), amadp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), amadp); + connectConnectorsToRealPoints(amadp); + amadp.structureChanged(); + makePostLoading(amadp, beginIndex); + } + } + + } else if (tdp instanceof AvatarPDPanel) { + nl = doc.getElementsByTagName("AvatarPDPanelCopy"); + + if (nl == null) { + return; + } + + AvatarPDPanel apdp = (AvatarPDPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (apdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), apdp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), apdp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), apdp); + connectConnectorsToRealPoints(apdp); + apdp.structureChanged(); + makePostLoading(apdp, beginIndex); + } + } + + } else if (tdp instanceof AvatarCDPanel) { + nl = doc.getElementsByTagName("AvatarCDPanelCopy"); + + if (nl == null) { + return; + } + + AvatarCDPanel acdp = (AvatarCDPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (acdp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), acdp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), acdp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), acdp); + connectConnectorsToRealPoints(acdp); + acdp.structureChanged(); + makePostLoading(acdp, beginIndex); + } + } + } else if (tdp instanceof AvatarADPanel) { + nl = doc.getElementsByTagName("AvatarADPanelCopy"); + + if (nl == null) { + return; + } + + AvatarADPanel aadp = (AvatarADPanel)tdp; + + for(i=0; i<nl.getLength(); i++) { + adn = nl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + + if (aadp == null) { + throw new MalformedModelingException(); + } + + //int xSel = Integer.decode(elt.getAttribute("xSel")).intValue(); + //int ySel = Integer.decode(elt.getAttribute("ySel")).intValue(); + //int widthSel = Integer.decode(elt.getAttribute("widthSel")).intValue(); + //int heightSel = Integer.decode(elt.getAttribute("heightSel")).intValue(); + + decX = _decX; + decY = _decY; + + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), aadp); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), aadp); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), aadp); + connectConnectorsToRealPoints(aadp); + aadp.structureChanged(); + makePostLoading(aadp, beginIndex); + } + } + } + + } catch (IOException e) { + TraceManager.addError("Loading 500: " + e.getMessage()); + throw new MalformedModelingException(); + } catch (SAXException saxe) { + TraceManager.addError("Loading 501 " + saxe.getMessage()); + throw new MalformedModelingException(); + } + } + + // Returns null if s is not a saved TURTLE modeling of an older format + public String upgradeSaved(String s) { + int index1, index2, index3; + StringBuffer sb = new StringBuffer("");; + //String tmp; + + index1 = s.indexOf("<TClassDiagramPanel"); + index2 = s.indexOf("<InteractionOverviewDiagramPanel "); + index3 = s.indexOf("</TURTLEGMODELING>"); + + if ((index1 <0) ||(index3 < 0)){ + return null; + } + + sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<TURTLEGMODELING version=\"" + DefaultText.getVersion() + "\">\n\n"); + + if (index2 > -1) { + sb.append("<Modeling type=\"Analysis\" nameTab=\"Analysis\" >\n"); + sb.append(s.substring(index2, index3)); + sb.append("</Modeling>\n\n"); + } + + if (index2 < 0) { + index2 = index3; + } + sb.append("<Modeling type=\"Design\" nameTab=\"Design\" >\n"); + sb.append(s.substring(index1, index2)); + sb.append("</Modeling>\n\n"); + + sb.append(s.substring(index3, s.length())); + + //TraceManager.addDev("Got:" + sb); + + return sb.toString(); + } + + public void loadModelingFromXML(String s) throws MalformedModelingException { + + if (s == null) { + return; + } + + s = decodeString(s); + + decX = 0; + decY = 0; + decId = 0; + TGComponent.setGeneralId(100000); + + ByteArrayInputStream bais = new ByteArrayInputStream(s.getBytes()); + + if ((dbf == null) || (db == null)) { + throw new MalformedModelingException(); + } + + try { + // building nodes from xml String + Document doc = db.parse(bais); + NodeList panelNl; + //NodeList designPanelNl; + //NodeList analysisNl; + + int i; + //Element elt; + Node node; + + // Managing design panels + panelNl = doc.getElementsByTagName("Modeling"); + + if (panelNl.getLength() == 0) { + // Modeling saved in old format? + s = upgradeSaved(s); + if (s != null) { + JOptionPane.showMessageDialog(mgui.frame, "The modeling has been converted to this new version of TTool", "Loading information", JOptionPane.INFORMATION_MESSAGE); + } + loadModelingFromXML(s); + return; + + } + //designPanelNl = doc.getElementsByTagName("Design"); + //analysisNl = doc.getElementsByTagName("Analysis"); + + pendingConnectors = new ArrayList<TGConnectorInfo>(); + + //TraceManager.addDev("nb de design=" + designPanelNl.getLength() + " nb d'analyse=" + analysisNl.getLength()); + boolean error = false; + for(i=0; i<panelNl.getLength(); i++) { + node = panelNl.item(i); + //TraceManager.addDev("Node = " + dnd); + + if (node.getNodeType() == Node.ELEMENT_NODE) { + // create design, and get an index for it + try { + loadModeling(node); + } catch (MalformedModelingException mme) { + Element elt = (Element) node; + String type = elt.getAttribute("type"); + TraceManager.addDev("Error when loading diagram: " + type); + error = true; + } + } + } + if (error == true) { + throw new MalformedModelingException(); + } + + } catch (NumberFormatException nfe) { + TraceManager.addError("Loading 400 " + nfe.getMessage()); + throw new MalformedModelingException(); + } catch (IOException e) { + TraceManager.addError("Loading 600 " + e.getMessage()); + throw new MalformedModelingException(); + } catch (SAXException saxe) { + TraceManager.addError("Loading 601 " + saxe.getMessage()); + throw new MalformedModelingException(); + } + //TraceManager.addDev("making IDs"); + makeLastLoad(); + makeLovelyIds(); + //TraceManager.addDev("IDs done"); + } + + public void loadModeling(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String type = elt.getAttribute("type"); + // AVATAR + if (type.compareTo("ADD") == 0) { + loadAvatarDeployment(node); + } else if (type.compareTo("AVATAR Design") == 0) { + loadAvatarDesign(node); + } else if (type.compareTo("Avatar Requirement") == 0) { + loadAvatarRequirement(node); + } else if (type.compareTo("Avatar MAD") == 0) { + loadAvatarMADs(node); + } else if (type.compareTo("Avatar Analysis") == 0) { + loadAvatarAnalysis(node); + + + // TURTLE + } else if (type.compareTo("Design") == 0) { + loadDesign(node); + } else if (type.compareTo("Analysis") == 0) { + loadAnalysis(node); + } else if (type.compareTo("Deployment") == 0) { + loadDeployment(node); + } else if (type.compareTo("NC diagram") == 0) { + loadNC(node); + } else if (type.compareTo("Requirement") == 0) { + loadRequirement(node); + } else if (type.compareTo("AttackTree") == 0) { + loadAttackTree(node); + } else if (type.compareTo("Diplodocus Methodology") == 0) { + loadDiplodocusMethodology(node); + } else if (type.compareTo("Avatar Methodology") == 0) { + loadAvatarMethodology(node); + } else if (type.compareTo("TML Design") == 0) { + loadTMLDesign(node); + } else if (type.compareTo("TML Component Design") == 0) { + loadTMLComponentDesign(node); + } else if (type.compareTo("TML CP") == 0) { + loadTMLCP(node); + } else if (type.compareTo("TML Architecture") == 0) { + loadTMLArchitecture(node); + } else if (type.compareTo("TURTLE-OS Design") == 0) { + loadTURTLEOSDesign(node); + } else if (type.compareTo("ProActive Design") == 0) { + loadProActiveDesign(node); + } else { + throw new MalformedModelingException(); + } + } + + public void loadAvatarDesign(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createAvatarDesign(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("AVATARBlockDiagramPanel") == 0) { + // Class diagram + loadAvatarBD(elt, indexDesign); + } else { // Managing activity diagrams + if (elt.getTagName().compareTo("AVATARStateMachineDiagramPanel") == 0) { + // Managing activity diagrams + loadAvatarSMD(elt, indexDesign); + } + } + } + } + } + + public void loadAvatarDeployment(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexReq; + int cpt_req = 0; + + TraceManager.addDev("Loading ADD 0"); + + nameTab = elt.getAttribute("nameTab"); + + indexReq = mgui.createADD(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Deployment nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("ADDDiagramPanel") == 0) { + TraceManager.addDev("Loading ADD 1"); + loadADDDiagram(elt, indexReq, cpt_req); + cpt_req ++; + } + } + } + } + + public void loadAvatarRequirement(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexReq; + int cpt_req = 0; + + + nameTab = elt.getAttribute("nameTab"); + + indexReq = mgui.createAvatarRequirement(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Deployment nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("AvatarRDPanel") == 0) { + loadAvatarRD(elt, indexReq, cpt_req); + cpt_req ++; + } else if (elt.getTagName().compareTo("AvatarPDPanel") == 0) { + loadAvatarPD(elt, indexReq, cpt_req); + cpt_req ++; + } + } + } + } + + public void loadAvatarMADs(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexReq; + int cpt_req = 0; + + + nameTab = elt.getAttribute("nameTab"); + + TraceManager.addDev("Creating MAD panel "); + + indexReq = mgui.createAvatarMADs(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + TraceManager.addDev("MADs nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("AvatarMADPanel") == 0) { + loadAvatarMAD(elt, indexReq, cpt_req); + cpt_req ++; + } + } + } + } + + public void loadDesign(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createDesign(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("TClassDiagramPanel") == 0) { + // Class diagram + loadTClassDiagram(elt, indexDesign); + } else { // Managing activity diagrams + if (elt.getTagName().compareTo("TActivityDiagramPanel") == 0) { + // Managing activity diagrams + loadTActivityDiagram(elt, indexDesign); + } + } + } + } + } + + public void loadAnalysis(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexAnalysis; + int cpt = 0; + + nameTab = elt.getAttribute("nameTab"); + + indexAnalysis = mgui.createAnalysis(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("InteractionOverviewDiagramPanel") == 0) { + // IOD + loadIODiagram(elt, indexAnalysis); + cpt ++; + } else { // Managing sequence diagrams + if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) { + loadSequenceDiagram(elt, indexAnalysis); + cpt ++; + } else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) { + // Managing use case diagrams + loadUseCaseDiagram(elt, indexAnalysis, cpt); + cpt ++; + } /*else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) { + // Managing use case diagrams + loadAvatarCD(elt, indexAnalysis, cpt); + cpt ++; + } else if (elt.getTagName().compareTo("AvatarADPanel") == 0) { + // Managing use case diagrams + loadAvatarAD(elt, indexAnalysis, cpt); + cpt ++; + }*/ + } + } + } + } + + public void loadTMLCP(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexTMLCP; + int cpt = 0; + + nameTab = elt.getAttribute("nameTab"); + + indexTMLCP = mgui.createTMLCP(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("CommunicationPatternDiagramPanel") == 0) { + // CP + loadTMLCPDiagram(elt, indexTMLCP); + cpt ++; + } else { // Managing sequence diagrams + if (elt.getTagName().compareTo("TMLSDPanel") == 0) { + loadTMLSDDiagram(elt, indexTMLCP); + cpt ++; + } + } + } + } + } + + public void loadAvatarAnalysis(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexAnalysis; + int cpt = 0; + + //TraceManager.addDev("Loading Avatar analysis"); + + nameTab = elt.getAttribute("nameTab"); + + indexAnalysis = mgui.createAvatarAnalysis(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + + if (elt.getTagName().compareTo("SequenceDiagramPanel") == 0) { + //TraceManager.addDev("Loading seq diag"); + loadSequenceDiagram(elt, indexAnalysis); + //TraceManager.addDev("Loading seq diag done"); + cpt ++; + } else if (elt.getTagName().compareTo("UseCaseDiagramPanel") == 0) { + // Managing use case diagrams + //TraceManager.addDev("Loading ucd diag"); + loadUseCaseDiagram(elt, indexAnalysis, cpt); + //TraceManager.addDev("Loading ucd diag done"); + + cpt ++; + } else if (elt.getTagName().compareTo("AvatarCDPanel") == 0) { + // Managing use case diagrams + //TraceManager.addDev("Loading cd diag"); + loadAvatarCD(elt, indexAnalysis, cpt); + //TraceManager.addDev("Loading cd diag done"); + cpt ++; + } else if (elt.getTagName().compareTo("AvatarADPanel") == 0) { + // Managing use case diagrams + //TraceManager.addDev("Loading ad diag"); + loadAvatarAD(elt, indexAnalysis, cpt); + //TraceManager.addDev("Loading ad diag done"); + cpt ++; + } + + } + } + } + + public void loadDeployment(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexAnalysis; + + + nameTab = elt.getAttribute("nameTab"); + + indexAnalysis = mgui.createDeployment(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Deployment nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("TDeploymentDiagramPanel") == 0) { + // IOD + loadTDeploymentDiagram(elt, indexAnalysis); + } + } + } + } + + public void loadNC(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexAnalysis; + + + nameTab = elt.getAttribute("nameTab"); + + indexAnalysis = mgui.createNC(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Deployment nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("NCDiagramPanel") == 0) { + // IOD + loadNCDiagram(elt, indexAnalysis); + } + } + } + } + + public void loadRequirement(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexReq; + int cpt_req = 0; + + + nameTab = elt.getAttribute("nameTab"); + + indexReq = mgui.createRequirement(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Deployment nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("TRequirementDiagramPanel") == 0) { + loadRequirementDiagram(elt, indexReq, cpt_req); + cpt_req ++; + } else if (elt.getTagName().compareTo("EBRDDPanel") == 0) { + loadEBRDD(elt, indexReq, cpt_req); + cpt_req ++; + } + } + } + } + + public void loadAttackTree(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexTree; + + nameTab = elt.getAttribute("nameTab"); + + indexTree = mgui.createAttackTree(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Deployment nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("AttackTreeDiagramPanel") == 0) { + loadAttackTreeDiagram(elt, indexTree); + } + } + } + } + + public void loadDiplodocusMethodology(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + - name = elt.getAttribute("name"); - mgui.createAvatarPD(indexAnalysis, name); + nameTab = elt.getAttribute("nameTab"); - TDiagramPanel tdp = mgui.getAvatarPDPanel(indexAnalysis, indexTab, name); + indexDesign = mgui.createDiplodocusMethodology(nameTab); - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); + diagramNl = node.getChildNodes(); - loadDiagram(elt, tdp); - } - - public void loadAvatarCD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("DiplodocusMethodologyDiagramPanel") == 0) { + // Class diagram + //TraceManager.addDev("Loading TML CD"); + loadDiplodocusMethodologyDiagram(elt, indexDesign); + //TraceManager.addDev("End loading TML CD"); + } + } + } + } + + public void loadAvatarMethodology(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createAvatarMethodology(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("AvatarMethodologyDiagramPanel") == 0) { + // Class diagram + //TraceManager.addDev("Loading TML CD"); + loadAvatarMethodologyDiagram(elt, indexDesign); + //TraceManager.addDev("End loading TML CD"); + } + } + } + } + + public void loadTMLDesign(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createTMLDesign(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("TMLTaskDiagramPanel") == 0) { + // Class diagram + //TraceManager.addDev("Loading TML CD"); + loadTMLTaskDiagram(elt, indexDesign); + //TraceManager.addDev("End loading TML CD"); + } else { // Managing activity diagrams + if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) { + // Managing activity diagrams + //TraceManager.addDev("Loading TML AD"); + loadTMLActivityDiagram(elt, indexDesign); + } + } + } + } + } + + public void loadTMLComponentDesign(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createTMLComponentDesign(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("TMLComponentTaskDiagramPanel") == 0) { + // Component diagram + //TraceManager.addDev("Loading TML Component diagram"); + loadTMLComponentTaskDiagram(elt, indexDesign); + //TraceManager.addDev("End loading TML CD"); + } else { // Managing activity diagrams + if (elt.getTagName().compareTo("TMLActivityDiagramPanel") == 0) { + // Managing activity diagrams + //TraceManager.addDev("Loading TML AD"); + loadTMLActivityDiagram(elt, indexDesign); + } + } + } + } + } + + public void loadTMLArchitecture(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createTMLArchitecture(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + TraceManager.addDev("TML Architecture nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("TMLArchiDiagramPanel") == 0) { + TraceManager.addDev("Loading TML DD" + elt.getTagName() ); + loadTMLArchitectureDiagram(elt, indexDesign); + TraceManager.addDev("End loading TML DD"); + } + } + } + } + + public void loadTURTLEOSDesign(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createTURTLEOSDesign(nameTab); + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("TURTLEOSClassDiagramPanel") == 0) { + // Class diagram + //TraceManager.addDev("Loading TURTLEOS CD"); + loadTURTLEOSClassDiagram(elt, indexDesign); + //TraceManager.addDev("End loading TML CD"); + } else { // Managing activity diagrams + if (elt.getTagName().compareTo("TURTLEOSActivityDiagramPanel") == 0) { + // Managing activity diagrams + //TraceManager.addDev("Loading TURTLEOS AD"); + loadTURTLEOSActivityDiagram(elt, indexDesign); + } + } + } + } + } + + public void loadProActiveDesign(Node node) throws MalformedModelingException, SAXException { + Element elt = (Element) node; + String nameTab; + NodeList diagramNl; + int indexDesign; + + + nameTab = elt.getAttribute("nameTab"); + + indexDesign = mgui.createProActiveDesign(nameTab); + + + diagramNl = node.getChildNodes(); + + for(int j=0; j<diagramNl.getLength(); j++) { + //TraceManager.addDev("Design nodes: " + j); + node = diagramNl.item(j); + if (node.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element)node; + if (elt.getTagName().compareTo("ProactiveCSDPanel") == 0) { + // Class diagram + //TraceManager.addDev("Loading TML CD"); + loadProactiveCSD(elt, indexDesign); + //TraceManager.addDev("End loading TML CD"); + } else { // Managing activity diagrams + if (elt.getTagName().compareTo("ProactiveSMDPanel") == 0) { + // Managing activity diagrams + //TraceManager.addDev("Loading TML AD"); + loadProactiveSMD(elt, indexDesign); + } + } + } + } + } + + public void loadDiagram(Element elt, TDiagramPanel tdp) throws MalformedModelingException, SAXException { + int x, y; + double zoom = 0; + try { + x = Integer.decode(elt.getAttribute("minX")).intValue(); + tdp.setMinX(x); + x = Integer.decode(elt.getAttribute("maxX")).intValue(); + tdp.setMaxX(x); + y = Integer.decode(elt.getAttribute("minY")).intValue(); + tdp.setMinY(y); + y = Integer.decode(elt.getAttribute("maxY")).intValue(); + tdp.setMaxY(y); + tdp.updateSize(); + zoom = Double.parseDouble(elt.getAttribute("zoom")); + if (zoom != 0) { + tdp.setZoom(zoom); + mgui.updateZoomInfo(); + } + } catch (Exception e) { + // Model was saved in an older version of TTool + } + + // for TClassdiagram Panel + if (tdp instanceof TClassDiagramPanel) { + ((TClassDiagramPanel)tdp).loadExtraParameters(elt); + } + + if (tdp instanceof TActivityDiagramPanel) { + ((TActivityDiagramPanel)tdp).loadExtraParameters(elt); + } + + if (tdp instanceof TMLTaskDiagramPanel) { + ((TMLTaskDiagramPanel)tdp).loadExtraParameters(elt); + } + + if (tdp instanceof TMLComponentTaskDiagramPanel) { + ((TMLComponentTaskDiagramPanel)tdp).loadExtraParameters(elt); + } + + if (tdp instanceof TMLArchiDiagramPanel) { + ((TMLArchiDiagramPanel)tdp).loadExtraParameters(elt); + } + + + if (tdp instanceof AvatarBDPanel) { + ((AvatarBDPanel)tdp).loadExtraParameters(elt); + } + + //TraceManager.addDev("Element" + elt.toString()); + // Loads components of the class diagram + //TraceManager.addDev("Components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tdp); + //TraceManager.addDev("Post processing"); + makePostProcessing(tdp); + //TraceManager.addDev("Connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tdp); + //TraceManager.addDev("Subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tdp); + //TraceManager.addDev("RealPoints"); + connectConnectorsToRealPoints(tdp); + //TraceManager.addDev("Structure changed"); + tdp.structureChanged(); + //TraceManager.addDev("Post loading"); + makePostLoading(tdp, 0); + + //TraceManager.addDev("Test connectors"); + if (tdp instanceof TMLComponentTaskDiagramPanel) { + //TraceManager.addDev("Connectors..."); + ((TMLComponentTaskDiagramPanel)tdp).setConnectorsToFront(); + } + + if (tdp instanceof EBRDDPanel) { + //TraceManager.addDev("Connectors..."); + ((EBRDDPanel)tdp).setConnectorsToFront(); + } + + if (tdp instanceof AttackTreeDiagramPanel) { + //TraceManager.addDev("Connectors..."); + ((AttackTreeDiagramPanel)tdp).setConnectorsToFront(); + } + + if (tdp instanceof AvatarBDPanel) { + //TraceManager.addDev("Connectors..."); + ((AvatarBDPanel)tdp).setConnectorsToFront(); + } + + if (tdp instanceof AvatarSMDPanel) { + //TraceManager.addDev("Connectors..."); + ((AvatarSMDPanel)tdp).setConnectorsToFront(); + } + + if (tdp instanceof AvatarPDPanel) { + //TraceManager.addDev("Connectors..."); + ((AvatarPDPanel)tdp).setConnectorsToFront(); + } + + if (tdp instanceof AvatarCDPanel) { + //TraceManager.addDev("Connectors..."); + ((AvatarCDPanel)tdp).setConnectorsToFront(); + } + + if (tdp instanceof AvatarADPanel) { + //TraceManager.addDev("Connectors..."); + ((AvatarADPanel)tdp).setConnectorsToFront(); + } + } + + // AVATAR + public void loadAvatarBD(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + + String name; + TDiagramPanel tdp; + + // class diagram name + name = elt.getAttribute("name"); + mgui.setAvatarBDName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); + + loadDiagram(elt, tdp); + } + + public void loadAvatarSMD(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + //TraceManager.addDev("Loading SMD of:" + name); + AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(indexDesign, name); + + if (asmdp == null) { + throw new MalformedModelingException(); + } + + asmdp.removeAll(); + + loadDiagram(elt, asmdp); + } + + public void loadAvatarRD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.createAvatarRD(indexAnalysis, name); + + + TDiagramPanel tdp = mgui.getAvatarRDPanel(indexAnalysis, indexTab, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } + + public void loadAvatarMAD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.createAvatarMAD(indexAnalysis, name); + + + TDiagramPanel tdp = mgui.getAvatarMADPanel(indexAnalysis, indexTab, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } + + public void loadADDDiagram(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + + TraceManager.addDev("ADD 2"); + mgui.createAvatarPD(indexAnalysis, name); + + TraceManager.addDev("ADD 3"); + TDiagramPanel tdp = mgui.getAvatarADDPanel(indexAnalysis, indexTab, name); + + TraceManager.addDev("ADD 3.1"); - name = elt.getAttribute("name"); - mgui.createAvatarCD(indexAnalysis, name); + if (tdp == null) { + TraceManager.addDev("ADD 3.2"); + throw new MalformedModelingException(); + } + tdp.removeAll(); + TraceManager.addDev("ADD 4"); - TDiagramPanel tdp = mgui.getAvatarCDPanel(indexAnalysis, indexTab, name); + loadDiagram(elt, tdp); + TraceManager.addDev("ADD 5"); + } + + public void loadAvatarPD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.createAvatarPD(indexAnalysis, name); + + TDiagramPanel tdp = mgui.getAvatarPDPanel(indexAnalysis, indexTab, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } + + public void loadAvatarCD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.createAvatarCD(indexAnalysis, name); + + TDiagramPanel tdp = mgui.getAvatarCDPanel(indexAnalysis, indexTab, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } + + public void loadAvatarAD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); + name = elt.getAttribute("name"); + mgui.createAvatarAD(indexAnalysis, name); - loadDiagram(elt, tdp); - } - - public void loadAvatarAD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; + TDiagramPanel tdp = mgui.getAvatarADPanel(indexAnalysis, indexTab, name); - name = elt.getAttribute("name"); - mgui.createAvatarAD(indexAnalysis, name); + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); - TDiagramPanel tdp = mgui.getAvatarADPanel(indexAnalysis, indexTab, name); + loadDiagram(elt, tdp); + } - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); + // TURTLE Design + public void loadTClassDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - loadDiagram(elt, tdp); - } + String name; + TDiagramPanel tdp; - // TURTLE Design - public void loadTClassDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + // class diagram name + name = elt.getAttribute("name"); + mgui.setClassDiagramName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); - String name; - TDiagramPanel tdp; + loadDiagram(elt, tdp); + } - // class diagram name - name = elt.getAttribute("name"); - mgui.setClassDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); + public void loadTActivityDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + String name; - loadDiagram(elt, tdp); - } + name = elt.getAttribute("name"); + TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(indexDesign, name); - public void loadTActivityDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - String name; + if (tadp == null) { + throw new MalformedModelingException(); + } - name = elt.getAttribute("name"); - TActivityDiagramPanel tadp = mgui.getActivityDiagramPanel(indexDesign, name); + tadp.removeAll(); - if (tadp == null) { - throw new MalformedModelingException(); - } + loadDiagram(elt, tadp); + } - tadp.removeAll(); + public void loadDiplodocusMethodologyDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - loadDiagram(elt, tadp); - } + String name; + TDiagramPanel tdp; - public void loadDiplodocusMethodologyDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + // Diagram name + name = elt.getAttribute("name"); + mgui.setDiplodocusMethodologyDiagramName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); + tdp.setName(name); - String name; - TDiagramPanel tdp; + TraceManager.addDev("tdp=" + tdp.getName()); - // Diagram name - name = elt.getAttribute("name"); - mgui.setDiplodocusMethodologyDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); - tdp.setName(name); + loadDiagram(elt, tdp); + } - TraceManager.addDev("tdp=" + tdp.getName()); + public void loadAvatarMethodologyDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - loadDiagram(elt, tdp); - } - - public void loadAvatarMethodologyDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + String name; + TDiagramPanel tdp; - String name; - TDiagramPanel tdp; + // class diagram name + name = elt.getAttribute("name"); + mgui.setAvatarMethodologyDiagramName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); + tdp.setName(name); - // class diagram name - name = elt.getAttribute("name"); - mgui.setAvatarMethodologyDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); - tdp.setName(name); + //TraceManager.addDev("tdp=" + tdp.getName()); - //TraceManager.addDev("tdp=" + tdp.getName()); + loadDiagram(elt, tdp); + } - loadDiagram(elt, tdp); - } - - public void loadTMLTaskDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + public void loadTMLTaskDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - String name; - TDiagramPanel tdp; + String name; + TDiagramPanel tdp; - // class diagram name - name = elt.getAttribute("name"); - mgui.setTMLTaskDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); + // class diagram name + name = elt.getAttribute("name"); + mgui.setTMLTaskDiagramName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); - //TraceManager.addDev("tdp=" + tdp.getName()); + //TraceManager.addDev("tdp=" + tdp.getName()); - loadDiagram(elt, tdp); - } - - public void loadTMLComponentTaskDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + loadDiagram(elt, tdp); + } - String name; - TDiagramPanel tdp; + public void loadTMLComponentTaskDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - // Diagram name - name = elt.getAttribute("name"); - mgui.setTMLComponentTaskDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); + String name; + TDiagramPanel tdp; - //TraceManager.addDev("tdp=" + tdp.getName()); + // Diagram name + name = elt.getAttribute("name"); + mgui.setTMLComponentTaskDiagramName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); - loadDiagram(elt, tdp); - - ((TMLComponentTaskDiagramPanel)tdp).hideConnectors(); - ((TMLComponentTaskDiagramPanel)tdp).updatePorts(); - } - - public void loadTMLArchitectureDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + //TraceManager.addDev("tdp=" + tdp.getName()); - String name; - TDiagramPanel tdp; + loadDiagram(elt, tdp); - // Diagram name - name = elt.getAttribute("name"); - mgui.setTMLArchitectureDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); + ((TMLComponentTaskDiagramPanel)tdp).hideConnectors(); + ((TMLComponentTaskDiagramPanel)tdp).updatePorts(); + } - //TraceManager.addDev("tdp=" + tdp.getName()); + public void loadTMLArchitectureDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - loadDiagram(elt, tdp); - } + String name; + TDiagramPanel tdp; - public void loadTMLActivityDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - String name; + // Diagram name + name = elt.getAttribute("name"); + mgui.setTMLArchitectureDiagramName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); - name = elt.getAttribute("name"); - - //TraceManager.addDev("getting tmladp: " + name); - TMLActivityDiagramPanel tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, name); - //TraceManager.addDev("Got tmladp"); - - - if (tmladp == null) { - //TraceManager.addDev("null tmladp"); - throw new MalformedModelingException(); - } + //TraceManager.addDev("tdp=" + tdp.getName()); - tmladp.removeAll(); + loadDiagram(elt, tdp); + } - loadDiagram(elt, tmladp); - } + public void loadTMLActivityDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + String name; - public void loadTURTLEOSClassDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + name = elt.getAttribute("name"); - String name; - TDiagramPanel tdp; + //TraceManager.addDev("getting tmladp: " + name); + TMLActivityDiagramPanel tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, name); + //TraceManager.addDev("Got tmladp"); - // class diagram name - name = elt.getAttribute("name"); - mgui.setTMLTaskDiagramName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); - loadDiagram(elt, tdp); - } - public void loadTURTLEOSActivityDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - String name; + if (tmladp == null) { + //TraceManager.addDev("null tmladp"); + throw new MalformedModelingException(); + } - name = elt.getAttribute("name"); - TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(indexDesign, name); + tmladp.removeAll(); - if (tosadp == null) { - throw new MalformedModelingException(); - } + loadDiagram(elt, tmladp); + } - tosadp.removeAll(); + public void loadTURTLEOSClassDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - loadDiagram(elt, tosadp); - } + String name; + TDiagramPanel tdp; - public void loadProactiveCSD(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + // class diagram name + name = elt.getAttribute("name"); + mgui.setTMLTaskDiagramName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); + loadDiagram(elt, tdp); + } - String name; - TDiagramPanel tdp; + public void loadTURTLEOSActivityDiagram(Element elt, int indexDesign) throws MalformedModelingException, SAXException { + String name; - // class diagram name - name = elt.getAttribute("name"); - // mgui.setProacticeCSDName(indexDesign, name); - tdp = mgui.getMainTDiagramPanel(indexDesign); - //ProactiveDesignPanel pdp=(ProactiveDesignPanel) mgui.getCurrentTURTLEPanel(); - ProactiveDesignPanel pdp=(ProactiveDesignPanel) tdp.tp; - if (!tdp.getName().equals(name)) - { + name = elt.getAttribute("name"); + TURTLEOSActivityDiagramPanel tosadp = mgui.getTURTLEOSActivityDiagramPanel(indexDesign, name); - //tdp=pdp.addCompositeStructureDiagram(name); - tdp=pdp.addProActiveCompSpecificationPanel(name); - } + if (tosadp == null) { + throw new MalformedModelingException(); + } - //TraceManager.addDev("tdp=" + tdp.getName()); + tosadp.removeAll(); - loadDiagram(elt, tdp); + loadDiagram(elt, tosadp); + } - } + public void loadProactiveCSD(Element elt, int indexDesign) throws MalformedModelingException, SAXException { - public void loadProactiveSMD(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { - String name; + String name; + TDiagramPanel tdp; - name = elt.getAttribute("name"); - if (!(mgui.isProActiveSMDCreated(indexAnalysis, name))) { - mgui.createProActiveSMD(indexAnalysis, name); - } - ProactiveSMDPanel smd = mgui.getSMDPanel(indexAnalysis, name); + // class diagram name + name = elt.getAttribute("name"); + // mgui.setProacticeCSDName(indexDesign, name); + tdp = mgui.getMainTDiagramPanel(indexDesign); + //ProactiveDesignPanel pdp=(ProactiveDesignPanel) mgui.getCurrentTURTLEPanel(); + ProactiveDesignPanel pdp=(ProactiveDesignPanel) tdp.tp; + if (!tdp.getName().equals(name)) + { - if (smd == null) { - throw new MalformedModelingException(); - } + //tdp=pdp.addCompositeStructureDiagram(name); + tdp=pdp.addProActiveCompSpecificationPanel(name); + } - smd.removeAll(); + //TraceManager.addDev("tdp=" + tdp.getName()); - loadDiagram(elt, smd); - } + loadDiagram(elt, tdp); - public void loadIODiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { - String name; + } - name = elt.getAttribute("name"); - //mgui.setIODName(indexAnalysis, name); - if (!(mgui.isIODCreated(indexAnalysis, name))) { - mgui.createIODiagram(indexAnalysis, name); - } + public void loadProactiveSMD(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { + String name; - TDiagramPanel tdp = mgui.getIODiagramPanel(indexAnalysis, name); + name = elt.getAttribute("name"); + if (!(mgui.isProActiveSMDCreated(indexAnalysis, name))) { + mgui.createProActiveSMD(indexAnalysis, name); + } + ProactiveSMDPanel smd = mgui.getSMDPanel(indexAnalysis, name); - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); + if (smd == null) { + throw new MalformedModelingException(); + } - loadDiagram(elt, tdp); - } - - public void loadTMLCPDiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { - String name; + smd.removeAll(); - name = elt.getAttribute("name"); - if (!(mgui.isTMLCPCreated(indexAnalysis, name))) { - mgui.createTMLCPDiagram(indexAnalysis, name); - } + loadDiagram(elt, smd); + } - TDiagramPanel tdp = mgui.getTMLCPDiagramPanel(indexAnalysis, name); + public void loadIODiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { + String name; - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); + name = elt.getAttribute("name"); + //mgui.setIODName(indexAnalysis, name); + if (!(mgui.isIODCreated(indexAnalysis, name))) { + mgui.createIODiagram(indexAnalysis, name); + } - loadDiagram(elt, tdp); - } - - public void loadTMLSDDiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { - String name; + TDiagramPanel tdp = mgui.getIODiagramPanel(indexAnalysis, name); - name = elt.getAttribute("name"); - if (!(mgui.isTMLCPSDCreated(indexAnalysis, name))) { - mgui.createTMLCPSequenceDiagram(indexAnalysis, name); - } + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); - TDiagramPanel tdp = mgui.getTMLCPSDDiagramPanel(indexAnalysis, name); + loadDiagram(elt, tdp); + } - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); + public void loadTMLCPDiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { + String name; - loadDiagram(elt, tdp); - } + name = elt.getAttribute("name"); + if (!(mgui.isTMLCPCreated(indexAnalysis, name))) { + mgui.createTMLCPDiagram(indexAnalysis, name); + } - public void loadRequirementDiagram(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; + TDiagramPanel tdp = mgui.getTMLCPDiagramPanel(indexAnalysis, name); - name = elt.getAttribute("name"); - mgui.createRequirementDiagram(indexAnalysis, name); + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + loadDiagram(elt, tdp); + } + + public void loadTMLSDDiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + if (!(mgui.isTMLCPSDCreated(indexAnalysis, name))) { + mgui.createTMLCPSequenceDiagram(indexAnalysis, name); + } + + TDiagramPanel tdp = mgui.getTMLCPSDDiagramPanel(indexAnalysis, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } + + public void loadRequirementDiagram(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.createRequirementDiagram(indexAnalysis, name); + + + TDiagramPanel tdp = mgui.getRequirementDiagramPanel(indexAnalysis, indexTab, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } + + public void loadEBRDD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.createEBRDD(indexAnalysis, name); + + + TDiagramPanel tdp = mgui.getEBRDDPanel(indexAnalysis, indexTab, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } + + public void loadAttackTreeDiagram(Element elt, int indexDiag) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.createAttackTreeDiagram(indexDiag, name); + + TDiagramPanel tdp = mgui.getAttackTreeDiagramPanel(indexDiag, name); + + if (tdp == null) { + throw new MalformedModelingException(); + } + tdp.removeAll(); + + loadDiagram(elt, tdp); + } - TDiagramPanel tdp = mgui.getRequirementDiagramPanel(indexAnalysis, indexTab, name); + public void loadSequenceDiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { + String name; - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); + name = elt.getAttribute("name"); + if (!(mgui.isSDCreated(indexAnalysis, name))) { + mgui.createSequenceDiagram(indexAnalysis, name); + } + //TraceManager.addDev("Loading seq diag1"); + SequenceDiagramPanel sdp = mgui.getSequenceDiagramPanel(indexAnalysis, name); + //TraceManager.addDev("Loading seq diag2"); - loadDiagram(elt, tdp); - } - - public void loadEBRDD(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; + if (sdp == null) { + throw new MalformedModelingException(); + } + //TraceManager.addDev("Loading seq diag3"); - name = elt.getAttribute("name"); - mgui.createEBRDD(indexAnalysis, name); + sdp.removeAll(); + //TraceManager.addDev("Loading seq diag4"); - - TDiagramPanel tdp = mgui.getEBRDDPanel(indexAnalysis, indexTab, name); - - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); - - loadDiagram(elt, tdp); - } - - public void loadAttackTreeDiagram(Element elt, int indexDiag) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - mgui.createAttackTreeDiagram(indexDiag, name); - - TDiagramPanel tdp = mgui.getAttackTreeDiagramPanel(indexDiag, name); - - if (tdp == null) { - throw new MalformedModelingException(); - } - tdp.removeAll(); - - loadDiagram(elt, tdp); - } - - public void loadSequenceDiagram(Element elt, int indexAnalysis) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - if (!(mgui.isSDCreated(indexAnalysis, name))) { - mgui.createSequenceDiagram(indexAnalysis, name); - } - //TraceManager.addDev("Loading seq diag1"); - SequenceDiagramPanel sdp = mgui.getSequenceDiagramPanel(indexAnalysis, name); - //TraceManager.addDev("Loading seq diag2"); - - if (sdp == null) { - throw new MalformedModelingException(); - } - //TraceManager.addDev("Loading seq diag3"); - - sdp.removeAll(); - //TraceManager.addDev("Loading seq diag4"); - - loadDiagram(elt, sdp); - //TraceManager.addDev("Loading seq diag5"); - } - - public void loadUseCaseDiagram(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - /*if (!(mgui.isUCDCreated(indexAnalysis, name))) {*/ - mgui.createUseCaseDiagram(indexAnalysis, name); - //} - UseCaseDiagramPanel ucdp = mgui.getUseCaseDiagramPanel(indexAnalysis, indexTab, name); - - if (ucdp == null) { - throw new MalformedModelingException(); - } - - ucdp.removeAll(); - - loadDiagram(elt, ucdp); - } - - public void loadTDeploymentDiagram(Element elt, int indexDeployment) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - mgui.setDeploymentName(indexDeployment, name); - TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexDeployment); - - loadDiagram(elt, tdp); - } - - public void loadNCDiagram(Element elt, int indexNC) throws MalformedModelingException, SAXException { - String name; - - name = elt.getAttribute("name"); - mgui.setNCName(indexNC, name); - TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexNC); - - loadDiagram(elt, tdp); - } - - // reinit the id of all components - public void makeLovelyIds() { - TDiagramPanel tdp; - int id = 1; - int i, j; - TURTLEPanel tp; - // search for diagram panels - for(i=0; i<panels.size(); i++) { - tp = (TURTLEPanel)(panels.elementAt(i)); - for(j=0; j<tp.panels.size(); j++) { - tdp = (TDiagramPanel)(tp.panels.elementAt(j)); - id = tdp.makeLovelyIds(id); - //TraceManager.addDev("Lovely id =" + id); - } - } - - TGComponent.setGeneralId(id + 1); - } - - public void loadDiagramInformation(Element elt, TDiagramPanel tdp) throws MalformedModelingException { - int x, y; - double zoom = 0; - try { - x = Integer.decode(elt.getAttribute("minX")).intValue(); - tdp.setMinX(x); - x = Integer.decode(elt.getAttribute("maxX")).intValue(); - tdp.setMaxX(x); - y = Integer.decode(elt.getAttribute("minY")).intValue(); - tdp.setMinY(y); - y = Integer.decode(elt.getAttribute("maxY")).intValue(); - tdp.setMaxY(y); - tdp.updateSize(); - zoom = Double.parseDouble(elt.getAttribute("zoom")); - if (zoom != 0) { - tdp.setZoom(zoom); - mgui.updateZoomInfo(); - } - } catch (Exception e) { - // Model was saved in an older version of TTool - } - - if (tdp instanceof TActivityDiagramPanel) { - ((TActivityDiagramPanel)tdp).loadExtraParameters(elt); - } - } - - public void loadActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException { - //TraceManager.addDev("---> Load activity diagram"); - try { - NodeList activityDiagramNl = docCopy.getElementsByTagName("TActivityDiagramPanel"); - - TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue); - TraceManager.addDev(""+docCopy); - - if (activityDiagramNl == null) { - throw new MalformedModelingException(); - } - - Node adn; - Element elt; - TActivityDiagramPanel tadp; - String name; - int decXTmp = decX; - int decYTmp = decY; - int decIdTmp = decId; - - for(int i=0; i<activityDiagramNl.getLength(); i++) { - adn = activityDiagramNl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - // class diagram name - name = elt.getAttribute("name"); - //TraceManager.addDev("Name of activity diagram=" + name); - - if (name.equals(oldValue)) { - int indexDesign = mgui.getMajorIndexOf(tdp); - - if (indexDesign < 0) { - throw new MalformedModelingException(); - } - - tadp = mgui.getActivityDiagramPanel(indexDesign, newValue); - - //TraceManager.addDev("Searching panel"); - - if (tadp == null) { - throw new MalformedModelingException(); - } - - //TraceManager.addDev("Panel ok"); - - decX = 0; decY = 0; decId = 0; - - - - tadp.removeAll(); - - loadDiagramInformation(elt, tadp); - - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(tadp); - tadp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(tadp, 0); - } - } - } - decX = decXTmp; - decY = decYTmp; - decId = decIdTmp; - } catch (SAXException saxe) { - TraceManager.addError("Loading 701 " + saxe.getMessage()); - throw new MalformedModelingException(); - } - } - - public void loadAvatarSMD(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException { - TraceManager.addDev("---> Load activity diagram of old=" + oldValue + " new=" + newValue); - try { - NodeList smdNl = docCopy.getElementsByTagName("AVATARStateMachineDiagramPanel"); - - //TraceManager.addDev("Loading state machine diagram of " + newValue + " Before : " + oldValue); - //TraceManager.addDev("smdNL: " + smdNl); - - if (smdNl == null) { - TraceManager.addDev("AVATAR: null doc"); - throw new MalformedModelingException(); - } - - Node adn; - Element elt; - AvatarSMDPanel asmdp; - String name; - int decXTmp = decX; - int decYTmp = decY; - int decIdTmp = decId; - - for(int i=0; i<smdNl.getLength(); i++) { - adn = smdNl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - // class diagram name - name = elt.getAttribute("name"); - TraceManager.addDev("Name of activity diagram=" + name); - - if (name.equals(oldValue)) { - int indexDesign = mgui.getMajorIndexOf(tdp); - - if (indexDesign < 0) { - throw new MalformedModelingException(); - } - - asmdp = mgui.getAvatarSMDPanel(indexDesign, newValue); - - TraceManager.addDev("Searching panel: " + newValue); - - if (asmdp == null) { - throw new MalformedModelingException(); - } - - TraceManager.addDev("Panel ok"); - - decX = 0; decY = 0; decId = 0; - - - asmdp.removeAll(); - - loadDiagramInformation(elt, asmdp); - - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); - connectConnectorsToRealPoints(asmdp); - asmdp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); - makePostLoading(asmdp, 0); - } - } - } - decX = decXTmp; - decY = decYTmp; - decId = decIdTmp; - } catch (SAXException saxe) { - TraceManager.addError("Loading 801 " + saxe.getMessage()); - throw new MalformedModelingException(); - } - } - - public void loadTMLActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException { - //TraceManager.addDev("---> Load TML activity diagram"); - try { - if (docCopy == null) { - TraceManager.addDev("Null doc copy"); - } - NodeList activityDiagramNl = docCopy.getElementsByTagName("TMLActivityDiagramPanel"); - - //TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue); - - if (activityDiagramNl == null) { - //TraceManager.addDev("Null"); - throw new MalformedModelingException(); - } - - Node adn; - Element elt; - TMLActivityDiagramPanel tmladp; - String name; - int decXTmp = decX; - int decYTmp = decY; - int decIdTmp = decId; - - for(int i=0; i<activityDiagramNl.getLength(); i++) { - adn = activityDiagramNl.item(i); - if (adn.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) adn; - // class diagram name - name = elt.getAttribute("name"); - //TraceManager.addDev("Name of activity diagram=" + name); - - if (name.equals(oldValue)) { - int indexDesign = mgui.getMajorIndexOf(tdp); - - if (indexDesign < 0) { - throw new MalformedModelingException(); - } - - tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, newValue); - - //TraceManager.addDev("Searching panel"); - - if (tmladp == null) { - throw new MalformedModelingException(); - } - - //TraceManager.addDev("Panel ok"); - - decX = 0; decY = 0; decId = 0; - - tmladp.removeAll(); - - loadDiagramInformation(elt, tmladp); - - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components"); - makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors"); - makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents"); - makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " real points"); - connectConnectorsToRealPoints(tmladp); - tmladp.structureChanged(); - //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " post loading"); - makePostLoading(tmladp, 0); - } - } - } - decX = decXTmp; - decY = decYTmp; - decId = decIdTmp; - } catch (SAXException saxe) { - TraceManager.addError("Loading 901 " + saxe.getMessage()); - throw new MalformedModelingException(); - } - } - - public void makePostLoading(TDiagramPanel tdp, int beginIndex) throws MalformedModelingException{ - TGComponent tgc; - - //TraceManager.addDev("Post loading of diagram " + tdp.toString()); - - LinkedList list = tdp.getComponentList(); - - for(int i=0; i<list.size()-beginIndex; i++) { - tgc = (TGComponent)(list.get(i)); - //TraceManager.addDev(tgc.getName()); - //TraceManager.addDev(tgc.getValue()); - tgc.makePostLoading(decId); - } - - //TraceManager.addDev("Post loading of diagram " + tdp.toString() + " achieved"); - } - - public void makeXMLComponents(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException { - Node n; - //Element elt; - TGComponent tgc; - - if (tdp == null) { - throw new MalformedModelingException(); - } - boolean error = false; - - for(int i=0; i<nl.getLength(); i++) { - n = nl.item(i); - if (n.getNodeType() == Node.ELEMENT_NODE) { - try { - tgc = makeXMLComponent(n, tdp); - //TraceManager.addDev("About to add component= " + tgc); - if ((tgc != null) && (tgc.getFather() == null)) { - //TraceManager.addDev("Component added to diagram tgc=" + tgc); - tdp.addBuiltComponent(tgc); - } else { - //TraceManager.addDev("Component not added to diagram"); - } - } catch (MalformedModelingException mme) { - error = true; - } - } - } - - if (error) { - throw new MalformedModelingException(); - } - } - - - public TGComponent makeXMLComponent(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException { - Element elt; - Element elt1; - //TraceManager.addDev(n.toString()); - TGComponent tgc = null; - TGComponent father; - - // - try { - - NodeList nl = n.getChildNodes(); - elt = (Element)n; - elt1 = elt; - //TraceManager.addDev("elt=" + elt); - - int myType = Integer.decode(elt.getAttribute("type")).intValue(); - int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId; - - int myX = -1, myY = -1, myWidth = -1, myHeight =-1; - int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1; - int myMinX = -1, myMaxX = -1, myMinY = -1, myMaxY = -1; - String myName = null, myValue = null; - Vector tgcpList = new Vector(); - Point p; - int i, x, y; - int fatherId = -1, fatherNum = -1; - String pre = "", post = ""; - String internalComment = ""; - boolean accessibility = false; - boolean invariant = false; - boolean breakpoint = false; - boolean hidden = false; - boolean masterMutex = false; - - for(i=0; i<nl.getLength(); i++) { - n = nl.item(i); - if (n.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) n; - if (elt.getTagName().equals("cdparam")) { - myX = Integer.decode(elt.getAttribute("x")).intValue() + decX; - myY = Integer.decode(elt.getAttribute("y")).intValue() + decY; - } else if (elt.getTagName().equals("sizeparam")) { - myWidth = Integer.decode(elt.getAttribute("width")).intValue(); - myHeight = Integer.decode(elt.getAttribute("height")).intValue(); - myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue(); - myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue(); - myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue(); - myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue(); - } else if (elt.getTagName().equals("cdrectangleparam")) { - myMinX = Integer.decode(elt.getAttribute("minX")).intValue(); - myMaxX = Integer.decode(elt.getAttribute("maxX")).intValue(); - myMinY = Integer.decode(elt.getAttribute("minY")).intValue(); - myMaxY = Integer.decode(elt.getAttribute("maxY")).intValue(); - } else if (elt.getTagName().equals("infoparam")) { - myName = elt.getAttribute("name"); - myValue = elt.getAttribute("value"); - } else if (elt.getTagName().equals("hidden")) { - hidden = elt.getAttribute("value").equals("true"); - } else if (elt.getTagName().equals("TGConnectingPoint")) { - x = Integer.decode(elt.getAttribute("num")).intValue(); - y = Integer.decode(elt.getAttribute("id")).intValue() + decId; - tgcpList.add(new Point(x, y)); - } else if (elt.getTagName().equals("father")) { - fatherId = Integer.decode(elt.getAttribute("id")).intValue(); - fatherNum = Integer.decode(elt.getAttribute("num")).intValue(); - } else if (elt.getTagName().equals("prejavacode")) { - pre += elt.getAttribute("value") + "\n"; - } else if (elt.getTagName().equals("postjavacode")) { - post += elt.getAttribute("value") + "\n"; - } else if (elt.getTagName().equals("InternalComment")) { - internalComment += elt.getAttribute("value") + "\n"; - } else if (elt.getTagName().equals("accessibility")) { - accessibility = true; - } else if (elt.getTagName().equals("invariant")) { - invariant = true; - } else if (elt.getTagName().equals("mastermutex")) { - masterMutex = true; - } else if (elt.getTagName().equals("breakpoint")) { - breakpoint = true; - } - } - } - - if ((myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1)) { - throw new MalformedModelingException(); - } - - //TraceManager.addDev("Making TGComponent of type " + myType + " and of name " + myName); - //TGComponent is ready to be built - if(fatherId != -1) { - fatherId += decId; - // internal component - //TraceManager.addDev("I am " + myName); - //TraceManager.addDev("Searching for component with id " + fatherId); - father = tdp.findComponentWithId(fatherId); - if (father == null) { - throw new MalformedModelingException(); - } - - //TraceManager.addDev("Done"); - //TraceManager.addDev("Father My value is " + father.getValue()); - //TraceManager.addDev("My class is " + father.getClass()); - - //TraceManager.addDev("Searching for component " + fatherNum + " at " + tgc.getName()); - tgc = father.getInternalTGComponent(fatherNum); - - if (tgc == null) { - // To be added to its father -> swallow component - if (father instanceof SwallowTGComponent) { - //TraceManager.addDev("1 Must add the component to its father:"); - tgc = TGComponentManager.addComponent(myX, myY, myType, tdp); - //TraceManager.addDev("2 Must add the component to its father:" + tgc); - if (tgc instanceof SwallowedTGComponent) { - //TraceManager.addDev("3 Must add the component to its father:"); - ((SwallowTGComponent)father).addSwallowedTGComponent(tgc, myX, myY); - //TraceManager.addDev("Swallowed to father = " + father.getValue() + ". My name=" + myName + " decId=" + decId); - } else { - throw new MalformedModelingException(); - } - } else { - throw new MalformedModelingException(); - } - } - - if (tgc != null) { - tgc.setCdRectangle(myMinX, myMaxX, myMinY, myMaxY); - tgc.setCd(myX, myY); - //TraceManager.addDev("set cd of " + tgc.getName()); - } - } else { - tgc = TGComponentManager.addComponent(myX, myY, myType, tdp); - } - //TraceManager.addDev("TGComponent built " + myType); - - if (tgc == null) { - throw new MalformedModelingException(); - } - - if (myName != null) { - tgc.setName(myName); - } - - tgc.setHidden(hidden); - - /*if (tgc instanceof TCDTObject) { - TraceManager.addDev("Loading " + myValue); - }*/ - - String oldClassName = myValue; - //TraceManager.addDev("Old class name=" + oldClassName); - //Added by Solange - if ((myValue != null) && (!myValue.equals(null))){ - if (tgc instanceof ProCSDComponent) - { - //Added by Solange - //And removed by emil - //myValue=generateNameIfInUse(myValue); - // tgc.setValueWithChange(myValue); - //TraceManager.addDev("myValue=" + myValue); - } - //until here - if ((tgc instanceof TCDTClass) && (decId >0)){ - if (tdp.isAlreadyATClassName(myValue)) { - myValue = tdp.findTClassName(myValue+"_"); - } - } - if ((tgc instanceof TMLTaskOperator) && (decId >0)){ - if (tdp.isAlreadyATMLTaskName(myValue)) { - myValue = tdp.findTMLTaskName(myValue+"_"); - } - } - - if ((tgc instanceof AvatarBDBlock) && (decId >0)){ - if (tdp.isAlreadyAnAvatarBDBlockName(myValue)) { - myValue = tdp.findAvatarBDBlockName(myValue+"_"); - } - } - - if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){ - if (tdp.isAlreadyATMLPrimitiveComponentName(myValue)) { - myValue = tdp.findTMLPrimitiveComponentName(myValue+"_"); - } - //TraceManager.addDev("MyValue=" + myValue); - } - if ((tgc instanceof TOSClass) && (decId >0)){ - if (tdp.isAlreadyATOSClassName(myValue)) { - myValue = tdp.findTOSClassName(myValue+"_"); - } - } - //TraceManager.addDev("myValue=" + myValue); - tgc.setValueWithChange(myValue); - //TraceManager.addDev("value done"); - if ((tgc instanceof TCDTClass) && (decId >0)){ - loadActivityDiagram(tdp, oldClassName, myValue); - } - - if ((tgc instanceof AvatarBDBlock) && (decId >0)){ - //TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue); - loadAvatarSMD(tdp, oldClassName, myValue); - } - - if ((tgc instanceof TMLTaskOperator) && (decId >0)){ - //TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue); - loadTMLActivityDiagram(tdp, oldClassName, myValue); - } - - if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){ - //TraceManager.addDev("Going to load ad of component " + oldClassName + " myValue=" + myValue); - loadTMLActivityDiagram(tdp, oldClassName, myValue); - } - } - - tgc.forceId(myId); - tgc.setLoaded(true); - tgc.setInternalLoaded(false); - tgc.setMinSize(myMinWidth, myMinHeight); - tgc.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight); - tgc.resize(myWidth, myHeight); - tgc.hasBeenResized(); - - //TraceManager.addDev("Options set"); - - if (pre.compareTo("") != 0) { - tgc.setPreJavaCode(pre); - } - if (post.compareTo("") != 0) { - tgc.setPostJavaCode(post); - } - - if (internalComment.compareTo("") != 0) { - tgc.setInternalComment(internalComment); - } - - if (accessibility) { - tgc.setCheckableAccessibility(accessibility); - - } - - if (invariant) { - tgc.setCheckableInvariant(invariant); - } - - if (masterMutex) { - tgc.setMasterMutex(true); - } - - if (breakpoint) { - tgc.setBreakpoint(breakpoint); - } - - //extra param - //TraceManager.addDev("Extra params" + tgc.getClass()); - //TraceManager.addDev("My value = " + tgc.getValue()); - tgc.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId); - //TraceManager.addDev("Extra param ok"); - - if ((tgc instanceof TCDTObject) && (decId > 0)) { - TCDTObject to = (TCDTObject)tgc; - //TraceManager.addDev("Setting TObject name to: " + to.getObjectName()); - //TraceManager.addDev("Setting TObject name to: " + tdp.findTObjectName(to.getObjectName())); - to.setObjectName(tdp.findTObjectName(to.getObjectName())); - } - - //TraceManager.addDev(tgc.toString()); - - //TraceManager.addDev("Making connecting points " + tgcpList.size()); - for(i=0; i<tgcpList.size(); i++) { - p = (Point)(tgcpList.elementAt(i)); - if (!tgc.setIdTGConnectingPoint(p.x, p.y)) { - //TraceManager.addDev("Warning: a connecting point has been removed"); - //throw new MalformedModelingException(); - } - } - - //TraceManager.addDev("Not yet except!"); - if (decId >0) { - tdp.bringToFront(tgc); - } - //TraceManager.addDev("Connecting points done " + myType); - - /*if (tgc instanceof TCDTObject) { - TraceManager.addDev("getValue " + tgc.getValue()); - }*/ - - } catch (Exception e) { - TraceManager.addError("Exception XML Component "/* + e.getMessage() + "trace=" + e.getStackTrace()*/); - throw new MalformedModelingException(); - } - return tgc; - } - - //method added by Solange - - public String generateNameIfInUse(String myName) - { - if (!(mgui.getCurrentTURTLEPanel().nameInUse(myName))) - { - return myName; - } - - String other; - for(int w=0; w<100000; w++) - { - other = myName + "_" + w; - if (!(mgui.getCurrentTURTLEPanel().nameInUse(other))) - { - return other; - } - } - return null; - } - //until here - - public void makePostProcessing(TDiagramPanel tdp) throws MalformedModelingException{ - //TraceManager.addDev("Make post processing!"); - if (tdp instanceof TClassDiagramPanel) { - ((TClassDiagramPanel)tdp).makePostLoadingProcessing(); - } - //TraceManager.addDev("Post processing is over"); - } - - public void makeXMLConnectors(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException { - Node n; - //Element elt; - TGConnector tgco = null; - int i; - - if (tdp == null) { - throw new MalformedModelingException(); - } - - for(i=0; i<nl.getLength(); i++) { - n = nl.item(i); - if (n.getNodeType() == Node.ELEMENT_NODE) { - tgco = makeXMLConnector(n, tdp); - if (tgco != null) { - tdp.addBuiltConnector(tgco); - } else { - TraceManager.addDev("Connector error"); - throw new MalformedModelingException(); - } - } - } - } - - public void connectConnectorsToRealPoints(TDiagramPanel tdp) throws MalformedModelingException { - LinkedList list = tdp.getComponentList(); - TGConnectingPoint p1, p2, p3, p4; - //TGConnectingPointTmp p; - int i; - TGComponent tgc; - //TGComponent tgctmp; - TGConnector tgco = null; - //boolean error = false; - TGConnectorInfo tgcoinfo; - - - //connect connectors to their real connecting point - //TraceManager.addDev("Valid connectors ?"); - for(i=0; i<list.size(); i++) { - tgc = (TGComponent)(list.get(i)); - if (tgc instanceof TGConnector) { - tgco = (TGConnector)tgc; - p1 = tgco.getTGConnectingPointP1(); - p2 = tgco.getTGConnectingPointP2(); - if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){ - //TraceManager.addDev("Searching for id " + p1.getId()); - p3 = tdp.findConnectingPoint(p1.getId()); - //TraceManager.addDev("Searching for id " + p2.getId()); - p4 = tdp.findConnectingPoint(p2.getId()); - if (((p3 ==null) || (p4 == null)) &&(decId != 0)) { - if (list.remove(tgc)) { - i --; - } else { - throw new MalformedModelingException(); - } - } else { - if ((p3 == null) ||(p4 == null)) { - //warning = true; - if (p3 == null) { - //TraceManager.addDev("Error on first id"); - } - if (p4 == null) { - //TraceManager.addDev("Error on second id"); - } - tgcoinfo = new TGConnectorInfo(); - tgcoinfo.connector = tgco; - pendingConnectors.add(tgcoinfo); - TraceManager.addDev("One connector added to pending list"); - } else { - tgco.setP1(p3); - p3.setFree(false); - tgco.setP2(p4); - p4.setFree(false); - } - } - } - } - } - - /*for(TGConnector con: connectorsToRemove) { - list.remove(con); - }*/ - - /*if (error) { - TraceManager.addDev("Connecting error: " + connectorsToRemove.size() + " connectors have been removed"); - throw new MalformedModelingException(); - }*/ - } - - public void makeLastLoad() { - // Update references on all diagrams - //TraceManager.addDev("Updating ports"); - //mgui.updateAllPorts(); - - // Update ports on all diagrams - //TraceManager.addDev("Updating references / ports"); - mgui.updateAllReferences(); - - mgui.updateAllPorts(); - - //TraceManager.addDev("Pending connectors"); - // Make use of pending connectors - TGConnectingPoint p1, p2, p3, p4; - TDiagramPanel tdp; - TGConnector tgco; - for(TGConnectorInfo info: pendingConnectors) { - tgco = info.connector; - if (tgco != null) { - tdp = tgco.getTDiagramPanel(); - if (tdp != null) { - p1 = tgco.getTGConnectingPointP1(); - p2 = tgco.getTGConnectingPointP2(); - if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){ - TraceManager.addDev("Searching for id " + p1.getId()); - p3 = tdp.findConnectingPoint(p1.getId()); - TraceManager.addDev("Searching for id " + p2.getId()); - p4 = tdp.findConnectingPoint(p2.getId()); - if ((p3 == null) ||(p4 == null)) { - //warning = true; - if (p3 == null) { - TraceManager.addDev("Error on first id"); - } - if (p4 == null) { - TraceManager.addDev("Error on second id"); - } - TraceManager.addDev("One connector ignored"); - } else { - tgco.setP1(p3); - p3.setFree(false); - tgco.setP2(p4); - p4.setFree(false); - } - } - } - } - } - pendingConnectors.clear(); - //TraceManager.addDev("Last load done"); - } - - public TGConnector makeXMLConnector(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException { - Element elt, elt1; - TGConnector tgco = null; - //TGComponent tgc = null; - - //TraceManager.addDev(n.toString()); - - try { - - NodeList nl = n.getChildNodes(); - elt = (Element)n; - elt1 = elt; - - int myType = Integer.decode(elt.getAttribute("type")).intValue(); - int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId; - - int myX = -1, myY = -1, myWidth = -1, myHeight =-1; - int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1; - int myMaxWidth = -1, myMaxHeight = -1; - String myName = null, myValue = null; - int tmpx, tmpy, tmpid; - TGConnectingPoint p1 = null, p2=null; - Vector pointList = new Vector(); - - Vector tgcpList = new Vector(); - Point p; - int i, x, y; - //int fatherId = -1, fatherNum = -1; - boolean automaticDrawing = true; - - for(i=0; i<nl.getLength(); i++) { - n = nl.item(i); - if (n.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element) n; - if (elt.getTagName().equals("cdparam")) { - myX = Integer.decode(elt.getAttribute("x")).intValue() + decX; - myY = Integer.decode(elt.getAttribute("y")).intValue() + decY; - } else if (elt.getTagName().equals("sizeparam")) { - myWidth = Integer.decode(elt.getAttribute("width")).intValue(); - myHeight = Integer.decode(elt.getAttribute("height")).intValue(); - myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue(); - myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue(); - if ((elt.getAttribute("maxWidth") != null) && (elt.getAttribute("maxWidth").length() > 0)) { // Test is made for compatibility with old versions - //TraceManager.addDev("maxWidth = " + elt.getAttribute("maxWidth")); - myMaxWidth = Integer.decode(elt.getAttribute("maxWidth")).intValue(); - myMaxHeight = Integer.decode(elt.getAttribute("maxHeight")).intValue(); - } - myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue(); - myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue(); - } else if (elt.getTagName().equals("infoparam")) { - myName = elt.getAttribute("name"); - myValue = elt.getAttribute("value"); - } else if (elt.getTagName().equals("P1")) { - tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX; - tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY; - tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId; - TGComponent tgc1 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp); - p1 = new TGConnectingPointTmp(tgc1, tmpx, tmpy, tmpid); - //TraceManager.addDev("P1id = " + tmpid); - } else if (elt.getTagName().equals("P2")) { - tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX; - tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY; - tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId; - TGComponent tgc2 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp); - p2 = new TGConnectingPointTmp(tgc2, tmpx, tmpy, tmpid); - //TraceManager.addDev("P2id = " + tmpid); - } else if (elt.getTagName().equals("Point")) { - tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX; - tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY; - pointList.add(new Point(tmpx, tmpy)); - } else if (elt.getTagName().equals("TGConnectingPoint")) { - x = Integer.decode(elt.getAttribute("num")).intValue(); - y = Integer.decode(elt.getAttribute("id")).intValue() + decId; - tgcpList.add(new Point(x, y)); - //TraceManager.addDev(" adding Connecting point !"); - } else if (elt.getTagName().equals("AutomaticDrawing")) { - //TraceManager.addDev("AutomaticDrawing=" + elt.getAttribute("data")); - if (elt.getAttribute("data").compareTo("true") == 0) { - automaticDrawing = true; - //TraceManager.addDev("set to true"); - } else { - automaticDrawing = false; - } - //automaticDrawing = Boolean.getBoolean(elt.getAttribute("data")); - } - } - } - - if ((myType == -1) || (myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1) || (p1 == null) || (p2 == null)) { - throw new MalformedModelingException(); - } - - //TGConnector is ready to be built - //TraceManager.addDev("Making TGConnector of type " + myType); - tgco = TGComponentManager.addConnector(myX, myY, myType, tdp, p1, p2, pointList); - //TraceManager.addDev("TGConnector built " + myType); - - if (tgco == null) { - TraceManager.addDev( "TGCO is null myType: " + myType ); - throw new MalformedModelingException(); - } - - tgco.setAutomaticDrawing(automaticDrawing); - - if (myName != null) { - tgco.setName(myName); - } - if ((myValue != null) && (!myValue.equals(null))){ - tgco.setValueWithChange(myValue); - } - - tgco.forceId(myId); - tgco.setLoaded(true); - tgco.setInternalLoaded(false); - tgco.setMinSize(myMinWidth, myMinHeight); - tgco.setMaxSize(myMaxWidth, myMaxHeight); - tgco.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight); - tgco.resize(myWidth, myHeight); - - tgco.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId); - - //TraceManager.addDev("Making connecting points " + myType); - for(i=0; i<tgcpList.size(); i++) { - p = (Point)(tgcpList.elementAt(i)); - if (!tgco.setIdTGConnectingPoint(p.x, p.y)) { - throw new MalformedModelingException(); - } - } - - if (decId >0) { - tdp.bringToFront(tgco); - } - - //TraceManager.addDev("Connecting points done " + myType); - - } catch (Exception e) { - TraceManager.addError("Exception on connectors: HERE I AM"); - throw new MalformedModelingException(); - } - return tgco; - } - - - - public boolean buildTURTLEModelingFromAnalysis(AnalysisPanel ap) throws AnalysisSyntaxException { - - HMSC h; - //listE = new CorrespondanceTGElement(); - checkingErrors = new Vector(); - - AnalysisPanelTranslator apt = new AnalysisPanelTranslator(ap, mgui); - - try { - h = apt.translateHMSC(); - listE = apt.getCorrespondanceTGElement(); - checkingErrors = apt.getErrors(); - apt.translateMSCs(h); - listE = apt.getCorrespondanceTGElement(); - checkingErrors = apt.getErrors(); - } catch (AnalysisSyntaxException ase) { - CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, ase.getMessage()); - checkingErrors.add(ce); - throw ase; - } - - SDTranslator sd = new SDTranslator(h); - checkingErrors = null; - warnings = new Vector(); - //TraceManager.addDev("Step 02"); - - mgui.setMode(mgui.VIEW_SUGG_DESIGN_KO); - - //TraceManager.addDev("Step 1"); - try { - tm = sd.toTURTLEModeling(); - tmState = 0; - } catch (SDTranslationException e) { - checkingErrors = new Vector(); - CheckingError error = new CheckingError(CheckingError.STRUCTURE_ERROR, e.getMessage()); - checkingErrors.add(error); - - throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling"); - } - - //TraceManager.addDev("Step 2"); - - if (checkingErrors != null) { - return false; - } - - // modeling is built - // Now check it ! - //TraceManager.addDev("Step 3"); - TURTLEModelChecker tmc = new TURTLEModelChecker(tm); - checkingErrors = tmc.syntaxAnalysisChecking(); - //TraceManager.addDev("Step 4"); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - return false; - } else { - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_OK); - return true; - } - } - - public void generateDesign() { - generateDesign(tm); - } - - public void generateDesign(TURTLEModeling tm) { - //TURTLEPanel tp = mgui.getCurrentTURTLEPanel(); - nbSuggestedDesign ++; - TURTLEModelingDrawer tmd = new TURTLEModelingDrawer(mgui); - tmd.setTURTLEModeling(tm); - tmd.draw(nbSuggestedDesign); - mgui.changeMade(null, -1); - } - - public void generateIOD(HMSC _hmsc, MSC _msc) { - MSCDrawer mscd = new MSCDrawer(mgui); - mscd.setHMSC(_hmsc); - mscd.setMSC(_msc); - mscd.drawFromMSC(nbSuggestedDesign); - nbSuggestedDesign ++; - mgui.changeMade(null, -1); - } - - - public boolean translateDeployment(DeploymentPanel dp) { - // Builds a TURTLE modeling from a deployment diagram - TraceManager.addDev("deployement"); - checkingErrors = new Vector(); - warnings = new Vector(); - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - tm = new TURTLEModeling(); - tmState = 0; - listE = new CorrespondanceTGElement(); - mgui.reinitCountOfPanels(); - - Vector tclasses; - - LinkedList ll; - ListIterator iterator, iterator2; - - // First step: adding all necessary classes + their ad - ll = dp.tddp.getListOfNodes(); - iterator = ll.listIterator(); - TDDNode node; - Vector artifacts; - TDDArtifact art; - int i; - DesignPanel dp2; - TGComponent tgc; - //TCDTClass tc; - String name; - TClass t; - DesignPanelTranslator dpt; - - // Loop on nodes - while(iterator.hasNext()) { - node = (TDDNode)(iterator.next()); - - // Loop on artifact - artifacts = node.getArtifactList(); - for(i=0; i<artifacts.size(); i++) { - art = (TDDArtifact)(artifacts.elementAt(i)); - dp2 = art.getDesignPanel(); - - iterator2 = dp2.tcdp.getComponentList().listIterator(); - tclasses = new Vector(); - while(iterator2.hasNext()) { - tgc = (TGComponent)(iterator2.next()); - if (tgc instanceof TClassInterface) { - TraceManager.addDev("Found tclass: " + tgc.getValue()); - tclasses.add(tgc); - } - } - if (tclasses.size() > 0) { - name = node.getNodeName() + "__" + art.getValue() + "__"; - dpt = new DesignPanelTranslator(dp2); - dpt.addTClasses(dp2, tclasses, name,tm); - dpt.addRelations(dp2, name,tm); - - listE.merge(dpt.getCorrespondanceTGElement()); - checkingErrors.addAll(dpt.getErrors()); - - // Set package name of tclasses - for(int j=0; j<tclasses.size(); j++) { - tgc = (TGComponent)(tclasses.elementAt(j)); - t = listE.getTClass(tgc); - if (t != null) { - TraceManager.addDev("Setting package name of " + t.getName() + " to " + node.getNodeName()); - t.setPackageName(node.getNodeName()+"_"+art.getValue()); - } - } - } - } - } - - // Second step : dealing with links! - - DDTranslator ddt = new DDTranslator(dp, tm, listE); - - try { - TraceManager.addDev("Dealing with links!"); - ddt.translateLinks(); - } catch (DDSyntaxException e) { - //throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling"); - TraceManager.addDev("Error during translation: " + e.getMessage()); - return false; - } - - mgui.setMode(MainGUI.GEN_DESIGN_OK); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } - - // modeling is built - // Now check it ! - TURTLEModelChecker tmc = new TURTLEModelChecker(tm); - checkingErrors = tmc.syntaxAnalysisChecking(); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } else { - mgui.setMode(MainGUI.GEN_DESIGN_OK); - return true; - } - } - - public boolean translateNC(NCPanel ncp) { - TraceManager.addDev("Translating NC"); - checkingErrors = new Vector(); - warnings = new Vector(); - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - - GNCModeling gncm = new GNCModeling(ncp); - ncs = gncm.translateToNCStructure(); - listE = gncm.getCorrespondanceTable(); - - checkingErrors = gncm.getCheckingErrors(); - warnings = gncm.getCheckingWarnings(); - - TraceManager.addDev("errors:" + checkingErrors.size() + " warnings:" + warnings.size()); - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } else { - // Generate XML file - try { - String fileName = "network.xml"; - if (ConfigurationTTool.NCDirectory != null) { - fileName = ConfigurationTTool.NCDirectory + fileName; - } - TraceManager.addDev("Saving in network structure in file: " + fileName); - FileUtils.saveFile(fileName, ncs.toISAENetworkXML()); - fileName = "traffics.xml"; - if (ConfigurationTTool.NCDirectory != null) { - fileName = ConfigurationTTool.NCDirectory + fileName; - } - TraceManager.addDev("Saving in traffics in file: " + fileName); - FileUtils.saveFile(fileName, ncs.toISAETrafficsXML()); - TraceManager.addDev("Save done"); - } catch (FileException fe) { - TraceManager.addError("Could not save NC in file:" + fe.getMessage()); - } - mgui.setMode(MainGUI.NC_OK); - return true; - } - - } - - - public boolean translateTMLDesign(Vector tasksToTakeIntoAccount, TMLDesignPanel tmldp, boolean optimize) { - ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); - warnings = new Vector(); - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - - GTMLModeling gtmlm = new GTMLModeling(tmldp, true); - gtmlm.setTasks(tasksToTakeIntoAccount); - tmlm = gtmlm.translateToTMLModeling(true); - //tmlm.removeAllRandomSequences(); - TraceManager.addDev("New TML Modeling:" + tmlm.toString()); - mgui.generateTMLTxt(); - artificialtmap = tmlm.getDefaultMapping(); - tmap = null; - listE = gtmlm.getCorrespondanceTable(); - - //TraceManager.addDev("TML Modeling translated"); - //TraceManager.addDev("----- TML Modeling -----"); - //TraceManager.addDev(tmlm.toString()); - //TraceManager.addDev("------------------------"); - checkingErrors = gtmlm.getCheckingErrors(); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - return false; - } else { - if (optimize) { - warningsOptimize = tmlm.optimize(); - } - - tmState = 2; - mgui.resetAllDIPLOIDs(); - listE.useDIPLOIDs(); - return true; - //TraceManager.addDev("tm generated:"); - //tm.print(); - } - } - - public Vector convertToCheckingErrorTMLErrors(ArrayList<TMLError> warningsOptimize, TDiagramPanel _tdp) { - Vector v = new Vector(); - CheckingError warning; - for(TMLError error: warningsOptimize) { - warning = new CheckingError(CheckingError.BEHAVIOR_ERROR, error.message); - warning.setTDiagramPanel(_tdp); - warning.setTMLTask(error.task); - v.add(warning); - } - return v; - } - - public boolean translateTMLComponentDesign(Vector componentsToTakeIntoAccount, TMLComponentDesignPanel tmlcdp, boolean optimize) { - ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); - warnings = new Vector(); - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - - GTMLModeling gctmlm = new GTMLModeling(tmlcdp, true); + loadDiagram(elt, sdp); + //TraceManager.addDev("Loading seq diag5"); + } + + public void loadUseCaseDiagram(Element elt, int indexAnalysis, int indexTab) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + /*if (!(mgui.isUCDCreated(indexAnalysis, name))) {*/ + mgui.createUseCaseDiagram(indexAnalysis, name); + //} + UseCaseDiagramPanel ucdp = mgui.getUseCaseDiagramPanel(indexAnalysis, indexTab, name); + + if (ucdp == null) { + throw new MalformedModelingException(); + } + + ucdp.removeAll(); + + loadDiagram(elt, ucdp); + } + + public void loadTDeploymentDiagram(Element elt, int indexDeployment) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.setDeploymentName(indexDeployment, name); + TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexDeployment); + + loadDiagram(elt, tdp); + } + + public void loadNCDiagram(Element elt, int indexNC) throws MalformedModelingException, SAXException { + String name; + + name = elt.getAttribute("name"); + mgui.setNCName(indexNC, name); + TDiagramPanel tdp = mgui.getMainTDiagramPanel(indexNC); + + loadDiagram(elt, tdp); + } + + // reinit the id of all components + public void makeLovelyIds() { + TDiagramPanel tdp; + int id = 1; + int i, j; + TURTLEPanel tp; + // search for diagram panels + for(i=0; i<panels.size(); i++) { + tp = (TURTLEPanel)(panels.elementAt(i)); + for(j=0; j<tp.panels.size(); j++) { + tdp = (TDiagramPanel)(tp.panels.elementAt(j)); + id = tdp.makeLovelyIds(id); + //TraceManager.addDev("Lovely id =" + id); + } + } + + TGComponent.setGeneralId(id + 1); + } + + public void loadDiagramInformation(Element elt, TDiagramPanel tdp) throws MalformedModelingException { + int x, y; + double zoom = 0; + try { + x = Integer.decode(elt.getAttribute("minX")).intValue(); + tdp.setMinX(x); + x = Integer.decode(elt.getAttribute("maxX")).intValue(); + tdp.setMaxX(x); + y = Integer.decode(elt.getAttribute("minY")).intValue(); + tdp.setMinY(y); + y = Integer.decode(elt.getAttribute("maxY")).intValue(); + tdp.setMaxY(y); + tdp.updateSize(); + zoom = Double.parseDouble(elt.getAttribute("zoom")); + if (zoom != 0) { + tdp.setZoom(zoom); + mgui.updateZoomInfo(); + } + } catch (Exception e) { + // Model was saved in an older version of TTool + } + + if (tdp instanceof TActivityDiagramPanel) { + ((TActivityDiagramPanel)tdp).loadExtraParameters(elt); + } + } + + public void loadActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException { + //TraceManager.addDev("---> Load activity diagram"); + try { + NodeList activityDiagramNl = docCopy.getElementsByTagName("TActivityDiagramPanel"); + + TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue); + TraceManager.addDev(""+docCopy); + + if (activityDiagramNl == null) { + throw new MalformedModelingException(); + } + + Node adn; + Element elt; + TActivityDiagramPanel tadp; + String name; + int decXTmp = decX; + int decYTmp = decY; + int decIdTmp = decId; + + for(int i=0; i<activityDiagramNl.getLength(); i++) { + adn = activityDiagramNl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + // class diagram name + name = elt.getAttribute("name"); + //TraceManager.addDev("Name of activity diagram=" + name); + + if (name.equals(oldValue)) { + int indexDesign = mgui.getMajorIndexOf(tdp); + + if (indexDesign < 0) { + throw new MalformedModelingException(); + } + + tadp = mgui.getActivityDiagramPanel(indexDesign, newValue); + + //TraceManager.addDev("Searching panel"); + + if (tadp == null) { + throw new MalformedModelingException(); + } + + //TraceManager.addDev("Panel ok"); + + decX = 0; decY = 0; decId = 0; + + + + tadp.removeAll(); + + loadDiagramInformation(elt, tadp); + + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tadp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(tadp); + tadp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(tadp, 0); + } + } + } + decX = decXTmp; + decY = decYTmp; + decId = decIdTmp; + } catch (SAXException saxe) { + TraceManager.addError("Loading 701 " + saxe.getMessage()); + throw new MalformedModelingException(); + } + } + + public void loadAvatarSMD(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException { + TraceManager.addDev("---> Load activity diagram of old=" + oldValue + " new=" + newValue); + try { + NodeList smdNl = docCopy.getElementsByTagName("AVATARStateMachineDiagramPanel"); + + //TraceManager.addDev("Loading state machine diagram of " + newValue + " Before : " + oldValue); + //TraceManager.addDev("smdNL: " + smdNl); + + if (smdNl == null) { + TraceManager.addDev("AVATAR: null doc"); + throw new MalformedModelingException(); + } + + Node adn; + Element elt; + AvatarSMDPanel asmdp; + String name; + int decXTmp = decX; + int decYTmp = decY; + int decIdTmp = decId; + + for(int i=0; i<smdNl.getLength(); i++) { + adn = smdNl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + // class diagram name + name = elt.getAttribute("name"); + TraceManager.addDev("Name of activity diagram=" + name); + + if (name.equals(oldValue)) { + int indexDesign = mgui.getMajorIndexOf(tdp); + + if (indexDesign < 0) { + throw new MalformedModelingException(); + } + + asmdp = mgui.getAvatarSMDPanel(indexDesign, newValue); + + TraceManager.addDev("Searching panel: " + newValue); + + if (asmdp == null) { + throw new MalformedModelingException(); + } + + TraceManager.addDev("Panel ok"); + + decX = 0; decY = 0; decId = 0; + + + asmdp.removeAll(); + + loadDiagramInformation(elt, asmdp); + + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), asmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), asmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), asmdp); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " real points"); + connectConnectorsToRealPoints(asmdp); + asmdp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tadp.getName() + " post loading"); + makePostLoading(asmdp, 0); + } + } + } + decX = decXTmp; + decY = decYTmp; + decId = decIdTmp; + } catch (SAXException saxe) { + TraceManager.addError("Loading 801 " + saxe.getMessage()); + throw new MalformedModelingException(); + } + } + + public void loadTMLActivityDiagram(TDiagramPanel tdp, String oldValue, String newValue) throws MalformedModelingException { + //TraceManager.addDev("---> Load TML activity diagram"); + try { + if (docCopy == null) { + TraceManager.addDev("Null doc copy"); + } + NodeList activityDiagramNl = docCopy.getElementsByTagName("TMLActivityDiagramPanel"); + + //TraceManager.addDev("Loading activity diagram of " + newValue + "Before : " + oldValue); + + if (activityDiagramNl == null) { + //TraceManager.addDev("Null"); + throw new MalformedModelingException(); + } + + Node adn; + Element elt; + TMLActivityDiagramPanel tmladp; + String name; + int decXTmp = decX; + int decYTmp = decY; + int decIdTmp = decId; + + for(int i=0; i<activityDiagramNl.getLength(); i++) { + adn = activityDiagramNl.item(i); + if (adn.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) adn; + // class diagram name + name = elt.getAttribute("name"); + //TraceManager.addDev("Name of activity diagram=" + name); + + if (name.equals(oldValue)) { + int indexDesign = mgui.getMajorIndexOf(tdp); + + if (indexDesign < 0) { + throw new MalformedModelingException(); + } + + tmladp = mgui.getTMLActivityDiagramPanel(indexDesign, newValue); + + //TraceManager.addDev("Searching panel"); + + if (tmladp == null) { + throw new MalformedModelingException(); + } + + //TraceManager.addDev("Panel ok"); + + decX = 0; decY = 0; decId = 0; + + tmladp.removeAll(); + + loadDiagramInformation(elt, tmladp); + + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " components"); + makeXMLComponents(elt.getElementsByTagName("COMPONENT"), tmladp); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " connectors"); + makeXMLConnectors(elt.getElementsByTagName("CONNECTOR"), tmladp); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " subcomponents"); + makeXMLComponents(elt.getElementsByTagName("SUBCOMPONENT"), tmladp); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " real points"); + connectConnectorsToRealPoints(tmladp); + tmladp.structureChanged(); + //TraceManager.addDev("Activity diagram : " + tmladp.getName() + " post loading"); + makePostLoading(tmladp, 0); + } + } + } + decX = decXTmp; + decY = decYTmp; + decId = decIdTmp; + } catch (SAXException saxe) { + TraceManager.addError("Loading 901 " + saxe.getMessage()); + throw new MalformedModelingException(); + } + } + + public void makePostLoading(TDiagramPanel tdp, int beginIndex) throws MalformedModelingException{ + TGComponent tgc; + + //TraceManager.addDev("Post loading of diagram " + tdp.toString()); + + LinkedList list = tdp.getComponentList(); + + for(int i=0; i<list.size()-beginIndex; i++) { + tgc = (TGComponent)(list.get(i)); + //TraceManager.addDev(tgc.getName()); + //TraceManager.addDev(tgc.getValue()); + tgc.makePostLoading(decId); + } + + //TraceManager.addDev("Post loading of diagram " + tdp.toString() + " achieved"); + } + + public void makeXMLComponents(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException { + Node n; + //Element elt; + TGComponent tgc; + + if (tdp == null) { + throw new MalformedModelingException(); + } + boolean error = false; + + for(int i=0; i<nl.getLength(); i++) { + n = nl.item(i); + if (n.getNodeType() == Node.ELEMENT_NODE) { + try { + tgc = makeXMLComponent(n, tdp); + //TraceManager.addDev("About to add component= " + tgc); + if ((tgc != null) && (tgc.getFather() == null)) { + //TraceManager.addDev("Component added to diagram tgc=" + tgc); + tdp.addBuiltComponent(tgc); + } else { + //TraceManager.addDev("Component not added to diagram"); + } + } catch (MalformedModelingException mme) { + error = true; + } + } + } + + if (error) { + throw new MalformedModelingException(); + } + } + + + public TGComponent makeXMLComponent(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException { + Element elt; + Element elt1; + //TraceManager.addDev(n.toString()); + TGComponent tgc = null; + TGComponent father; + + // + try { + + NodeList nl = n.getChildNodes(); + elt = (Element)n; + elt1 = elt; + //TraceManager.addDev("elt=" + elt); + + int myType = Integer.decode(elt.getAttribute("type")).intValue(); + int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId; + + int myX = -1, myY = -1, myWidth = -1, myHeight =-1; + int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1; + int myMinX = -1, myMaxX = -1, myMinY = -1, myMaxY = -1; + String myName = null, myValue = null; + Vector tgcpList = new Vector(); + Point p; + int i, x, y; + int fatherId = -1, fatherNum = -1; + String pre = "", post = ""; + String internalComment = ""; + boolean accessibility = false; + boolean invariant = false; + boolean breakpoint = false; + boolean hidden = false; + boolean masterMutex = false; + + for(i=0; i<nl.getLength(); i++) { + n = nl.item(i); + if (n.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n; + if (elt.getTagName().equals("cdparam")) { + myX = Integer.decode(elt.getAttribute("x")).intValue() + decX; + myY = Integer.decode(elt.getAttribute("y")).intValue() + decY; + } else if (elt.getTagName().equals("sizeparam")) { + myWidth = Integer.decode(elt.getAttribute("width")).intValue(); + myHeight = Integer.decode(elt.getAttribute("height")).intValue(); + myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue(); + myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue(); + myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue(); + myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue(); + } else if (elt.getTagName().equals("cdrectangleparam")) { + myMinX = Integer.decode(elt.getAttribute("minX")).intValue(); + myMaxX = Integer.decode(elt.getAttribute("maxX")).intValue(); + myMinY = Integer.decode(elt.getAttribute("minY")).intValue(); + myMaxY = Integer.decode(elt.getAttribute("maxY")).intValue(); + } else if (elt.getTagName().equals("infoparam")) { + myName = elt.getAttribute("name"); + myValue = elt.getAttribute("value"); + } else if (elt.getTagName().equals("hidden")) { + hidden = elt.getAttribute("value").equals("true"); + } else if (elt.getTagName().equals("TGConnectingPoint")) { + x = Integer.decode(elt.getAttribute("num")).intValue(); + y = Integer.decode(elt.getAttribute("id")).intValue() + decId; + tgcpList.add(new Point(x, y)); + } else if (elt.getTagName().equals("father")) { + fatherId = Integer.decode(elt.getAttribute("id")).intValue(); + fatherNum = Integer.decode(elt.getAttribute("num")).intValue(); + } else if (elt.getTagName().equals("prejavacode")) { + pre += elt.getAttribute("value") + "\n"; + } else if (elt.getTagName().equals("postjavacode")) { + post += elt.getAttribute("value") + "\n"; + } else if (elt.getTagName().equals("InternalComment")) { + internalComment += elt.getAttribute("value") + "\n"; + } else if (elt.getTagName().equals("accessibility")) { + accessibility = true; + } else if (elt.getTagName().equals("invariant")) { + invariant = true; + } else if (elt.getTagName().equals("mastermutex")) { + masterMutex = true; + } else if (elt.getTagName().equals("breakpoint")) { + breakpoint = true; + } + } + } + + if ((myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1)) { + throw new MalformedModelingException(); + } + + //TraceManager.addDev("Making TGComponent of type " + myType + " and of name " + myName); + //TGComponent is ready to be built + if(fatherId != -1) { + fatherId += decId; + // internal component + //TraceManager.addDev("I am " + myName); + //TraceManager.addDev("Searching for component with id " + fatherId); + father = tdp.findComponentWithId(fatherId); + if (father == null) { + throw new MalformedModelingException(); + } + + //TraceManager.addDev("Done"); + //TraceManager.addDev("Father My value is " + father.getValue()); + //TraceManager.addDev("My class is " + father.getClass()); + + //TraceManager.addDev("Searching for component " + fatherNum + " at " + tgc.getName()); + tgc = father.getInternalTGComponent(fatherNum); + + if (tgc == null) { + // To be added to its father -> swallow component + if (father instanceof SwallowTGComponent) { + //TraceManager.addDev("1 Must add the component to its father:"); + tgc = TGComponentManager.addComponent(myX, myY, myType, tdp); + //TraceManager.addDev("2 Must add the component to its father:" + tgc); + if (tgc instanceof SwallowedTGComponent) { + //TraceManager.addDev("3 Must add the component to its father:"); + ((SwallowTGComponent)father).addSwallowedTGComponent(tgc, myX, myY); + //TraceManager.addDev("Swallowed to father = " + father.getValue() + ". My name=" + myName + " decId=" + decId); + } else { + throw new MalformedModelingException(); + } + } else { + throw new MalformedModelingException(); + } + } + + if (tgc != null) { + tgc.setCdRectangle(myMinX, myMaxX, myMinY, myMaxY); + tgc.setCd(myX, myY); + //TraceManager.addDev("set cd of " + tgc.getName()); + } + } else { + tgc = TGComponentManager.addComponent(myX, myY, myType, tdp); + } + //TraceManager.addDev("TGComponent built " + myType); + + if (tgc == null) { + throw new MalformedModelingException(); + } + + if (myName != null) { + tgc.setName(myName); + } + + tgc.setHidden(hidden); + + /*if (tgc instanceof TCDTObject) { + TraceManager.addDev("Loading " + myValue); + }*/ + + String oldClassName = myValue; + //TraceManager.addDev("Old class name=" + oldClassName); + //Added by Solange + if ((myValue != null) && (!myValue.equals(null))){ + if (tgc instanceof ProCSDComponent) + { + //Added by Solange + //And removed by emil + //myValue=generateNameIfInUse(myValue); + // tgc.setValueWithChange(myValue); + //TraceManager.addDev("myValue=" + myValue); + } + //until here + if ((tgc instanceof TCDTClass) && (decId >0)){ + if (tdp.isAlreadyATClassName(myValue)) { + myValue = tdp.findTClassName(myValue+"_"); + } + } + if ((tgc instanceof TMLTaskOperator) && (decId >0)){ + if (tdp.isAlreadyATMLTaskName(myValue)) { + myValue = tdp.findTMLTaskName(myValue+"_"); + } + } + + if ((tgc instanceof AvatarBDBlock) && (decId >0)){ + if (tdp.isAlreadyAnAvatarBDBlockName(myValue)) { + myValue = tdp.findAvatarBDBlockName(myValue+"_"); + } + } + + if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){ + if (tdp.isAlreadyATMLPrimitiveComponentName(myValue)) { + myValue = tdp.findTMLPrimitiveComponentName(myValue+"_"); + } + //TraceManager.addDev("MyValue=" + myValue); + } + if ((tgc instanceof TOSClass) && (decId >0)){ + if (tdp.isAlreadyATOSClassName(myValue)) { + myValue = tdp.findTOSClassName(myValue+"_"); + } + } + //TraceManager.addDev("myValue=" + myValue); + tgc.setValueWithChange(myValue); + //TraceManager.addDev("value done"); + if ((tgc instanceof TCDTClass) && (decId >0)){ + loadActivityDiagram(tdp, oldClassName, myValue); + } + + if ((tgc instanceof AvatarBDBlock) && (decId >0)){ + //TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue); + loadAvatarSMD(tdp, oldClassName, myValue); + } + + if ((tgc instanceof TMLTaskOperator) && (decId >0)){ + //TraceManager.addDev("Going to load ad of task " + oldClassName + " myValue=" + myValue); + loadTMLActivityDiagram(tdp, oldClassName, myValue); + } + + if ((tgc instanceof TMLCPrimitiveComponent) && (decId >0)){ + //TraceManager.addDev("Going to load ad of component " + oldClassName + " myValue=" + myValue); + loadTMLActivityDiagram(tdp, oldClassName, myValue); + } + } + + tgc.forceId(myId); + tgc.setLoaded(true); + tgc.setInternalLoaded(false); + tgc.setMinSize(myMinWidth, myMinHeight); + tgc.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight); + tgc.resize(myWidth, myHeight); + tgc.hasBeenResized(); + + //TraceManager.addDev("Options set"); + + if (pre.compareTo("") != 0) { + tgc.setPreJavaCode(pre); + } + if (post.compareTo("") != 0) { + tgc.setPostJavaCode(post); + } + + if (internalComment.compareTo("") != 0) { + tgc.setInternalComment(internalComment); + } + + if (accessibility) { + tgc.setCheckableAccessibility(accessibility); + + } + + if (invariant) { + tgc.setCheckableInvariant(invariant); + } + + if (masterMutex) { + tgc.setMasterMutex(true); + } + + if (breakpoint) { + tgc.setBreakpoint(breakpoint); + } + + //extra param + //TraceManager.addDev("Extra params" + tgc.getClass()); + //TraceManager.addDev("My value = " + tgc.getValue()); + tgc.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId); + //TraceManager.addDev("Extra param ok"); + + if ((tgc instanceof TCDTObject) && (decId > 0)) { + TCDTObject to = (TCDTObject)tgc; + //TraceManager.addDev("Setting TObject name to: " + to.getObjectName()); + //TraceManager.addDev("Setting TObject name to: " + tdp.findTObjectName(to.getObjectName())); + to.setObjectName(tdp.findTObjectName(to.getObjectName())); + } + + //TraceManager.addDev(tgc.toString()); + + //TraceManager.addDev("Making connecting points " + tgcpList.size()); + for(i=0; i<tgcpList.size(); i++) { + p = (Point)(tgcpList.elementAt(i)); + if (!tgc.setIdTGConnectingPoint(p.x, p.y)) { + //TraceManager.addDev("Warning: a connecting point has been removed"); + //throw new MalformedModelingException(); + } + } + + //TraceManager.addDev("Not yet except!"); + if (decId >0) { + tdp.bringToFront(tgc); + } + //TraceManager.addDev("Connecting points done " + myType); + + /*if (tgc instanceof TCDTObject) { + TraceManager.addDev("getValue " + tgc.getValue()); + }*/ + + } catch (Exception e) { + TraceManager.addError("Exception XML Component "/* + e.getMessage() + "trace=" + e.getStackTrace()*/); + throw new MalformedModelingException(); + } + return tgc; + } + + //method added by Solange + + public String generateNameIfInUse(String myName) + { + if (!(mgui.getCurrentTURTLEPanel().nameInUse(myName))) + { + return myName; + } + + String other; + for(int w=0; w<100000; w++) + { + other = myName + "_" + w; + if (!(mgui.getCurrentTURTLEPanel().nameInUse(other))) + { + return other; + } + } + return null; + } + //until here + + public void makePostProcessing(TDiagramPanel tdp) throws MalformedModelingException{ + //TraceManager.addDev("Make post processing!"); + if (tdp instanceof TClassDiagramPanel) { + ((TClassDiagramPanel)tdp).makePostLoadingProcessing(); + } + //TraceManager.addDev("Post processing is over"); + } + + public void makeXMLConnectors(NodeList nl, TDiagramPanel tdp) throws SAXException, MalformedModelingException { + Node n; + //Element elt; + TGConnector tgco = null; + int i; + + if (tdp == null) { + throw new MalformedModelingException(); + } + + for(i=0; i<nl.getLength(); i++) { + n = nl.item(i); + if (n.getNodeType() == Node.ELEMENT_NODE) { + tgco = makeXMLConnector(n, tdp); + if (tgco != null) { + tdp.addBuiltConnector(tgco); + } else { + TraceManager.addDev("Connector error"); + throw new MalformedModelingException(); + } + } + } + } + + public void connectConnectorsToRealPoints(TDiagramPanel tdp) throws MalformedModelingException { + LinkedList list = tdp.getComponentList(); + TGConnectingPoint p1, p2, p3, p4; + //TGConnectingPointTmp p; + int i; + TGComponent tgc; + //TGComponent tgctmp; + TGConnector tgco = null; + //boolean error = false; + TGConnectorInfo tgcoinfo; + + + //connect connectors to their real connecting point + //TraceManager.addDev("Valid connectors ?"); + for(i=0; i<list.size(); i++) { + tgc = (TGComponent)(list.get(i)); + if (tgc instanceof TGConnector) { + tgco = (TGConnector)tgc; + p1 = tgco.getTGConnectingPointP1(); + p2 = tgco.getTGConnectingPointP2(); + if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){ + //TraceManager.addDev("Searching for id " + p1.getId()); + p3 = tdp.findConnectingPoint(p1.getId()); + //TraceManager.addDev("Searching for id " + p2.getId()); + p4 = tdp.findConnectingPoint(p2.getId()); + if (((p3 ==null) || (p4 == null)) &&(decId != 0)) { + if (list.remove(tgc)) { + i --; + } else { + throw new MalformedModelingException(); + } + } else { + if ((p3 == null) ||(p4 == null)) { + //warning = true; + if (p3 == null) { + //TraceManager.addDev("Error on first id"); + } + if (p4 == null) { + //TraceManager.addDev("Error on second id"); + } + tgcoinfo = new TGConnectorInfo(); + tgcoinfo.connector = tgco; + pendingConnectors.add(tgcoinfo); + TraceManager.addDev("One connector added to pending list"); + } else { + tgco.setP1(p3); + p3.setFree(false); + tgco.setP2(p4); + p4.setFree(false); + } + } + } + } + } + + /*for(TGConnector con: connectorsToRemove) { + list.remove(con); + }*/ + + /*if (error) { + TraceManager.addDev("Connecting error: " + connectorsToRemove.size() + " connectors have been removed"); + throw new MalformedModelingException(); + }*/ + } + + public void makeLastLoad() { + // Update references on all diagrams + //TraceManager.addDev("Updating ports"); + //mgui.updateAllPorts(); + + // Update ports on all diagrams + //TraceManager.addDev("Updating references / ports"); + mgui.updateAllReferences(); + + mgui.updateAllPorts(); + + //TraceManager.addDev("Pending connectors"); + // Make use of pending connectors + TGConnectingPoint p1, p2, p3, p4; + TDiagramPanel tdp; + TGConnector tgco; + for(TGConnectorInfo info: pendingConnectors) { + tgco = info.connector; + if (tgco != null) { + tdp = tgco.getTDiagramPanel(); + if (tdp != null) { + p1 = tgco.getTGConnectingPointP1(); + p2 = tgco.getTGConnectingPointP2(); + if ((p1 instanceof TGConnectingPointTmp) && (p2 instanceof TGConnectingPointTmp)){ + TraceManager.addDev("Searching for id " + p1.getId()); + p3 = tdp.findConnectingPoint(p1.getId()); + TraceManager.addDev("Searching for id " + p2.getId()); + p4 = tdp.findConnectingPoint(p2.getId()); + if ((p3 == null) ||(p4 == null)) { + //warning = true; + if (p3 == null) { + TraceManager.addDev("Error on first id"); + } + if (p4 == null) { + TraceManager.addDev("Error on second id"); + } + TraceManager.addDev("One connector ignored"); + } else { + tgco.setP1(p3); + p3.setFree(false); + tgco.setP2(p4); + p4.setFree(false); + } + } + } + } + } + pendingConnectors.clear(); + //TraceManager.addDev("Last load done"); + } + + public TGConnector makeXMLConnector(Node n, TDiagramPanel tdp) throws SAXException, MalformedModelingException { + Element elt, elt1; + TGConnector tgco = null; + //TGComponent tgc = null; + + //TraceManager.addDev(n.toString()); + + try { + + NodeList nl = n.getChildNodes(); + elt = (Element)n; + elt1 = elt; + + int myType = Integer.decode(elt.getAttribute("type")).intValue(); + int myId = Integer.decode(elt.getAttribute("id")).intValue() + decId; + + int myX = -1, myY = -1, myWidth = -1, myHeight =-1; + int myMinWidth = -1, myMinHeight = -1, myMinDesiredWidth = -1, myMinDesiredHeight = -1; + int myMaxWidth = -1, myMaxHeight = -1; + String myName = null, myValue = null; + int tmpx, tmpy, tmpid; + TGConnectingPoint p1 = null, p2=null; + Vector pointList = new Vector(); + + Vector tgcpList = new Vector(); + Point p; + int i, x, y; + //int fatherId = -1, fatherNum = -1; + boolean automaticDrawing = true; + + for(i=0; i<nl.getLength(); i++) { + n = nl.item(i); + if (n.getNodeType() == Node.ELEMENT_NODE) { + elt = (Element) n; + if (elt.getTagName().equals("cdparam")) { + myX = Integer.decode(elt.getAttribute("x")).intValue() + decX; + myY = Integer.decode(elt.getAttribute("y")).intValue() + decY; + } else if (elt.getTagName().equals("sizeparam")) { + myWidth = Integer.decode(elt.getAttribute("width")).intValue(); + myHeight = Integer.decode(elt.getAttribute("height")).intValue(); + myMinWidth = Integer.decode(elt.getAttribute("minWidth")).intValue(); + myMinHeight = Integer.decode(elt.getAttribute("minHeight")).intValue(); + if ((elt.getAttribute("maxWidth") != null) && (elt.getAttribute("maxWidth").length() > 0)) { // Test is made for compatibility with old versions + //TraceManager.addDev("maxWidth = " + elt.getAttribute("maxWidth")); + myMaxWidth = Integer.decode(elt.getAttribute("maxWidth")).intValue(); + myMaxHeight = Integer.decode(elt.getAttribute("maxHeight")).intValue(); + } + myMinDesiredWidth = Integer.decode(elt.getAttribute("minDesiredWidth")).intValue(); + myMinDesiredHeight = Integer.decode(elt.getAttribute("minDesiredHeight")).intValue(); + } else if (elt.getTagName().equals("infoparam")) { + myName = elt.getAttribute("name"); + myValue = elt.getAttribute("value"); + } else if (elt.getTagName().equals("P1")) { + tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX; + tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY; + tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId; + TGComponent tgc1 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp); + p1 = new TGConnectingPointTmp(tgc1, tmpx, tmpy, tmpid); + //TraceManager.addDev("P1id = " + tmpid); + } else if (elt.getTagName().equals("P2")) { + tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX; + tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY; + tmpid = Integer.decode(elt.getAttribute("id")).intValue() + decId; + TGComponent tgc2 = TGComponentManager.addComponent(tmpx, tmpy, TGComponentManager.TAD_START_STATE, tdp); + p2 = new TGConnectingPointTmp(tgc2, tmpx, tmpy, tmpid); + //TraceManager.addDev("P2id = " + tmpid); + } else if (elt.getTagName().equals("Point")) { + tmpx = Integer.decode(elt.getAttribute("x")).intValue() + decX; + tmpy = Integer.decode(elt.getAttribute("y")).intValue() + decY; + pointList.add(new Point(tmpx, tmpy)); + } else if (elt.getTagName().equals("TGConnectingPoint")) { + x = Integer.decode(elt.getAttribute("num")).intValue(); + y = Integer.decode(elt.getAttribute("id")).intValue() + decId; + tgcpList.add(new Point(x, y)); + //TraceManager.addDev(" adding Connecting point !"); + } else if (elt.getTagName().equals("AutomaticDrawing")) { + //TraceManager.addDev("AutomaticDrawing=" + elt.getAttribute("data")); + if (elt.getAttribute("data").compareTo("true") == 0) { + automaticDrawing = true; + //TraceManager.addDev("set to true"); + } else { + automaticDrawing = false; + } + //automaticDrawing = Boolean.getBoolean(elt.getAttribute("data")); + } + } + } + + if ((myType == -1) || (myId == -1) || (myX == -1) || (myY == -1) || (myWidth == -1) || (myHeight == -1) || (p1 == null) || (p2 == null)) { + throw new MalformedModelingException(); + } + + //TGConnector is ready to be built + //TraceManager.addDev("Making TGConnector of type " + myType); + tgco = TGComponentManager.addConnector(myX, myY, myType, tdp, p1, p2, pointList); + //TraceManager.addDev("TGConnector built " + myType); + + if (tgco == null) { + TraceManager.addDev( "TGCO is null myType: " + myType ); + throw new MalformedModelingException(); + } + + tgco.setAutomaticDrawing(automaticDrawing); + + if (myName != null) { + tgco.setName(myName); + } + if ((myValue != null) && (!myValue.equals(null))){ + tgco.setValueWithChange(myValue); + } + + tgco.forceId(myId); + tgco.setLoaded(true); + tgco.setInternalLoaded(false); + tgco.setMinSize(myMinWidth, myMinHeight); + tgco.setMaxSize(myMaxWidth, myMaxHeight); + tgco.setMinDesiredSize(myMinDesiredWidth, myMinDesiredHeight); + tgco.resize(myWidth, myHeight); + + tgco.loadExtraParam(elt1.getElementsByTagName("extraparam"), decX, decY, decId); + + //TraceManager.addDev("Making connecting points " + myType); + for(i=0; i<tgcpList.size(); i++) { + p = (Point)(tgcpList.elementAt(i)); + if (!tgco.setIdTGConnectingPoint(p.x, p.y)) { + throw new MalformedModelingException(); + } + } + + if (decId >0) { + tdp.bringToFront(tgco); + } + + //TraceManager.addDev("Connecting points done " + myType); + + } catch (Exception e) { + TraceManager.addError("Exception on connectors: HERE I AM"); + throw new MalformedModelingException(); + } + return tgco; + } + + + + public boolean buildTURTLEModelingFromAnalysis(AnalysisPanel ap) throws AnalysisSyntaxException { + + HMSC h; + //listE = new CorrespondanceTGElement(); + checkingErrors = new Vector(); + + AnalysisPanelTranslator apt = new AnalysisPanelTranslator(ap, mgui); + + try { + h = apt.translateHMSC(); + listE = apt.getCorrespondanceTGElement(); + checkingErrors = apt.getErrors(); + apt.translateMSCs(h); + listE = apt.getCorrespondanceTGElement(); + checkingErrors = apt.getErrors(); + } catch (AnalysisSyntaxException ase) { + CheckingError ce = new CheckingError(CheckingError.STRUCTURE_ERROR, ase.getMessage()); + checkingErrors.add(ce); + throw ase; + } + + SDTranslator sd = new SDTranslator(h); + checkingErrors = null; + warnings = new Vector(); + //TraceManager.addDev("Step 02"); + + mgui.setMode(mgui.VIEW_SUGG_DESIGN_KO); + + //TraceManager.addDev("Step 1"); + try { + tm = sd.toTURTLEModeling(); + tmState = 0; + } catch (SDTranslationException e) { + checkingErrors = new Vector(); + CheckingError error = new CheckingError(CheckingError.STRUCTURE_ERROR, e.getMessage()); + checkingErrors.add(error); + + throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling"); + } + + //TraceManager.addDev("Step 2"); + + if (checkingErrors != null) { + return false; + } + + // modeling is built + // Now check it ! + //TraceManager.addDev("Step 3"); + TURTLEModelChecker tmc = new TURTLEModelChecker(tm); + checkingErrors = tmc.syntaxAnalysisChecking(); + //TraceManager.addDev("Step 4"); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + return false; + } else { + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_OK); + return true; + } + } + + public void generateDesign() { + generateDesign(tm); + } + + public void generateDesign(TURTLEModeling tm) { + //TURTLEPanel tp = mgui.getCurrentTURTLEPanel(); + nbSuggestedDesign ++; + TURTLEModelingDrawer tmd = new TURTLEModelingDrawer(mgui); + tmd.setTURTLEModeling(tm); + tmd.draw(nbSuggestedDesign); + mgui.changeMade(null, -1); + } + + public void generateIOD(HMSC _hmsc, MSC _msc) { + MSCDrawer mscd = new MSCDrawer(mgui); + mscd.setHMSC(_hmsc); + mscd.setMSC(_msc); + mscd.drawFromMSC(nbSuggestedDesign); + nbSuggestedDesign ++; + mgui.changeMade(null, -1); + } + + + public boolean translateDeployment(DeploymentPanel dp) { + // Builds a TURTLE modeling from a deployment diagram + TraceManager.addDev("deployement"); + checkingErrors = new Vector(); + warnings = new Vector(); + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + tm = new TURTLEModeling(); + tmState = 0; + listE = new CorrespondanceTGElement(); + mgui.reinitCountOfPanels(); + + Vector tclasses; + + LinkedList ll; + ListIterator iterator, iterator2; + + // First step: adding all necessary classes + their ad + ll = dp.tddp.getListOfNodes(); + iterator = ll.listIterator(); + TDDNode node; + Vector artifacts; + TDDArtifact art; + int i; + DesignPanel dp2; + TGComponent tgc; + //TCDTClass tc; + String name; + TClass t; + DesignPanelTranslator dpt; + + // Loop on nodes + while(iterator.hasNext()) { + node = (TDDNode)(iterator.next()); + + // Loop on artifact + artifacts = node.getArtifactList(); + for(i=0; i<artifacts.size(); i++) { + art = (TDDArtifact)(artifacts.elementAt(i)); + dp2 = art.getDesignPanel(); + + iterator2 = dp2.tcdp.getComponentList().listIterator(); + tclasses = new Vector(); + while(iterator2.hasNext()) { + tgc = (TGComponent)(iterator2.next()); + if (tgc instanceof TClassInterface) { + TraceManager.addDev("Found tclass: " + tgc.getValue()); + tclasses.add(tgc); + } + } + if (tclasses.size() > 0) { + name = node.getNodeName() + "__" + art.getValue() + "__"; + dpt = new DesignPanelTranslator(dp2); + dpt.addTClasses(dp2, tclasses, name,tm); + dpt.addRelations(dp2, name,tm); + + listE.merge(dpt.getCorrespondanceTGElement()); + checkingErrors.addAll(dpt.getErrors()); + + // Set package name of tclasses + for(int j=0; j<tclasses.size(); j++) { + tgc = (TGComponent)(tclasses.elementAt(j)); + t = listE.getTClass(tgc); + if (t != null) { + TraceManager.addDev("Setting package name of " + t.getName() + " to " + node.getNodeName()); + t.setPackageName(node.getNodeName()+"_"+art.getValue()); + } + } + } + } + } + + // Second step : dealing with links! + + DDTranslator ddt = new DDTranslator(dp, tm, listE); + + try { + TraceManager.addDev("Dealing with links!"); + ddt.translateLinks(); + } catch (DDSyntaxException e) { + //throw new AnalysisSyntaxException("Problem during translation to a design TURTLE modeling"); + TraceManager.addDev("Error during translation: " + e.getMessage()); + return false; + } + + mgui.setMode(MainGUI.GEN_DESIGN_OK); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } + + // modeling is built + // Now check it ! + TURTLEModelChecker tmc = new TURTLEModelChecker(tm); + checkingErrors = tmc.syntaxAnalysisChecking(); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } else { + mgui.setMode(MainGUI.GEN_DESIGN_OK); + return true; + } + } + + public boolean translateAttackTreePanel(AttackTreePanel atp) { + AttackTreePanelTranslator att = new AttackTreePanelTranslator(atp); + attackTree = att.translateToAttackTreeDataStructure(); + checkingErrors = att.getCheckingErrors(); + warnings = att.getWarnings(); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } + return true; + } + + public boolean translateNC(NCPanel ncp) { + TraceManager.addDev("Translating NC"); + checkingErrors = new Vector(); + warnings = new Vector(); + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + + GNCModeling gncm = new GNCModeling(ncp); + ncs = gncm.translateToNCStructure(); + listE = gncm.getCorrespondanceTable(); + + checkingErrors = gncm.getCheckingErrors(); + warnings = gncm.getCheckingWarnings(); + + TraceManager.addDev("errors:" + checkingErrors.size() + " warnings:" + warnings.size()); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } else { + // Generate XML file + try { + String fileName = "network.xml"; + if (ConfigurationTTool.NCDirectory != null) { + fileName = ConfigurationTTool.NCDirectory + fileName; + } + TraceManager.addDev("Saving in network structure in file: " + fileName); + FileUtils.saveFile(fileName, ncs.toISAENetworkXML()); + fileName = "traffics.xml"; + if (ConfigurationTTool.NCDirectory != null) { + fileName = ConfigurationTTool.NCDirectory + fileName; + } + TraceManager.addDev("Saving in traffics in file: " + fileName); + FileUtils.saveFile(fileName, ncs.toISAETrafficsXML()); + TraceManager.addDev("Save done"); + } catch (FileException fe) { + TraceManager.addError("Could not save NC in file:" + fe.getMessage()); + } + mgui.setMode(MainGUI.NC_OK); + return true; + } + + } + + + public boolean translateTMLDesign(Vector tasksToTakeIntoAccount, TMLDesignPanel tmldp, boolean optimize) { + ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); + warnings = new Vector(); + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + + GTMLModeling gtmlm = new GTMLModeling(tmldp, true); + gtmlm.setTasks(tasksToTakeIntoAccount); + tmlm = gtmlm.translateToTMLModeling(true); + //tmlm.removeAllRandomSequences(); + TraceManager.addDev("New TML Modeling:" + tmlm.toString()); + mgui.generateTMLTxt(); + artificialtmap = tmlm.getDefaultMapping(); + tmap = null; + listE = gtmlm.getCorrespondanceTable(); + + //TraceManager.addDev("TML Modeling translated"); + //TraceManager.addDev("----- TML Modeling -----"); + //TraceManager.addDev(tmlm.toString()); + //TraceManager.addDev("------------------------"); + checkingErrors = gtmlm.getCheckingErrors(); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + return false; + } else { + if (optimize) { + warningsOptimize = tmlm.optimize(); + } + + tmState = 2; + mgui.resetAllDIPLOIDs(); + listE.useDIPLOIDs(); + return true; + //TraceManager.addDev("tm generated:"); + //tm.print(); + } + } + + public Vector convertToCheckingErrorTMLErrors(ArrayList<TMLError> warningsOptimize, TDiagramPanel _tdp) { + Vector v = new Vector(); + CheckingError warning; + for(TMLError error: warningsOptimize) { + warning = new CheckingError(CheckingError.BEHAVIOR_ERROR, error.message); + warning.setTDiagramPanel(_tdp); + warning.setTMLTask(error.task); + v.add(warning); + } + return v; + } + + public boolean translateTMLComponentDesign(Vector componentsToTakeIntoAccount, TMLComponentDesignPanel tmlcdp, boolean optimize) { + ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); + warnings = new Vector(); + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + + GTMLModeling gctmlm = new GTMLModeling(tmlcdp, true); gctmlm.putPrefixName(true); - gctmlm.setComponents(componentsToTakeIntoAccount); - tmlm = gctmlm.translateToTMLModeling(true); - mgui.generateTMLTxt(); - artificialtmap = tmlm.getDefaultMapping(); - tmap = null; - listE = gctmlm.getCorrespondanceTable(); - - //TraceManager.addDev("TML Modeling translated"); - //TraceManager.addDev("----- TML Modeling -----"); - //TraceManager.addDev(tmlm.toString()); - //TraceManager.addDev("------------------------"); - //mgui.generateTMLTxt(); - checkingErrors = gctmlm.getCheckingErrors(); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - return false; - } else { - if (optimize) { - //TraceManager.addDev("OPTIMIZE"); - warningsOptimize = tmlm.optimize(); - } - - tmState = 2; - //TraceManager.addDev("tm generated:"); - mgui.resetAllDIPLOIDs(); - listE.useDIPLOIDs(); - return true; - //tm.print(); - } - } - - public boolean translateTMLModeling() { - TML2TURTLE tt = new TML2TURTLE(tmlm); - tm = tt.generateTURTLEModeling(); - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - return false; - } else { - // Optimize - //TraceManager.addDev("Optimize"); - tm.optimize(); - //TraceManager.addDev("Optimize done"); - TURTLEModelChecker tmc = new TURTLEModelChecker(tm); - checkingErrors = tmc.syntaxAnalysisChecking(); - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - return false; - } else { - mgui.setMode(MainGUI.GEN_DESIGN_OK); - return true; - } - } - } - - public boolean checkSyntaxTMLMapping(Vector nodesToTakeIntoAccount, TMLArchiPanel tmlap, boolean optimize) { - ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); - warnings = new Vector(); - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - //TraceManager.addDev("New TML Mapping"); - GTMLModeling gtmlm = new GTMLModeling(tmlap, true); - - - gtmlm.setNodes(nodesToTakeIntoAccount); //simply transforms the parameter from a Vector to LinkedList - tmlm = null; - tm = null; - tmState = 1; - tmap = gtmlm.translateToTMLMapping(); - - listE = gtmlm.getCorrespondanceTable(); - - checkingErrors = gtmlm.getCheckingErrors(); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - analyzeErrors(); - warnings = gtmlm.getCheckingWarnings(); - return false; - } else { - //tmap.removeAllRandomSequences(); - if (optimize) { - warningsOptimize = tmap.optimize(); - } - warnings.addAll(convertToCheckingErrorTMLErrors(warningsOptimize, tmlap.tmlap)); - mgui.resetAllDIPLOIDs(); - listE.useDIPLOIDs(); - mgui.setMode(MainGUI.GEN_DESIGN_OK); - return true; - } - } - - //Newly introduced to perform Syntax check of CP diagrams. Actually the mapping of CPs onto the architecture is done via SDs, - //onto the application is done onto blocks in the architecture. It would be better to have all the mapping information in one - //diagram. Up to now, not taking the mapping information into account - public boolean checkSyntaxTMLCP( Vector nodesToTakeIntoAccount, TMLCommunicationPatternPanel tmlcpp, boolean optimize ) { - - //nodesToTakeIntoAccount is the list of SDs and ADs corresponding that compose the CP selected for syntax checking - ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); - warnings = new Vector(); - mgui.setMode( MainGUI.VIEW_SUGG_DESIGN_KO ); - GTMLModeling gtmlm = new GTMLModeling( tmlcpp, true ); - - TraceManager.addDev( "NodesToTakeIntoAccount :" + nodesToTakeIntoAccount.toString() ); - - //Useless because nodesToTakeIntoAccount does not include the mainCP! - //gtmlm.setDiagramPanels( nodesToTakeIntoAccount ); //passes the list of nodes (SDs and ADs) to gtml as a LinkedList - tmlm = null; - tm = null; - tmState = 1; - //tmlcp is the data structure for a CP corresponding to the graphical description with diagrams - tmlcp = gtmlm.translateToTMLCPDataStructure( tmlcpp.getName() ); - //tmlcp.toString(); - /*TraceManager.addDev( "I AM ABOUT TO GENERATE THE TMLtxt CODE!" ); - mgui.generateTMLTxt(); //Now generating the TMLtxt code - TraceManager.addDev( "TMLtxt CODE GENERATION DONE" );*/ - listE = gtmlm.getCorrespondanceTable(); - //for( CorrespondanceTGElement element : listE.getNames() ) { - TraceManager.addDev( "Printing listE.getNames: " + listE.getNames().toString() ); - TraceManager.addDev( "Printing listE.getTG: " + listE.getTG().toString() ); - TraceManager.addDev( "Printing listE.getPanelNames: " + listE.getPanelNames().toString() ); - TraceManager.addDev( "Printing listE.getData: " + listE.getData().toString() ); - //} - checkingErrors = gtmlm.getCheckingErrors(); - - if( (checkingErrors != null) && (checkingErrors.size() > 0) ) { - //analyzeErrors(); - - return false; - } - /*else { - //tmcp.removeAllRandomSequences(); - if( optimize ) { - warningsOptimize = tmap.optimize(); - //warningsOptimize = tmcp.optimize(); - } - warnings.addAll( convertToCheckingErrorTMLErrors(warningsOptimize, tmlcpp.tmlcpp ) ); - mgui.resetAllDIPLOIDs(); - listE.useDIPLOIDs(); - mgui.setMode( MainGUI.GEN_DESIGN_OK ); - return true; - }*/ - return true; //It means that there are no errors - } - - public boolean translateTMLMapping(boolean _sample, boolean _channel, boolean _event, boolean _request, boolean _exec, boolean _busTransfers, boolean _scheduling, boolean _taskState, boolean _channelState, boolean _branching, boolean _terminateCPU, boolean _terminateCPUs, boolean _clocked, String _tickValue, boolean _endClocked, boolean _countTick, boolean _maxCountTick, String _maxCountTickValue, boolean _randomTask) { - //TraceManager.addDev("TML=" + tmap.toString()); - Mapping2TIF m2tif = new Mapping2TIF(tmap); - m2tif.setShowSampleChannels(_sample); - m2tif.setShowChannels(_channel); - m2tif.setShowEvents(_event); - m2tif.setShowRequests(_request); - m2tif.setShowExecs(_exec); - m2tif.setShowBusTransfers(_busTransfers); - m2tif.setShowScheduling(_scheduling); - m2tif.setIsClocked(_clocked); - m2tif.setTickValue(_tickValue); - m2tif.setIsEndClocked(_endClocked); - m2tif.setIsCountTick(_countTick); - m2tif.hasMaxCountTick(_maxCountTick); - if (_maxCountTick) { - m2tif.setMaxCountTickValue(_maxCountTickValue); - } - m2tif.setShowTaskState(_taskState); - m2tif.setShowChannelState(_channelState); - m2tif.setShowBlockedCPU(_terminateCPU); - m2tif.setShowTerminateCPUs(_terminateCPUs); - m2tif.setShowBranching(_branching); - m2tif.setRandomTasks(_randomTask); - tm = m2tif.generateTURTLEModeling(); - //StringBuffer sb = tm.printToStringBuffer(); - //TraceManager.addDev("tm=" + sb); - - TraceManager.addDev("tm generated from TMAP"); - checkingErrors = m2tif.getCheckingErrors(); - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } - mgui.setMode(MainGUI.GEN_DESIGN_OK); - return true; - } - - //Added by Solange - public void generateLists(ProactiveDesignPanel pdp) { - gpdtemp = new GProactiveDesign(pdp); - } - // - - public boolean translateTURTLEOSDesign(TURTLEOSDesignPanel tosdp) { - warnings = new Vector(); - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - //TraceManager.addDev("New TML Modeling"); - GTURTLEOSModeling gosm = new GTURTLEOSModeling(tosdp); - //gtmlm.setTasks(tasksToTakeIntoAccount); - //tmlm = gosm.translateToTMLModeling(); - //TraceManager.addDev("TML Modeling translated"); - //TraceManager.addDev("----- TML Modeling -----"); - //TraceManager.addDev(tmlm.toString()); - //TraceManager.addDev("------------------------"); - tm = gosm.generateTURTLEModeling(); - tmState = 0; - checkingErrors = gosm.getCheckingErrors(); - - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } else { - - //TraceManager.addDev("Optimize"); - tm.optimize(); - //TraceManager.addDev("Optimize done"); - TURTLEModelChecker tmc = new TURTLEModelChecker(tm); - checkingErrors = tmc.syntaxAnalysisChecking(); - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } else { - warnings = gosm.getCheckingWarnings(); - warnings.addAll(tmc.getWarnings()); - mgui.setMode(MainGUI.GEN_DESIGN_OK); - return true; - } - } - } - - - public boolean translateProactiveDesign(ProactiveDesignPanel pdp) { - mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); - GProactiveDesign gpd = new GProactiveDesign(pdp); - - tm = gpd.generateTURTLEModeling(); - tmState = 0; - - if (gpd.checkSyntax() == false) { - TraceManager.addDev("Errors found"); - warnings = gpd.getCheckingWarnings(); - checkingErrors = gpd.getCheckingErrors(); - return false; - } - TURTLEModelChecker tmc = new TURTLEModelChecker(tm); - checkingErrors = tmc.syntaxAnalysisChecking(); - warnings = tmc.getWarnings(); - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } else { - //A faire: - // tm.optimize(); - // warnings = gpd.getCheckingWarnings(); - // warnings.addAll(tmc.getWarnings()); - mgui.setMode(MainGUI.GEN_DESIGN_OK); - return true; - } - - } - - // Generates for all observers, a TURTLE modeling for checking it - public boolean generateTMsForRequirementAnalysis(Vector reqs, RequirementDiagramPanel rdp) { - rm = new RequirementModeling(reqs, rdp, mgui); - checkingErrors = rm.getCheckingErrors(); - warnings = rm.getWarnings(); - if ((checkingErrors != null) && (checkingErrors.size() > 0)){ - return false; - } else { - //mgui.setMode(mgui.GEN_DESIGN_OK); - languageID = MATRIX; - return true; - } - } - - public RequirementModeling getRequirementModeling() { - return rm; - } - - public void removeBreakpoint(Point p) { - if (listE == null) { - return; - } - - listE.removeBreakpoint(p); - } - - public void addBreakpoint(Point p) { - if (listE == null) { - return; - } - - listE.addBreakpoint(p); - } - - private void analyzeErrors() { - CheckingError ce; - TGComponent tgc; - - for(int i=0; i<checkingErrors.size(); i++) { - ce = (CheckingError)(checkingErrors.get(i)); - if (ce != null) { - tgc = ce.getTGComponent(); - if (tgc != null) { - analyzeErrorOnComponent(tgc); - } - } - } - } - - private void analyzeErrorOnComponent(TGComponent _tgc) { - if (_tgc instanceof BasicErrorHighlight) { - ((BasicErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN); - } else if (_tgc instanceof ActionStateErrorHighlight) { - ((ActionStateErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN_AS); - } - } - - public boolean makeEBRDD(EBRDDPanel tdp) { - EBRDDTranslator ebrddt = new EBRDDTranslator(); - ebrdd = ebrddt.generateEBRDD(tdp, tdp.getName()); - warnings = ebrddt.getWarnings(); - checkingErrors = ebrddt.getErrors(); - if (checkingErrors.size() > 0) { - return false; - } - TraceManager.addDev("the EBRDD:\n" + ebrdd.toString()); - return true; - } - - public void setElementsOfSearchTree(Vector<Object> elements) { - st.setElements(elements); - } + gctmlm.setComponents(componentsToTakeIntoAccount); + tmlm = gctmlm.translateToTMLModeling(true); + mgui.generateTMLTxt(); + artificialtmap = tmlm.getDefaultMapping(); + tmap = null; + listE = gctmlm.getCorrespondanceTable(); + + //TraceManager.addDev("TML Modeling translated"); + //TraceManager.addDev("----- TML Modeling -----"); + //TraceManager.addDev(tmlm.toString()); + //TraceManager.addDev("------------------------"); + //mgui.generateTMLTxt(); + checkingErrors = gctmlm.getCheckingErrors(); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + return false; + } else { + if (optimize) { + //TraceManager.addDev("OPTIMIZE"); + warningsOptimize = tmlm.optimize(); + } + + tmState = 2; + //TraceManager.addDev("tm generated:"); + mgui.resetAllDIPLOIDs(); + listE.useDIPLOIDs(); + return true; + //tm.print(); + } + } + + public boolean translateTMLModeling() { + TML2TURTLE tt = new TML2TURTLE(tmlm); + tm = tt.generateTURTLEModeling(); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + return false; + } else { + // Optimize + //TraceManager.addDev("Optimize"); + tm.optimize(); + //TraceManager.addDev("Optimize done"); + TURTLEModelChecker tmc = new TURTLEModelChecker(tm); + checkingErrors = tmc.syntaxAnalysisChecking(); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + return false; + } else { + mgui.setMode(MainGUI.GEN_DESIGN_OK); + return true; + } + } + } + + public boolean checkSyntaxTMLMapping(Vector nodesToTakeIntoAccount, TMLArchiPanel tmlap, boolean optimize) { + ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); + warnings = new Vector(); + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + //TraceManager.addDev("New TML Mapping"); + GTMLModeling gtmlm = new GTMLModeling(tmlap, true); + + + gtmlm.setNodes(nodesToTakeIntoAccount); //simply transforms the parameter from a Vector to LinkedList + tmlm = null; + tm = null; + tmState = 1; + tmap = gtmlm.translateToTMLMapping(); + + listE = gtmlm.getCorrespondanceTable(); + + checkingErrors = gtmlm.getCheckingErrors(); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + analyzeErrors(); + warnings = gtmlm.getCheckingWarnings(); + return false; + } else { + //tmap.removeAllRandomSequences(); + if (optimize) { + warningsOptimize = tmap.optimize(); + } + warnings.addAll(convertToCheckingErrorTMLErrors(warningsOptimize, tmlap.tmlap)); + mgui.resetAllDIPLOIDs(); + listE.useDIPLOIDs(); + mgui.setMode(MainGUI.GEN_DESIGN_OK); + return true; + } + } + + //Newly introduced to perform Syntax check of CP diagrams. Actually the mapping of CPs onto the architecture is done via SDs, + //onto the application is done onto blocks in the architecture. It would be better to have all the mapping information in one + //diagram. Up to now, not taking the mapping information into account + public boolean checkSyntaxTMLCP( Vector nodesToTakeIntoAccount, TMLCommunicationPatternPanel tmlcpp, boolean optimize ) { + + //nodesToTakeIntoAccount is the list of SDs and ADs corresponding that compose the CP selected for syntax checking + ArrayList<TMLError> warningsOptimize = new ArrayList<TMLError>(); + warnings = new Vector(); + mgui.setMode( MainGUI.VIEW_SUGG_DESIGN_KO ); + GTMLModeling gtmlm = new GTMLModeling( tmlcpp, true ); + + TraceManager.addDev( "NodesToTakeIntoAccount :" + nodesToTakeIntoAccount.toString() ); + + //Useless because nodesToTakeIntoAccount does not include the mainCP! + //gtmlm.setDiagramPanels( nodesToTakeIntoAccount ); //passes the list of nodes (SDs and ADs) to gtml as a LinkedList + tmlm = null; + tm = null; + tmState = 1; + //tmlcp is the data structure for a CP corresponding to the graphical description with diagrams + tmlcp = gtmlm.translateToTMLCPDataStructure( tmlcpp.getName() ); + //tmlcp.toString(); + /*TraceManager.addDev( "I AM ABOUT TO GENERATE THE TMLtxt CODE!" ); + mgui.generateTMLTxt(); //Now generating the TMLtxt code + TraceManager.addDev( "TMLtxt CODE GENERATION DONE" );*/ + listE = gtmlm.getCorrespondanceTable(); + //for( CorrespondanceTGElement element : listE.getNames() ) { + TraceManager.addDev( "Printing listE.getNames: " + listE.getNames().toString() ); + TraceManager.addDev( "Printing listE.getTG: " + listE.getTG().toString() ); + TraceManager.addDev( "Printing listE.getPanelNames: " + listE.getPanelNames().toString() ); + TraceManager.addDev( "Printing listE.getData: " + listE.getData().toString() ); + //} + checkingErrors = gtmlm.getCheckingErrors(); + + if( (checkingErrors != null) && (checkingErrors.size() > 0) ) { + //analyzeErrors(); + + return false; + } + /*else { + //tmcp.removeAllRandomSequences(); + if( optimize ) { + warningsOptimize = tmap.optimize(); + //warningsOptimize = tmcp.optimize(); + } + warnings.addAll( convertToCheckingErrorTMLErrors(warningsOptimize, tmlcpp.tmlcpp ) ); + mgui.resetAllDIPLOIDs(); + listE.useDIPLOIDs(); + mgui.setMode( MainGUI.GEN_DESIGN_OK ); + return true; + }*/ + return true; //It means that there are no errors + } + + public boolean translateTMLMapping(boolean _sample, boolean _channel, boolean _event, boolean _request, boolean _exec, boolean _busTransfers, boolean _scheduling, boolean _taskState, boolean _channelState, boolean _branching, boolean _terminateCPU, boolean _terminateCPUs, boolean _clocked, String _tickValue, boolean _endClocked, boolean _countTick, boolean _maxCountTick, String _maxCountTickValue, boolean _randomTask) { + //TraceManager.addDev("TML=" + tmap.toString()); + Mapping2TIF m2tif = new Mapping2TIF(tmap); + m2tif.setShowSampleChannels(_sample); + m2tif.setShowChannels(_channel); + m2tif.setShowEvents(_event); + m2tif.setShowRequests(_request); + m2tif.setShowExecs(_exec); + m2tif.setShowBusTransfers(_busTransfers); + m2tif.setShowScheduling(_scheduling); + m2tif.setIsClocked(_clocked); + m2tif.setTickValue(_tickValue); + m2tif.setIsEndClocked(_endClocked); + m2tif.setIsCountTick(_countTick); + m2tif.hasMaxCountTick(_maxCountTick); + if (_maxCountTick) { + m2tif.setMaxCountTickValue(_maxCountTickValue); + } + m2tif.setShowTaskState(_taskState); + m2tif.setShowChannelState(_channelState); + m2tif.setShowBlockedCPU(_terminateCPU); + m2tif.setShowTerminateCPUs(_terminateCPUs); + m2tif.setShowBranching(_branching); + m2tif.setRandomTasks(_randomTask); + tm = m2tif.generateTURTLEModeling(); + //StringBuffer sb = tm.printToStringBuffer(); + //TraceManager.addDev("tm=" + sb); + + TraceManager.addDev("tm generated from TMAP"); + checkingErrors = m2tif.getCheckingErrors(); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } + mgui.setMode(MainGUI.GEN_DESIGN_OK); + return true; + } + + //Added by Solange + public void generateLists(ProactiveDesignPanel pdp) { + gpdtemp = new GProactiveDesign(pdp); + } + // + + public boolean translateTURTLEOSDesign(TURTLEOSDesignPanel tosdp) { + warnings = new Vector(); + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + //TraceManager.addDev("New TML Modeling"); + GTURTLEOSModeling gosm = new GTURTLEOSModeling(tosdp); + //gtmlm.setTasks(tasksToTakeIntoAccount); + //tmlm = gosm.translateToTMLModeling(); + //TraceManager.addDev("TML Modeling translated"); + //TraceManager.addDev("----- TML Modeling -----"); + //TraceManager.addDev(tmlm.toString()); + //TraceManager.addDev("------------------------"); + tm = gosm.generateTURTLEModeling(); + tmState = 0; + checkingErrors = gosm.getCheckingErrors(); + + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } else { + + //TraceManager.addDev("Optimize"); + tm.optimize(); + //TraceManager.addDev("Optimize done"); + TURTLEModelChecker tmc = new TURTLEModelChecker(tm); + checkingErrors = tmc.syntaxAnalysisChecking(); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } else { + warnings = gosm.getCheckingWarnings(); + warnings.addAll(tmc.getWarnings()); + mgui.setMode(MainGUI.GEN_DESIGN_OK); + return true; + } + } + } + + + public boolean translateProactiveDesign(ProactiveDesignPanel pdp) { + mgui.setMode(MainGUI.VIEW_SUGG_DESIGN_KO); + GProactiveDesign gpd = new GProactiveDesign(pdp); + + tm = gpd.generateTURTLEModeling(); + tmState = 0; + + if (gpd.checkSyntax() == false) { + TraceManager.addDev("Errors found"); + warnings = gpd.getCheckingWarnings(); + checkingErrors = gpd.getCheckingErrors(); + return false; + } + TURTLEModelChecker tmc = new TURTLEModelChecker(tm); + checkingErrors = tmc.syntaxAnalysisChecking(); + warnings = tmc.getWarnings(); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } else { + //A faire: + // tm.optimize(); + // warnings = gpd.getCheckingWarnings(); + // warnings.addAll(tmc.getWarnings()); + mgui.setMode(MainGUI.GEN_DESIGN_OK); + return true; + } + + } + + // Generates for all observers, a TURTLE modeling for checking it + public boolean generateTMsForRequirementAnalysis(Vector reqs, RequirementDiagramPanel rdp) { + rm = new RequirementModeling(reqs, rdp, mgui); + checkingErrors = rm.getCheckingErrors(); + warnings = rm.getWarnings(); + if ((checkingErrors != null) && (checkingErrors.size() > 0)){ + return false; + } else { + //mgui.setMode(mgui.GEN_DESIGN_OK); + languageID = MATRIX; + return true; + } + } + + public RequirementModeling getRequirementModeling() { + return rm; + } + + public void removeBreakpoint(Point p) { + if (listE == null) { + return; + } + + listE.removeBreakpoint(p); + } + + public void addBreakpoint(Point p) { + if (listE == null) { + return; + } + + listE.addBreakpoint(p); + } + + private void analyzeErrors() { + CheckingError ce; + TGComponent tgc; + + for(int i=0; i<checkingErrors.size(); i++) { + ce = (CheckingError)(checkingErrors.get(i)); + if (ce != null) { + tgc = ce.getTGComponent(); + if (tgc != null) { + analyzeErrorOnComponent(tgc); + } + } + } + } + + private void analyzeErrorOnComponent(TGComponent _tgc) { + if (_tgc instanceof BasicErrorHighlight) { + ((BasicErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN); + } else if (_tgc instanceof ActionStateErrorHighlight) { + ((ActionStateErrorHighlight)_tgc).setStateAction(ErrorHighlight.UNKNOWN_AS); + } + } + + public boolean makeEBRDD(EBRDDPanel tdp) { + EBRDDTranslator ebrddt = new EBRDDTranslator(); + ebrdd = ebrddt.generateEBRDD(tdp, tdp.getName()); + warnings = ebrddt.getWarnings(); + checkingErrors = ebrddt.getErrors(); + if (checkingErrors.size() > 0) { + return false; + } + TraceManager.addDev("the EBRDD:\n" + ebrdd.toString()); + return true; + } + + public void setElementsOfSearchTree(Vector<Object> elements) { + st.setElements(elements); + } } diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java index 68372f101caa64970be84d7e718a3a69bde10d33..61cdb55718d4c8e2343532ff1a5f984e06e8aeea 100755 --- a/src/ui/MainGUI.java +++ b/src/ui/MainGUI.java @@ -123,7 +123,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe public Container framePanel; //Main pane public Container panelForTab, panelForTree; //panelForAnalysisTab; //panelForDesignTab; public JSplitPane split; - + @@ -147,8 +147,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe //Menubar private JMenuBarTurtle jmenubarturtle; - - + + // Annex windows JFrameCode javaframe; @@ -293,7 +293,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe PeriodicBehaviorThread pbt; public MainGUI(boolean _systemcOn, boolean _lotosOn, boolean _proactiveOn, boolean _tpnOn, boolean _osOn, boolean _uppaalOn, boolean _ncOn, boolean _avatarOn, boolean _proverifOn, boolean - _avatarOnly, boolean _experimental) { + _avatarOnly, boolean _experimental) { systemcOn = _systemcOn; lotosOn = _lotosOn; proactiveOn = _proactiveOn; @@ -497,36 +497,36 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe public void changeMade(TDiagramPanel tdp, int type) { hasChanged = true; if (tdp != null) { - switch (type) { - case -1: - // Structural change - break; - case TDiagramPanel.NEW_COMPONENT: - //TraceManager.addDev("New Component"); - tdp.structureChanged(); - break; - case TDiagramPanel.NEW_CONNECTOR: - //TraceManager.addDev("New Connector"); - tdp.structureChanged(); - break; - case TDiagramPanel.REMOVE_COMPONENT: - //TraceManager.addDev("Remove Component"); - tdp.structureChanged(); - break; - case TDiagramPanel.MOVE_CONNECTOR: - //TraceManager.addDev("Move Connector"); - tdp.structureChanged(); - break; - case TDiagramPanel.CHANGE_VALUE_COMPONENT: - //TraceManager.addDev("Value of component changed"); - tdp.valueChanged(); - break; - case TDiagramPanel.MOVE_COMPONENT: - //TraceManager.addDev("Component moved"); - break; - default: + switch (type) { + case -1: + // Structural change + break; + case TDiagramPanel.NEW_COMPONENT: + //TraceManager.addDev("New Component"); + tdp.structureChanged(); + break; + case TDiagramPanel.NEW_CONNECTOR: + //TraceManager.addDev("New Connector"); + tdp.structureChanged(); + break; + case TDiagramPanel.REMOVE_COMPONENT: + //TraceManager.addDev("Remove Component"); + tdp.structureChanged(); + break; + case TDiagramPanel.MOVE_CONNECTOR: + //TraceManager.addDev("Move Connector"); + tdp.structureChanged(); + break; + case TDiagramPanel.CHANGE_VALUE_COMPONENT: + //TraceManager.addDev("Value of component changed"); + tdp.valueChanged(); + break; + case TDiagramPanel.MOVE_COMPONENT: + //TraceManager.addDev("Component moved"); + break; + default: - } + } } setMode(MODEL_CHANGED); Point p; @@ -617,11 +617,11 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe if (mainBar != null) { mainBar.activateSearch(true); } - //@author: Huy TRUONG - actions[TGUIAction.ACT_EXTERNAL_SEARCH].setEnabled(true); + //@author: Huy TRUONG + actions[TGUIAction.ACT_EXTERNAL_SEARCH].setEnabled(true); //disable when there is no text in search textfield actions[TGUIAction.ACT_INTERNAL_SEARCH].setEnabled(false); - //-- + //-- break; case MODEL_OK: actions[TGUIAction.ACT_SAVE_TIF].setEnabled(true); @@ -1159,7 +1159,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe //ystem.out.println("Design added"); return index; } - + private int addAvatarMethodologyPanel(String name, int index, boolean addDefaultElements) { if (index == -1) { index = tabs.size(); @@ -1211,7 +1211,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe //ystem.out.println("Design added"); return index; } - + private int addTMLArchiPanel(String name, int index) { if (index == -1) { index = tabs.size(); @@ -1228,20 +1228,20 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe return index; } - //Return the list of all the TMLArchiDiagramPanels - public Vector<TMLArchiPanel> getTMLArchiDiagramPanels() { + //Return the list of all the TMLArchiDiagramPanels + public Vector<TMLArchiPanel> getTMLArchiDiagramPanels() { - Vector<TMLArchiPanel> panelsList = new Vector<TMLArchiPanel>(); - TURTLEPanel tp; + Vector<TMLArchiPanel> panelsList = new Vector<TMLArchiPanel>(); + TURTLEPanel tp; - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if ( tp instanceof TMLArchiPanel) { - panelsList.add( (TMLArchiPanel) (tp) ); - } - } - return panelsList; - } + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if ( tp instanceof TMLArchiPanel) { + panelsList.add( (TMLArchiPanel) (tp) ); + } + } + return panelsList; + } public Vector<String> getAllTMLTaskNames() { TURTLEPanel tp; @@ -1262,8 +1262,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe for(int i=0; i<tabs.size(); i++) { tp = (TURTLEPanel)(tabs.elementAt(i)); - if( tp instanceof TMLCommunicationPatternPanel ) { - list.add( (TMLCommunicationPatternPanel) tp ); + if( tp instanceof TMLCommunicationPatternPanel ) { + list.add( (TMLCommunicationPatternPanel) tp ); } } return list; @@ -1308,20 +1308,20 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe return list; } - public Vector<String> getAllTMLEventNames() { - TURTLEPanel tp; - Vector<String> list = new Vector<String>(); - - for( int i = 0; i < tabs.size(); i++ ) { - tp = ( TURTLEPanel )( tabs.elementAt(i) ); - if ( tp instanceof TMLDesignPanel ) { - list.addAll( ( (TMLDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) ); - } else if ( tp instanceof TMLComponentDesignPanel ) { - list.addAll( ( (TMLComponentDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) ); - } - } - return list; - } + public Vector<String> getAllTMLEventNames() { + TURTLEPanel tp; + Vector<String> list = new Vector<String>(); + + for( int i = 0; i < tabs.size(); i++ ) { + tp = ( TURTLEPanel )( tabs.elementAt(i) ); + if ( tp instanceof TMLDesignPanel ) { + list.addAll( ( (TMLDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) ); + } else if ( tp instanceof TMLComponentDesignPanel ) { + list.addAll( ( (TMLComponentDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) ); + } + } + return list; + } public Vector<String> getAllNonMappedTMLTaskNames(TMLArchiDiagramPanel tadp, String ref, String name) { TURTLEPanel tp; @@ -1342,7 +1342,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe return list; } - + public Vector<String> getAllNonMappedAvatarBlockNames(ADDDiagramPanel tadp, String ref, String name) { TURTLEPanel tp; Vector<String> list = new Vector<String>(); @@ -1358,7 +1358,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe return list; } - + public Vector<String> getAllNonMappedAvatarChannelNames(ADDDiagramPanel tadp, String ref, String name) { TURTLEPanel tp; Vector<String> list = new Vector<String>(); @@ -1520,7 +1520,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe mainTabbedPane.setSelectedIndex(index); return index; } - + public int createAvatarMethodology(String name) { int index = addAvatarMethodologyPanel(name, -1, false); mainTabbedPane.setSelectedIndex(index); @@ -1550,7 +1550,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe mainTabbedPane.setSelectedIndex(index); return index; } - + public int createADD(String name) { int index = addADDPanel(name, -1); mainTabbedPane.setSelectedIndex(index); @@ -1858,7 +1858,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe //paneAction(null); //frame.repaint(); } - + public void newAvatarMethodology() { //TraceManager.addDev("NEW DESIGN"); addAvatarMethodologyPanel("AVATAR_Methodology", -1, true); @@ -1893,8 +1893,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe mainTabbedPane.setSelectedIndex(tabs.size()-1); //paneAction(null); //frame.repaint(); - } - + } + public void newADD() { TraceManager.addDev("NEW Avatar deployment"); addADDPanel("Avatar Deployment", -1); @@ -2399,12 +2399,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe // close current modeling closeTurtleModeling(); - - + + // open the new TURTLE modeling newTurtleModeling(); - + gtm.enableUndo(false); // Update configuration @@ -2457,12 +2457,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe // close current modeling closeTurtleModeling(); - - + + // open the new TURTLE modeling newTurtleModeling(); - + gtm.enableUndo(false); //TraceManager.addDev("Loading"); @@ -3169,5303 +3169,5326 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe } } - // AVATAR - } else if (tp instanceof AvatarDesignPanel) { - //Design - AvatarDesignPanel adp = (AvatarDesignPanel)tp; - //JDialogModelChecking.validated = adp.validated; - //JDialogModelChecking.ignored = adp.ignored; - tclassesToValidate = new Vector(); - JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, tclassesToValidate, adp.getAvatarBDPanel().getFullBlockList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized()); - if (!automatic) { - GraphicLib.centerOnParent(jdmc); - jdmc.setVisible(true); // blocked until dialog has been closed + // AttackTree + } else if (tp instanceof AttackTreePanel) { + AttackTreePanel atp = (AttackTreePanel) tp; + b = gtm.translateAttackTreePanel(atp); + if (b) { + setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK); + ret = true; + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). )", + "Syntax analysis successful on attack tree", + JOptionPane.INFORMATION_MESSAGE); + } } else { - jdmc.closeDialog(); - } + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "The Attack tree contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); + } + } - if (jdmc.hasBeenCancelled()) { - return false; - } - adp.resetModelBacktracingProVerif(); + // AVATAR + } else if (tp instanceof AvatarDesignPanel) { + //Design + AvatarDesignPanel adp = (AvatarDesignPanel)tp; + //JDialogModelChecking.validated = adp.validated; + //JDialogModelChecking.ignored = adp.ignored; + tclassesToValidate = new Vector(); + JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, tclassesToValidate, adp.getAvatarBDPanel().getFullBlockList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized()); + if (!automatic) { + GraphicLib.centerOnParent(jdmc); + jdmc.setVisible(true); // blocked until dialog has been closed + } else { + jdmc.closeDialog(); + } - adp.setValidated(jdmc.getValidated()); - adp.setIgnored(jdmc.getIgnored()); - adp.setOptimized(jdmc.getOptimized()); + if (jdmc.hasBeenCancelled()) { + return false; + } + adp.resetModelBacktracingProVerif(); - boolean optimize = jdmc.getOptimized(); - if (tclassesToValidate.size() > 0) { - /*adp.validated = JDialogModelChecking.validated; - adp.ignored = JDialogModelChecking.ignored;*/ - b = gtm.checkAvatarDesign(tclassesToValidate, adp, optimize); - if (b) { - ret = true; - setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK); - //setMode(MainGUI.MODEL_PROVERIF_OK); - //setMode(MainGUI.GEN_DESIGN_OK); - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform simulations or formal proofs (UPPAAL)", - "Syntax analysis successful on avatar design diagrams", - JOptionPane.INFORMATION_MESSAGE); - } - } else { - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "The Avatar modeling contains several errors", - "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE); - } - } - } + adp.setValidated(jdmc.getValidated()); + adp.setIgnored(jdmc.getIgnored()); + adp.setOptimized(jdmc.getOptimized()); - // NC - } else if (tp instanceof NCPanel) { - NCPanel ncp = (NCPanel) tp; - b = gtm.translateNC(ncp); + boolean optimize = jdmc.getOptimized(); + if (tclassesToValidate.size() > 0) { + /*adp.validated = JDialogModelChecking.validated; + adp.ignored = JDialogModelChecking.ignored;*/ + b = gtm.checkAvatarDesign(tclassesToValidate, adp, optimize); if (b) { - //setMode(MainGUI.MODEL_OK_NC); ret = true; + setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK); + //setMode(MainGUI.MODEL_PROVERIF_OK); + //setMode(MainGUI.GEN_DESIGN_OK); if (!automatic) { JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s)", - "Syntax analysis successful on NC diagram", + "0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform simulations or formal proofs (UPPAAL)", + "Syntax analysis successful on avatar design diagrams", JOptionPane.INFORMATION_MESSAGE); } } else { if (!automatic) { JOptionPane.showMessageDialog(frame, - "The NC diagram contains several errors", + "The Avatar modeling contains several errors", "Syntax analysis failed", JOptionPane.INFORMATION_MESSAGE); } } + } - } else if (tp instanceof TMLDesignPanel) { - TMLDesignPanel tmldp = (TMLDesignPanel)tp; - JDialogSelectTMLTask.validated = tmldp.validated; - JDialogSelectTMLTask.ignored = tmldp.ignored; - Vector tmlTasksToValidate = new Vector(); - JDialogSelectTMLTask jdstmlt = new JDialogSelectTMLTask(frame, tmlTasksToValidate, tmldp.tmltdp.getComponentList(), "Choosing TML tasks to validate"); - if (!automatic) { - GraphicLib.centerOnParent(jdstmlt); - jdstmlt.setVisible(true); // Blocked until dialog has been closed - } else { - jdstmlt.closeDialog(); - } - if (tmlTasksToValidate.size() > 0) { - tmldp.validated = JDialogSelectTMLTask.validated; - tmldp.ignored = JDialogSelectTMLTask.ignored; - b = gtm.translateTMLDesign(tmlTasksToValidate, tmldp, jdstmlt.getOptimize()); - if (b) { - //setMode(MainGUI.MODEL_OK); - setMode(MainGUI.GEN_SYSTEMC_OK); - setMode(MainGUI.MODEL_OK); - ret = true; - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)", - "Syntax analysis successful on TML designs", - JOptionPane.INFORMATION_MESSAGE); - } - } else { - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "The TML design contains several errors", - "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE); - } - } - } - } else if (tp instanceof TMLComponentDesignPanel) { - TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel)tp; - JDialogSelectTMLComponent.validated = tmlcdp.validated; - JDialogSelectTMLComponent.ignored = tmlcdp.ignored; - Vector tmlComponentsToValidate = new Vector(); - JDialogSelectTMLComponent jdstmlc = new JDialogSelectTMLComponent(frame, tmlComponentsToValidate, tmlcdp.tmlctdp.getComponentList(), "Choosing TML components to validate"); + // NC + } else if (tp instanceof NCPanel) { + NCPanel ncp = (NCPanel) tp; + b = gtm.translateNC(ncp); + if (b) { + //setMode(MainGUI.MODEL_OK_NC); + ret = true; if (!automatic) { - GraphicLib.centerOnParent(jdstmlc); - jdstmlc.setVisible(true); // Blocked until dialog has been closed - } else { - jdstmlc.closeDialog(); - } - if (tmlComponentsToValidate.size() > 0) { - tmlcdp.validated = JDialogSelectTMLComponent.validated; - tmlcdp.ignored = JDialogSelectTMLComponent.ignored; - b = gtm.translateTMLComponentDesign(tmlComponentsToValidate, tmlcdp, jdstmlc.getOptimize()); - if (b) { - //setMode(MainGUI.MODEL_OK); - setMode(MainGUI.GEN_SYSTEMC_OK); - setMode(MainGUI.MODEL_OK); - ret = true; - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)", - "Syntax analysis successful on TML designs", - JOptionPane.INFORMATION_MESSAGE); - } - } else { - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "The TML design contains several errors", - "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE); - } - } + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s)", + "Syntax analysis successful on NC diagram", + JOptionPane.INFORMATION_MESSAGE); } - } else if (tp instanceof TMLArchiPanel) { - TMLArchiPanel tmlap = (TMLArchiPanel)tp; - JDialogSelectTMLNodes.validated = tmlap.validated; - JDialogSelectTMLNodes.ignored = tmlap.ignored; - Vector tmlNodesToValidate = new Vector(); - JDialogSelectTMLNodes jdstmln = new JDialogSelectTMLNodes(frame, tmlNodesToValidate, tmlap.tmlap.getComponentList(), "Choosing Nodes to validate", tmlap.tmlap.getMasterClockFrequency()); + } else { if (!automatic) { - GraphicLib.centerOnParent(jdstmln); - jdstmln.setVisible(true); // Blocked until dialog has been closed - } else { - jdstmln.closeDialog(); - } - tmlap.tmlap.setMasterClockFrequency(jdstmln.getClock()); - - if (tmlNodesToValidate.size() > 0) { - tmlap.validated = JDialogSelectTMLNodes.validated; - tmlap.ignored = JDialogSelectTMLNodes.ignored; - //TraceManager.addDev("Ready to generate TML mapping!"); - b = gtm.checkSyntaxTMLMapping(tmlNodesToValidate, tmlap, jdstmln.getOptimize()); - if (b) { - //setMode(MainGUI.MODEL_OK); - setMode(MainGUI.GEN_SYSTEMC_OK); - setMode(MainGUI.MODEL_OK); - ret = true; - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)", - "Syntax analysis successful on TML mapping", - JOptionPane.INFORMATION_MESSAGE); - } - } else { - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "The TML mapping contains several errors", - "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE); - } - } + JOptionPane.showMessageDialog(frame, + "The NC diagram contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); } } - else if( tp instanceof TMLCommunicationPatternPanel ) { - TMLCommunicationPatternPanel tmlcpp = (TMLCommunicationPatternPanel) tp; - JDialogSelectCPDiagrams.validated = tmlcpp.validated; - JDialogSelectCPDiagrams.ignored = tmlcpp.ignored; - Vector tmlDiagramsToValidate = new Vector(); - JDialogSelectCPDiagrams jdscpd = new JDialogSelectCPDiagrams( frame, tmlDiagramsToValidate, tmlcpp.tmlcpp.getComponentList(), - "Choosing Diagrams to validate" ); - if( !automatic ) { - GraphicLib.centerOnParent( jdscpd ); - jdscpd.setVisible( true ); // Blocked until dialog has been closed - } - else { - jdscpd.closeDialog(); - } - if( tmlDiagramsToValidate.size() > 0 ) { - tmlcpp.validated = JDialogSelectCPDiagrams.validated; - tmlcpp.ignored = JDialogSelectCPDiagrams.ignored; - TraceManager.addDev("Ready to generate TML code for Communication Patterns!"); - b = gtm.checkSyntaxTMLCP( tmlDiagramsToValidate, tmlcpp, jdscpd.getOptimize() ); //Fills a data structure - //translateTMLComponentDesign - //and should say if it is correct or contains error in the return variable b - if( b ) { - //setMode(MainGUI.MODEL_OK); - setMode( MainGUI.GEN_SYSTEMC_OK ); - setMode( MainGUI.MODEL_OK ); - ret = true; - if( !automatic ) { - JOptionPane.showMessageDialog( frame, "0 error, " + getCheckingWarnings().size() + - " warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)", - "Syntax analysis successful on TML mapping", - JOptionPane.INFORMATION_MESSAGE ); - } - } - else { - if( !automatic ) { - JOptionPane.showMessageDialog( frame, "The Communication Patterns design contains several errors", "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE ); - } - } - } - } - else if( tp instanceof RequirementPanel ) { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (!(tdp instanceof RequirementDiagramPanel)) { - if (tdp instanceof EBRDDPanel) { - b = gtm.makeEBRDD((EBRDDPanel)tdp); - if (b) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s).", - "Syntax analysis successful on EBRDD", - JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(frame, - "The EBRDD contains several errors", - "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE); - } - } else { - return ret; + + } else if (tp instanceof TMLDesignPanel) { + TMLDesignPanel tmldp = (TMLDesignPanel)tp; + JDialogSelectTMLTask.validated = tmldp.validated; + JDialogSelectTMLTask.ignored = tmldp.ignored; + Vector tmlTasksToValidate = new Vector(); + JDialogSelectTMLTask jdstmlt = new JDialogSelectTMLTask(frame, tmlTasksToValidate, tmldp.tmltdp.getComponentList(), "Choosing TML tasks to validate"); + if (!automatic) { + GraphicLib.centerOnParent(jdstmlt); + jdstmlt.setVisible(true); // Blocked until dialog has been closed + } else { + jdstmlt.closeDialog(); + } + if (tmlTasksToValidate.size() > 0) { + tmldp.validated = JDialogSelectTMLTask.validated; + tmldp.ignored = JDialogSelectTMLTask.ignored; + b = gtm.translateTMLDesign(tmlTasksToValidate, tmldp, jdstmlt.getOptimize()); + if (b) { + //setMode(MainGUI.MODEL_OK); + setMode(MainGUI.GEN_SYSTEMC_OK); + setMode(MainGUI.MODEL_OK); + ret = true; + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)", + "Syntax analysis successful on TML designs", + JOptionPane.INFORMATION_MESSAGE); } - //TraceManager.addDev("No syntax checking for EBRDD: not yet implemented"); } else { - RequirementDiagramPanel rdp= (RequirementDiagramPanel)tdp; - JDialogSelectRequirements.validated = rdp.validated; - JDialogSelectRequirements.ignored = rdp.ignored; - Vector reqsToValidate = new Vector(); - JDialogSelectRequirements jdsreq = new JDialogSelectRequirements(frame, reqsToValidate, rdp.getComponentList(), "Choosing requirements to verify"); if (!automatic) { - GraphicLib.centerOnParent(jdsreq); - jdsreq.setVisible(true); // Blocked until dialog has been closed - } - if (reqsToValidate.size() > 0) { - rdp.validated = JDialogSelectRequirements.validated; - rdp.ignored = JDialogSelectRequirements.ignored; - b = gtm.generateTMsForRequirementAnalysis(reqsToValidate, rdp); - if (b) { - //setMode(MainGUI.GEN_SYSTEMC_OK); - setMode(MainGUI.REQ_OK); - ret = true; - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). You can now verify requirements' satisfiability", - "Syntax analysis successful on requirements", - JOptionPane.INFORMATION_MESSAGE); - } - - } else { - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "The requirement diagram contains several errors", - "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE); - } - } + JOptionPane.showMessageDialog(frame, + "The TML design contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); } } - } else if (tp instanceof ProactiveDesignPanel) { - // TraceManager.addDev("!!!!!!!!!!!!1"); - //newTurtleModeling(); - b = gtm.translateProactiveDesign((ProactiveDesignPanel)tp); + } + } else if (tp instanceof TMLComponentDesignPanel) { + TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel)tp; + JDialogSelectTMLComponent.validated = tmlcdp.validated; + JDialogSelectTMLComponent.ignored = tmlcdp.ignored; + Vector tmlComponentsToValidate = new Vector(); + JDialogSelectTMLComponent jdstmlc = new JDialogSelectTMLComponent(frame, tmlComponentsToValidate, tmlcdp.tmlctdp.getComponentList(), "Choosing TML components to validate"); + if (!automatic) { + GraphicLib.centerOnParent(jdstmlc); + jdstmlc.setVisible(true); // Blocked until dialog has been closed + } else { + jdstmlc.closeDialog(); + } + if (tmlComponentsToValidate.size() > 0) { + tmlcdp.validated = JDialogSelectTMLComponent.validated; + tmlcdp.ignored = JDialogSelectTMLComponent.ignored; + b = gtm.translateTMLComponentDesign(tmlComponentsToValidate, tmlcdp, jdstmlc.getOptimize()); if (b) { //setMode(MainGUI.MODEL_OK); - //setMode(MainGUI.GEN_SYSTEMC_OK); + setMode(MainGUI.GEN_SYSTEMC_OK); setMode(MainGUI.MODEL_OK); ret = true; if (!automatic) { JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a LOTOS,specification", - "Syntax analysis successful on Proactive design", + "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, UPPAAL) specification or executable code (C++ / SystemC)", + "Syntax analysis successful on TML designs", JOptionPane.INFORMATION_MESSAGE); } - } else { if (!automatic) { JOptionPane.showMessageDialog(frame, - "The Proactive design contains several errors", + "The TML design contains several errors", "Syntax analysis failed", JOptionPane.INFORMATION_MESSAGE); } - } - } else if (tp instanceof TURTLEOSDesignPanel) { - TraceManager.addDev("TURTLEOS Design Panel"); - //TURTLEOSDesignPanel tosdp = (TURTLEOSDesignPanel) tp; - b = gtm.translateTURTLEOSDesign((TURTLEOSDesignPanel)tp); + } + } else if (tp instanceof TMLArchiPanel) { + TMLArchiPanel tmlap = (TMLArchiPanel)tp; + JDialogSelectTMLNodes.validated = tmlap.validated; + JDialogSelectTMLNodes.ignored = tmlap.ignored; + Vector tmlNodesToValidate = new Vector(); + JDialogSelectTMLNodes jdstmln = new JDialogSelectTMLNodes(frame, tmlNodesToValidate, tmlap.tmlap.getComponentList(), "Choosing Nodes to validate", tmlap.tmlap.getMasterClockFrequency()); + if (!automatic) { + GraphicLib.centerOnParent(jdstmln); + jdstmln.setVisible(true); // Blocked until dialog has been closed + } else { + jdstmln.closeDialog(); + } + tmlap.tmlap.setMasterClockFrequency(jdstmln.getClock()); + + if (tmlNodesToValidate.size() > 0) { + tmlap.validated = JDialogSelectTMLNodes.validated; + tmlap.ignored = JDialogSelectTMLNodes.ignored; + //TraceManager.addDev("Ready to generate TML mapping!"); + b = gtm.checkSyntaxTMLMapping(tmlNodesToValidate, tmlap, jdstmln.getOptimize()); if (b) { + //setMode(MainGUI.MODEL_OK); + setMode(MainGUI.GEN_SYSTEMC_OK); setMode(MainGUI.MODEL_OK); ret = true; if (!automatic) { JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal specification or executable code (Java)", - "Syntax analysis successful on deployment diagrams", + "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)", + "Syntax analysis successful on TML mapping", JOptionPane.INFORMATION_MESSAGE); } } else { if (!automatic) { JOptionPane.showMessageDialog(frame, - "The TURTLE deployment contains several errors", + "The TML mapping contains several errors", "Syntax analysis failed", JOptionPane.INFORMATION_MESSAGE); } } } - //dtree.toBeUpdated(); - dtree.forceUpdate(); - return ret; } - - public Vector getAllAttributes() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) { - return null; + else if( tp instanceof TMLCommunicationPatternPanel ) { + TMLCommunicationPatternPanel tmlcpp = (TMLCommunicationPatternPanel) tp; + JDialogSelectCPDiagrams.validated = tmlcpp.validated; + JDialogSelectCPDiagrams.ignored = tmlcpp.ignored; + Vector tmlDiagramsToValidate = new Vector(); + JDialogSelectCPDiagrams jdscpd = new JDialogSelectCPDiagrams( frame, tmlDiagramsToValidate, tmlcpp.tmlcpp.getComponentList(), + "Choosing Diagrams to validate" ); + if( !automatic ) { + GraphicLib.centerOnParent( jdscpd ); + jdscpd.setVisible( true ); // Blocked until dialog has been closed } - - if (!(tp instanceof AvatarDesignPanel)) { - return null; + else { + jdscpd.closeDialog(); + } + if( tmlDiagramsToValidate.size() > 0 ) { + tmlcpp.validated = JDialogSelectCPDiagrams.validated; + tmlcpp.ignored = JDialogSelectCPDiagrams.ignored; + TraceManager.addDev("Ready to generate TML code for Communication Patterns!"); + b = gtm.checkSyntaxTMLCP( tmlDiagramsToValidate, tmlcpp, jdscpd.getOptimize() ); //Fills a data structure + //translateTMLComponentDesign + //and should say if it is correct or contains error in the return variable b + if( b ) { + //setMode(MainGUI.MODEL_OK); + setMode( MainGUI.GEN_SYSTEMC_OK ); + setMode( MainGUI.MODEL_OK ); + ret = true; + if( !automatic ) { + JOptionPane.showMessageDialog( frame, "0 error, " + getCheckingWarnings().size() + + " warning(s). You can now generate a formal (LOTOS, RT-LOTOS) specification or executable code (systemC)", + "Syntax analysis successful on TML mapping", + JOptionPane.INFORMATION_MESSAGE ); + } + } + else { + if( !automatic ) { + JOptionPane.showMessageDialog( frame, "The Communication Patterns design contains several errors", "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE ); + } + } } - AvatarDesignPanel adp = (AvatarDesignPanel)tp; - - String name = getCurrentTDiagramPanel().getName(); - - return adp.getAllAttributes(name); } + else if( tp instanceof RequirementPanel ) { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (!(tdp instanceof RequirementDiagramPanel)) { + if (tdp instanceof EBRDDPanel) { - public Vector getAllMethods() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) { - return null; - } + b = gtm.makeEBRDD((EBRDDPanel)tdp); + if (b) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s).", + "Syntax analysis successful on EBRDD", + JOptionPane.INFORMATION_MESSAGE); + } else { + JOptionPane.showMessageDialog(frame, + "The EBRDD contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); + } + } else { + return ret; + } + //TraceManager.addDev("No syntax checking for EBRDD: not yet implemented"); + } else { + RequirementDiagramPanel rdp= (RequirementDiagramPanel)tdp; + JDialogSelectRequirements.validated = rdp.validated; + JDialogSelectRequirements.ignored = rdp.ignored; + Vector reqsToValidate = new Vector(); + JDialogSelectRequirements jdsreq = new JDialogSelectRequirements(frame, reqsToValidate, rdp.getComponentList(), "Choosing requirements to verify"); + if (!automatic) { + GraphicLib.centerOnParent(jdsreq); + jdsreq.setVisible(true); // Blocked until dialog has been closed + } + if (reqsToValidate.size() > 0) { + rdp.validated = JDialogSelectRequirements.validated; + rdp.ignored = JDialogSelectRequirements.ignored; + b = gtm.generateTMsForRequirementAnalysis(reqsToValidate, rdp); + if (b) { + //setMode(MainGUI.GEN_SYSTEMC_OK); + setMode(MainGUI.REQ_OK); + ret = true; + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). You can now verify requirements' satisfiability", + "Syntax analysis successful on requirements", + JOptionPane.INFORMATION_MESSAGE); + } - if (!(tp instanceof AvatarDesignPanel)) { - return null; + } else { + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "The requirement diagram contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); + } + } + } } - AvatarDesignPanel adp = (AvatarDesignPanel)tp; - - String name = getCurrentTDiagramPanel().getName(); + } else if (tp instanceof ProactiveDesignPanel) { + // TraceManager.addDev("!!!!!!!!!!!!1"); + //newTurtleModeling(); + b = gtm.translateProactiveDesign((ProactiveDesignPanel)tp); + if (b) { + //setMode(MainGUI.MODEL_OK); + //setMode(MainGUI.GEN_SYSTEMC_OK); + setMode(MainGUI.MODEL_OK); + ret = true; + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a LOTOS,specification", + "Syntax analysis successful on Proactive design", + JOptionPane.INFORMATION_MESSAGE); + } - return adp.getAllMethods(name); - } + } else { + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "The Proactive design contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); + } - public Vector getAllSignals() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) { - return null; } - - if (!(tp instanceof AvatarDesignPanel)) { - return null; + } else if (tp instanceof TURTLEOSDesignPanel) { + TraceManager.addDev("TURTLEOS Design Panel"); + //TURTLEOSDesignPanel tosdp = (TURTLEOSDesignPanel) tp; + b = gtm.translateTURTLEOSDesign((TURTLEOSDesignPanel)tp); + if (b) { + setMode(MainGUI.MODEL_OK); + ret = true; + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal specification or executable code (Java)", + "Syntax analysis successful on deployment diagrams", + JOptionPane.INFORMATION_MESSAGE); + } + } else { + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "The TURTLE deployment contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); + } } - AvatarDesignPanel adp = (AvatarDesignPanel)tp; - - String name = getCurrentTDiagramPanel().getName(); + } + //dtree.toBeUpdated(); + dtree.forceUpdate(); + return ret; +} - return adp.getAllSignals(name); +public Vector getAllAttributes() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) { + return null; } - public String[] getAllOutEvents() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) { - return null; - } + if (!(tp instanceof AvatarDesignPanel)) { + return null; + } + AvatarDesignPanel adp = (AvatarDesignPanel)tp; - if (!(tp instanceof TMLComponentDesignPanel)) { - return null; - } - TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; + String name = getCurrentTDiagramPanel().getName(); - String name = getCurrentTDiagramPanel().getName(); + return adp.getAllAttributes(name); +} - return tmlcomp.getAllOutEvents(name); +public Vector getAllMethods() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) { + return null; } - public String[] getAllInEvents() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) {return null;} - if (!(tp instanceof TMLComponentDesignPanel)) {return null;} - TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; - String name = getCurrentTDiagramPanel().getName(); - return tmlcomp.getAllInEvents(name); + if (!(tp instanceof AvatarDesignPanel)) { + return null; } + AvatarDesignPanel adp = (AvatarDesignPanel)tp; - public String[] getAllOutChannels() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) {return null;} - if (!(tp instanceof TMLComponentDesignPanel)) {return null;} - TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; - String name = getCurrentTDiagramPanel().getName(); - return tmlcomp.getAllOutChannels(name); - } + String name = getCurrentTDiagramPanel().getName(); - public String[] getAllInChannels() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) {return null;} - if (!(tp instanceof TMLComponentDesignPanel)) {return null;} - TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; - String name = getCurrentTDiagramPanel().getName(); - return tmlcomp.getAllInChannels(name); - } + return adp.getAllMethods(name); +} - public String[] getAllOutRequests() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) {return null;} - if (!(tp instanceof TMLComponentDesignPanel)) {return null;} - TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; - String name = getCurrentTDiagramPanel().getName(); - return tmlcomp.getAllOutRequests(name); +public Vector getAllSignals() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) { + return null; } - public Vector getAllTimers() { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) { - return null; - } + if (!(tp instanceof AvatarDesignPanel)) { + return null; + } + AvatarDesignPanel adp = (AvatarDesignPanel)tp; - if (!(tp instanceof AvatarDesignPanel)) { - return null; - } - AvatarDesignPanel adp = (AvatarDesignPanel)tp; + String name = getCurrentTDiagramPanel().getName(); - String name = getCurrentTDiagramPanel().getName(); + return adp.getAllSignals(name); +} - return adp.getAllTimers(name); +public String[] getAllOutEvents() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) { + return null; } - public Vector getCheckingErrors() { - return gtm.getCheckingErrors(); + if (!(tp instanceof TMLComponentDesignPanel)) { + return null; + } + TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; + + String name = getCurrentTDiagramPanel().getName(); + + return tmlcomp.getAllOutEvents(name); +} + +public String[] getAllInEvents() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) {return null;} + if (!(tp instanceof TMLComponentDesignPanel)) {return null;} + TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; + String name = getCurrentTDiagramPanel().getName(); + return tmlcomp.getAllInEvents(name); +} + +public String[] getAllOutChannels() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) {return null;} + if (!(tp instanceof TMLComponentDesignPanel)) {return null;} + TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; + String name = getCurrentTDiagramPanel().getName(); + return tmlcomp.getAllOutChannels(name); +} + +public String[] getAllInChannels() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) {return null;} + if (!(tp instanceof TMLComponentDesignPanel)) {return null;} + TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; + String name = getCurrentTDiagramPanel().getName(); + return tmlcomp.getAllInChannels(name); +} + +public String[] getAllOutRequests() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) {return null;} + if (!(tp instanceof TMLComponentDesignPanel)) {return null;} + TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp; + String name = getCurrentTDiagramPanel().getName(); + return tmlcomp.getAllOutRequests(name); +} + +public Vector getAllTimers() { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) { + return null; } - public Vector getCheckingWarnings() { - return gtm.getCheckingWarnings(); + if (!(tp instanceof AvatarDesignPanel)) { + return null; } + AvatarDesignPanel adp = (AvatarDesignPanel)tp; - public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp == null) { - return; - } + String name = getCurrentTDiagramPanel().getName(); - if (!(tp instanceof AvatarDesignPanel)) { - return; - } + return adp.getAllTimers(name); +} - AvatarDesignPanel adp = (AvatarDesignPanel)tp; - adp.modelBacktracingProVerif(pvoa); - getCurrentTDiagramPanel().repaint(); +public Vector getCheckingErrors() { + return gtm.getCheckingErrors(); +} + +public Vector getCheckingWarnings() { + return gtm.getCheckingWarnings(); +} + +public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp == null) { + return; } - public void generateRTLOTOS() { - generateRTLOTOS(false); + if (!(tp instanceof AvatarDesignPanel)) { + return; } + AvatarDesignPanel adp = (AvatarDesignPanel)tp; + adp.modelBacktracingProVerif(pvoa); + getCurrentTDiagramPanel().repaint(); +} - public boolean generateRTLOTOS(boolean automatic) { - int ret = 0; - if (gtm.getTURTLEModelingState() > 0) { - if ((ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, RT_LOTOS)) == -1) { - return false; - } - } +public void generateRTLOTOS() { + generateRTLOTOS(false); +} - gtm.reinitSIM(); - gtm.reinitDTA(); - gtm.reinitRG(); - gtm.reinitRGAUT(); - gtm.reinitRGAUTPROJDOT(); - if (ret == 0) { - gtm.generateRTLOTOS(lotosfile); - } - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "RT-LOTOS specification generated", - "RT-LOTOS specification", - JOptionPane.INFORMATION_MESSAGE); + +public boolean generateRTLOTOS(boolean automatic) { + int ret = 0; + if (gtm.getTURTLEModelingState() > 0) { + if ((ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, RT_LOTOS)) == -1) { + return false; } - dtree.toBeUpdated(); - return true; } - public void generateLOTOS() { - generateLOTOS(false); + gtm.reinitSIM(); + gtm.reinitDTA(); + gtm.reinitRG(); + gtm.reinitRGAUT(); + gtm.reinitRGAUTPROJDOT(); + if (ret == 0) { + gtm.generateRTLOTOS(lotosfile); + } + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "RT-LOTOS specification generated", + "RT-LOTOS specification", + JOptionPane.INFORMATION_MESSAGE); } + dtree.toBeUpdated(); + return true; +} +public void generateLOTOS() { + generateLOTOS(false); +} - public boolean generateLOTOS(boolean automatic) { - int ret = 0; - if (gtm.getTURTLEModelingState() > 0) { - ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, LOTOS); - if (ret == -1) { - dtree.toBeUpdated(); - TraceManager.addDev("Generate from state failed"); - return false; - } - /*if (!automatic && (gtm.getTURTLEModelingState() == 1)) { - return true; - }*/ - } - //TraceManager.addDev("generate LOTOS"); - if (ret == 0) { - gtm.generateFullLOTOS(lotosfile); - //TraceManager.addDev("LOTOS generated"); - if (!automatic) { - JOptionPane.showMessageDialog(frame, - "LOTOS specification generated (" + getCheckingWarnings().size() + " warning(s))", - "LOTOS specification", - JOptionPane.INFORMATION_MESSAGE); - } +public boolean generateLOTOS(boolean automatic) { + int ret = 0; + if (gtm.getTURTLEModelingState() > 0) { + ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, LOTOS); + if (ret == -1) { + dtree.toBeUpdated(); + TraceManager.addDev("Generate from state failed"); + return false; } - setMode(MainGUI.RTLOTOS_OK); - dtree.toBeUpdated(); - return true; + /*if (!automatic && (gtm.getTURTLEModelingState() == 1)) { + return true; + }*/ } - public void generateFullLOTOS() { + //TraceManager.addDev("generate LOTOS"); + if (ret == 0) { gtm.generateFullLOTOS(lotosfile); - dtree.toBeUpdated(); + //TraceManager.addDev("LOTOS generated"); + if (!automatic) { + JOptionPane.showMessageDialog(frame, + "LOTOS specification generated (" + getCheckingWarnings().size() + " warning(s))", + "LOTOS specification", + JOptionPane.INFORMATION_MESSAGE); + } } + setMode(MainGUI.RTLOTOS_OK); + dtree.toBeUpdated(); + return true; +} - // -1 : error - // 0: ok - // 1: ok, code already generated - public int generateTURTLEModelingFromState(int state, boolean automatic, int generator) { - if (state == 1) { - if (generateTIFFromMapping(automatic, generator)) { - return 1; - } - return -1; +public void generateFullLOTOS() { + gtm.generateFullLOTOS(lotosfile); + dtree.toBeUpdated(); +} + +// -1 : error +// 0: ok +// 1: ok, code already generated +public int generateTURTLEModelingFromState(int state, boolean automatic, int generator) { + if (state == 1) { + if (generateTIFFromMapping(automatic, generator)) { + return 1; } - if (state == 2) { - TraceManager.addDev("Generating from state 2"); - if (generateTIFFromTMLModeling(automatic, generator)) { - return 0; - } - return -1; + return -1; + } + if (state == 2) { + TraceManager.addDev("Generating from state 2"); + if (generateTIFFromTMLModeling(automatic, generator)) { + return 0; } - if (state == 3) { - TraceManager.addDev("Generating from state 3 (Avatar)"); - if (generateTIFFromAvatarSpecification(automatic, generator)) { - return 0; - } - return -1; + return -1; + } + if (state == 3) { + TraceManager.addDev("Generating from state 3 (Avatar)"); + if (generateTIFFromAvatarSpecification(automatic, generator)) { + return 0; } return -1; } + return -1; +} + +public boolean generateTIFFromAvatarSpecification(boolean automatic, int generator) { + boolean b = gtm.translateAvatarSpecificationToTIF(); + if (b) { + setMode(MainGUI.MODEL_OK); + return true; + } + return false; +} - public boolean generateTIFFromAvatarSpecification(boolean automatic, int generator) { - boolean b = gtm.translateAvatarSpecificationToTIF(); +public boolean generateTIFFromMapping(boolean automatic, int generator) { + boolean b; + + // Scheduling options + JDialogScheduling jds = new JDialogScheduling(frame, this, "Mapping options", generator); + if (!automatic) { + GraphicLib.centerOnParent(jds); + jds.setVisible(true); // Blocked until dialog has been closed + } else { + jds.closeDialog(); + b = gtm.translateTMLMapping(jds.getSample(), jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask()); if (b) { + setMode(MainGUI.GEN_SYSTEMC_OK); setMode(MainGUI.MODEL_OK); return true; } return false; } - public boolean generateTIFFromMapping(boolean automatic, int generator) { - boolean b; - - // Scheduling options - JDialogScheduling jds = new JDialogScheduling(frame, this, "Mapping options", generator); - if (!automatic) { - GraphicLib.centerOnParent(jds); - jds.setVisible(true); // Blocked until dialog has been closed + if (!jds.isCancelled()) { + b = jds.hasError(); + //gtm.translateTMLMapping(jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask()); + if (!b) { + //setMode(MainGUI.MODEL_OK); + setMode(MainGUI.GEN_SYSTEMC_OK); + setMode(MainGUI.MODEL_OK); + return true; + /*if (!automatic) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). Formal specification can be generated", + "Successful translation from the TML mapping to a formal specification", + JOptionPane.INFORMATION_MESSAGE); + }*/ } else { - jds.closeDialog(); - b = gtm.translateTMLMapping(jds.getSample(), jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask()); - if (b) { - setMode(MainGUI.GEN_SYSTEMC_OK); - setMode(MainGUI.MODEL_OK); - return true; - } + /*if (!automatic) { + JOptionPane.showMessageDialog(frame, + "Formal specification generation failed: the TML mapping contains several errors", + "Syntax analysis failed", + JOptionPane.INFORMATION_MESSAGE); + }*/ return false; } - - if (!jds.isCancelled()) { - b = jds.hasError(); - //gtm.translateTMLMapping(jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask()); - if (!b) { - //setMode(MainGUI.MODEL_OK); - setMode(MainGUI.GEN_SYSTEMC_OK); - setMode(MainGUI.MODEL_OK); - return true; - /*if (!automatic) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). Formal specification can be generated", - "Successful translation from the TML mapping to a formal specification", - JOptionPane.INFORMATION_MESSAGE); - }*/ - } else { - /*if (!automatic) { - JOptionPane.showMessageDialog(frame, - "Formal specification generation failed: the TML mapping contains several errors", - "Syntax analysis failed", - JOptionPane.INFORMATION_MESSAGE); - }*/ - return false; - } - } - - return false; - } - - public boolean generateTIFFromTMLModeling(boolean automatic, int generator) { - return gtm.translateTMLModeling(); - } - - public void generateAUT() { - JDialogGenAUT jdgaut = new JDialogGenAUT(frame, this, "Generation of automata", ConfigurationTTool.BcgioPath, ConfigurationTTool.AldebaranHost, ConfigurationTTool.TGraphPath); - jdgaut.setSize(450, 600); - GraphicLib.centerOnParent(jdgaut); - jdgaut.setVisible(true); - - //Update menu - Vector v = jdgaut.getFiles(); - JMenu menu = jmenubarturtle.getJMenuGraph(); - menu.removeAll(); - String s; - for(int i=0; i<v.size(); i++) { - s = (String)(v.elementAt(i)); - jmenubarturtle.addMenuItem(menu, s, this); - } - } - public void generateAUTS() { - JDialogGenAUTS jdgauts = new JDialogGenAUTS(frame, this, "Generation of automata via LOTOS", gtm.getPathCaesar(), - gtm.getPathBcgio(), - REMOTE_RTL_LOTOS_FILE, - gtm.getCaesarHost(), ConfigurationTTool.TGraphPath); - jdgauts.setSize(450, 600); - GraphicLib.centerOnParent(jdgauts); - jdgauts.setVisible(true); - - //Update menu - /*Vector v = jdgauts.getFiles(); - JMenu menu = jmenubarturtle.getJMenuGraph(); - menu.removeAll(); - String s; - for(int i=0; i<v.size(); i++) { - s = (String)(v.elementAt(i)); - jmenubarturtle.addMenuItem(menu, s, this); - }*/ - - } + return false; +} - public void avatarSimulation() { - TraceManager.addDev("Avatar simulation"); - jfais = new JFrameAvatarInteractiveSimulation(frame, this, "Interactive simulation", gtm.getAvatarSpecification()); - jfais.setIconImage(IconManager.img9); - jfais.setSize(800, 600); - GraphicLib.centerOnParent(jfais); - jfais.setVisible(true); - } +public boolean generateTIFFromTMLModeling(boolean automatic, int generator) { + return gtm.translateTMLModeling(); +} - public void avatarUPPAALVerification() { - TraceManager.addDev("Avatar uppaal fv"); - boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory); - if (result) { - formalValidation(true); - } else { - JOptionPane.showMessageDialog(frame, - "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated", - "Translation to UPPAAL failed", - JOptionPane.INFORMATION_MESSAGE); - return; - } - } +public void generateAUT() { + JDialogGenAUT jdgaut = new JDialogGenAUT(frame, this, "Generation of automata", ConfigurationTTool.BcgioPath, ConfigurationTTool.AldebaranHost, ConfigurationTTool.TGraphPath); + jdgaut.setSize(450, 600); + GraphicLib.centerOnParent(jdgaut); + jdgaut.setVisible(true); - public void avatarProVerifVerification() { - TraceManager.addDev("Avatar proverif fv"); - JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath); - jgen.setSize(500, 450); - GraphicLib.centerOnParent(jgen); - jgen.setVisible(true); - dtree.toBeUpdated(); + //Update menu + Vector v = jdgaut.getFiles(); + JMenu menu = jmenubarturtle.getJMenuGraph(); + menu.removeAll(); + String s; + for(int i=0; i<v.size(); i++) { + s = (String)(v.elementAt(i)); + jmenubarturtle.addMenuItem(menu, s, this); } - public void avatarStaticAnalysis() { - TraceManager.addDev("Avatar static analysis invariants"); - JDialogInvariantAnalysis jgen = new JDialogInvariantAnalysis(frame, this, "Static analysis: invariants computation"); - jgen.setSize(500, 450); - GraphicLib.centerOnParent(jgen); - jgen.setVisible(true); - dtree.toBeUpdated(); - } +} - public void avatarExecutableCodeGeneration() { - TraceManager.addDev("Avatar code generation"); - JDialogAvatarExecutableCodeGeneration jgen = new JDialogAvatarExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution", ConfigurationTTool.AVATARExecutableCodeHost, ConfigurationTTool.AVATARExecutableCodeDirectory, ConfigurationTTool.AVATARExecutableCodeCompileCommand, ConfigurationTTool.AVATARExecutableCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand, ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibTraceFile); - jgen.setSize(500, 450); - GraphicLib.centerOnParent(jgen); - jgen.setVisible(true); - dtree.toBeUpdated(); - } +public void generateAUTS() { + JDialogGenAUTS jdgauts = new JDialogGenAUTS(frame, this, "Generation of automata via LOTOS", gtm.getPathCaesar(), + gtm.getPathBcgio(), + REMOTE_RTL_LOTOS_FILE, + gtm.getCaesarHost(), ConfigurationTTool.TGraphPath); + jdgauts.setSize(450, 600); + GraphicLib.centerOnParent(jdgauts); + jdgauts.setVisible(true); + + //Update menu + /*Vector v = jdgauts.getFiles(); + JMenu menu = jmenubarturtle.getJMenuGraph(); + menu.removeAll(); + String s; + for(int i=0; i<v.size(); i++) { + s = (String)(v.elementAt(i)); + jmenubarturtle.addMenuItem(menu, s, this); + }*/ - public void generateUPPAAL() { - generateUPPAAL(true); +} + +public void avatarSimulation() { + TraceManager.addDev("Avatar simulation"); + jfais = new JFrameAvatarInteractiveSimulation(frame, this, "Interactive simulation", gtm.getAvatarSpecification()); + jfais.setIconImage(IconManager.img9); + jfais.setSize(800, 600); + GraphicLib.centerOnParent(jfais); + jfais.setVisible(true); +} + +public void avatarUPPAALVerification() { + TraceManager.addDev("Avatar uppaal fv"); + boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory); + if (result) { + formalValidation(true); + } else { + JOptionPane.showMessageDialog(frame, + "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated", + "Translation to UPPAAL failed", + JOptionPane.INFORMATION_MESSAGE); + return; } +} + +public void avatarProVerifVerification() { + TraceManager.addDev("Avatar proverif fv"); + JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath); + jgen.setSize(500, 450); + GraphicLib.centerOnParent(jgen); + jgen.setVisible(true); + dtree.toBeUpdated(); +} + +public void avatarStaticAnalysis() { + TraceManager.addDev("Avatar static analysis invariants"); + JDialogInvariantAnalysis jgen = new JDialogInvariantAnalysis(frame, this, "Static analysis: invariants computation"); + jgen.setSize(500, 450); + GraphicLib.centerOnParent(jgen); + jgen.setVisible(true); + dtree.toBeUpdated(); +} + +public void avatarExecutableCodeGeneration() { + TraceManager.addDev("Avatar code generation"); + JDialogAvatarExecutableCodeGeneration jgen = new JDialogAvatarExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution", ConfigurationTTool.AVATARExecutableCodeHost, ConfigurationTTool.AVATARExecutableCodeDirectory, ConfigurationTTool.AVATARExecutableCodeCompileCommand, ConfigurationTTool.AVATARExecutableCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand, ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibTraceFile); + jgen.setSize(500, 450); + GraphicLib.centerOnParent(jgen); + jgen.setVisible(true); + dtree.toBeUpdated(); +} + +public void generateUPPAAL() { + generateUPPAAL(true); +} + +public void generateUPPAAL(boolean showWindow) { + //TraceManager.addDev("Generate UPPAAL!"); + //gtm.mergeChoices(true); + if (gtm.getTURTLEModelingState() > 0) { + if (gtm.getTURTLEModelingState() == 3) { + //AVATAR + boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory); + if (showWindow) { + if (result) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). UPPAAL specification generated", + "Successful translation to UPPAAL", + JOptionPane.INFORMATION_MESSAGE); + } else { + JOptionPane.showMessageDialog(frame, + "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated", + "Translation to UPPAAL failed", + JOptionPane.INFORMATION_MESSAGE); - public void generateUPPAAL(boolean showWindow) { - //TraceManager.addDev("Generate UPPAAL!"); - //gtm.mergeChoices(true); - if (gtm.getTURTLEModelingState() > 0) { - if (gtm.getTURTLEModelingState() == 3) { - //AVATAR - boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory); - if (showWindow) { - if (result) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). UPPAAL specification generated", - "Successful translation to UPPAAL", - JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(frame, - "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated", - "Translation to UPPAAL failed", - JOptionPane.INFORMATION_MESSAGE); - - - } - } - if (!result) { - return; - } - } else { - if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, UPPAAL) == -1) { - return; - } - if (showWindow) { - JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.DIPLODOCUS_MODE); - jgen.setSize(450, 500); - GraphicLib.centerOnParent(jgen); - jgen.setVisible(true); } + } + if (!result) { return; } - } + } else { + if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, UPPAAL) == -1) { + return; + } + if (showWindow) { + JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.DIPLODOCUS_MODE); + jgen.setSize(450, 500); + GraphicLib.centerOnParent(jgen); + jgen.setVisible(true); - //TraceManager.addDev("After UPPAAL"); - if (showWindow) { - JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.TURTLE_MODE); - jgen.setSize(450, 600); - GraphicLib.centerOnParent(jgen); - jgen.setVisible(true); - //dtree.toBeUpdated(); + } + return; } } - public void generateProVerif() { - TraceManager.addDev("Generate ProVerif!"); - - JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath); - jgen.setSize(500, 450); + //TraceManager.addDev("After UPPAAL"); + if (showWindow) { + JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.TURTLE_MODE); + jgen.setSize(450, 600); GraphicLib.centerOnParent(jgen); jgen.setVisible(true); - dtree.toBeUpdated(); - - // Generate from AVATAR - /*if (gtm.getTURTLEModelingState() == 3) { - boolean result = gtm.generateProVerifFromAVATAR(ConfigurationTTool.ProVerifCodeDirectory); - if (result) { - JOptionPane.showMessageDialog(frame, - "0 error, " + getCheckingWarnings().size() + " warning(s). ProVerif specification generated", - "Successful translation from the Avatar to a ProVerif specification", - JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(frame, - "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). ProVerif specification could NOT be generated", - "ERROR during translation from AVATAR to UPPAAL", - JOptionPane.INFORMATION_MESSAGE); - } - }*/ + //dtree.toBeUpdated(); } +} + +public void generateProVerif() { + TraceManager.addDev("Generate ProVerif!"); + + JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath); + jgen.setSize(500, 450); + GraphicLib.centerOnParent(jgen); + jgen.setVisible(true); + dtree.toBeUpdated(); + + // Generate from AVATAR + /*if (gtm.getTURTLEModelingState() == 3) { + boolean result = gtm.generateProVerifFromAVATAR(ConfigurationTTool.ProVerifCodeDirectory); + if (result) { + JOptionPane.showMessageDialog(frame, + "0 error, " + getCheckingWarnings().size() + " warning(s). ProVerif specification generated", + "Successful translation from the Avatar to a ProVerif specification", + JOptionPane.INFORMATION_MESSAGE); + } else { + JOptionPane.showMessageDialog(frame, + "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). ProVerif specification could NOT be generated", + "ERROR during translation from AVATAR to UPPAAL", + JOptionPane.INFORMATION_MESSAGE); + } + }*/ +} - public LinkedList generateAllAUT(String path) { - return gtm.generateAUT(path); - } +public LinkedList generateAllAUT(String path) { + return gtm.generateAUT(path); +} - public LinkedList generateAllLOTOS(String path) { - return gtm.generateLOTOSAUT(path); - } +public LinkedList generateAllLOTOS(String path) { + return gtm.generateLOTOSAUT(path); +} - public void generateJava() { +public void generateJava() { - if (gtm.getTURTLEModelingState() == 1) { - if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, JAVA) == -1) { - return; - } + if (gtm.getTURTLEModelingState() == 1) { + if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, JAVA) == -1) { + return; } - - JDialogJavaGeneration jgen = new JDialogJavaGeneration(frame, this, "Java code generation and compilation", ConfigurationTTool.JavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolClassPath, ConfigurationTTool.JavaExecutePath, ConfigurationTTool.JavaHeader); - jgen.setSize(450, 600); - GraphicLib.centerOnParent(jgen); - jgen.setVisible(true); - dtree.toBeUpdated(); } - public void simuJava() { - /*TraceManager.addDev("Generate Java"); - gtm.generateJava(""); - JOptionPane.showMessageDialog(frame, - "Java code generated", - "Java generator", - JOptionPane.INFORMATION_MESSAGE); - dtree.toBeUpdated();*/ - - JDialogJavaSimulation jgen = new JDialogJavaSimulation(frame, this, "Java simulation", ConfigurationTTool.SimuJavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolSimuClassPath, ConfigurationTTool.JavaExecutePath); - jgen.setSize(450, 600); + JDialogJavaGeneration jgen = new JDialogJavaGeneration(frame, this, "Java code generation and compilation", ConfigurationTTool.JavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolClassPath, ConfigurationTTool.JavaExecutePath, ConfigurationTTool.JavaHeader); + jgen.setSize(450, 600); + GraphicLib.centerOnParent(jgen); + jgen.setVisible(true); + dtree.toBeUpdated(); +} + +public void simuJava() { + /*TraceManager.addDev("Generate Java"); + gtm.generateJava(""); + JOptionPane.showMessageDialog(frame, + "Java code generated", + "Java generator", + JOptionPane.INFORMATION_MESSAGE); + dtree.toBeUpdated();*/ + + JDialogJavaSimulation jgen = new JDialogJavaSimulation(frame, this, "Java simulation", ConfigurationTTool.SimuJavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolSimuClassPath, ConfigurationTTool.JavaExecutePath); + jgen.setSize(450, 600); + GraphicLib.centerOnParent(jgen); + jgen.setVisible(true); + dtree.toBeUpdated(); +} + +public void generateSystemC() { + generateSystemC(0); +} + +// Modes are defined in JDialogSystemCGeneration "automatic modes" +public void generateSystemC(int _mode) { + TURTLEPanel tp = getCurrentTURTLEPanel(); + if (tp instanceof AvatarDesignPanel) { + avatarSimulation(); + } else if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLArchiPanel)) { + JDialogSystemCGeneration jgen = new JDialogSystemCGeneration(frame, this, "Simulation code generation and compilation", + ConfigurationTTool.SystemCHost, ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.SystemCCodeCompileCommand, + ConfigurationTTool.SystemCCodeExecuteCommand, ConfigurationTTool.SystemCCodeInteractiveExecuteCommand, ConfigurationTTool.GGraphPath, _mode); + jgen.setSize(500, 750); GraphicLib.centerOnParent(jgen); jgen.setVisible(true); dtree.toBeUpdated(); - } - - public void generateSystemC() { - generateSystemC(0); - } - - // Modes are defined in JDialogSystemCGeneration "automatic modes" - public void generateSystemC(int _mode) { - TURTLEPanel tp = getCurrentTURTLEPanel(); - if (tp instanceof AvatarDesignPanel) { - avatarSimulation(); - } else if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLArchiPanel)) { - JDialogSystemCGeneration jgen = new JDialogSystemCGeneration(frame, this, "Simulation code generation and compilation", - ConfigurationTTool.SystemCHost, ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.SystemCCodeCompileCommand, - ConfigurationTTool.SystemCCodeExecuteCommand, ConfigurationTTool.SystemCCodeInteractiveExecuteCommand, ConfigurationTTool.GGraphPath, _mode); - jgen.setSize(500, 750); - GraphicLib.centerOnParent(jgen); - jgen.setVisible(true); - dtree.toBeUpdated(); - - /*if (jgen.isInteractiveSimulationSelected() && (mode == 0)) { - interactiveSimulationSystemC(jgen.getPathInteractiveExecute()); - }*/ - } - } - public void interactiveSimulationSystemC() { - interactiveSimulationSystemC(ConfigurationTTool.SystemCCodeInteractiveExecuteCommand); + /*if (jgen.isInteractiveSimulationSelected() && (mode == 0)) { + interactiveSimulationSystemC(jgen.getPathInteractiveExecute()); + }*/ } - - public void interactiveSimulationSystemC(String executePath) { - //TraceManager.addDev("toto0"); - ArrayList<Point> points = getListOfBreakPoints(); - if (gtm == null) { - jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points); +} + +public void interactiveSimulationSystemC() { + interactiveSimulationSystemC(ConfigurationTTool.SystemCCodeInteractiveExecuteCommand); +} + +public void interactiveSimulationSystemC(String executePath) { + //TraceManager.addDev("toto0"); + ArrayList<Point> points = getListOfBreakPoints(); + if (gtm == null) { + jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points); + } else { + //TraceManager.addDev("toto1"); + if (gtm.getTMLMapping() != null) { + jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getTMLMapping(), points); } else { - //TraceManager.addDev("toto1"); - if (gtm.getTMLMapping() != null) { - jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getTMLMapping(), points); + //TraceManager.addDev("toto2"); + if (gtm.getArtificialTMLMapping() != null) { + jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getArtificialTMLMapping(), points); } else { - //TraceManager.addDev("toto2"); - if (gtm.getArtificialTMLMapping() != null) { - jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getArtificialTMLMapping(), points); - } else { - //TraceManager.addDev("toto3"); - jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points); - } + //TraceManager.addDev("toto3"); + jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points); } } - jfis.setIconImage(IconManager.img9); - jfis.setSize(1024, 900); - GraphicLib.centerOnParent(jfis); - jfis.setVisible(true); - } + jfis.setIconImage(IconManager.img9); + jfis.setSize(1024, 900); + GraphicLib.centerOnParent(jfis); + jfis.setVisible(true); - public void addBreakPoint(int commandId) { - if (jfis != null) { - jfis.addBreakPoint(commandId); - } +} + +public void addBreakPoint(int commandId) { + if (jfis != null) { + jfis.addBreakPoint(commandId); } +} - public void removeBreakPoint(int commandId) { - if (jfis != null) { - jfis.removeBreakPoint(commandId); - } +public void removeBreakPoint(int commandId) { + if (jfis != null) { + jfis.removeBreakPoint(commandId); } +} - // Sent by simulation interface - public void removeBreakpoint(Point p) { - if (gtm != null) { - gtm.removeBreakpoint(p); - getCurrentTDiagramPanel().repaint(); - } +// Sent by simulation interface +public void removeBreakpoint(Point p) { + if (gtm != null) { + gtm.removeBreakpoint(p); + getCurrentTDiagramPanel().repaint(); } +} - // Sent by simulation interface - public void addBreakpoint(Point p) { - if (gtm != null) { - gtm.addBreakpoint(p); - getCurrentTDiagramPanel().repaint(); - } +// Sent by simulation interface +public void addBreakpoint(Point p) { + if (gtm != null) { + gtm.addBreakpoint(p); + getCurrentTDiagramPanel().repaint(); } +} - public ArrayList<Point> getListOfBreakPoints() { - ArrayList<Point> points = new ArrayList<Point>(); - TURTLEPanel tp; +public ArrayList<Point> getListOfBreakPoints() { + ArrayList<Point> points = new ArrayList<Point>(); + TURTLEPanel tp; - if (tabs != null) { - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof TMLDesignPanel) { - ((TMLDesignPanel)tp).getListOfBreakPoints(points); - } - if (tp instanceof TMLComponentDesignPanel) { - ((TMLComponentDesignPanel)tp).getListOfBreakPoints(points); - } + if (tabs != null) { + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof TMLDesignPanel) { + ((TMLDesignPanel)tp).getListOfBreakPoints(points); + } + if (tp instanceof TMLComponentDesignPanel) { + ((TMLComponentDesignPanel)tp).getListOfBreakPoints(points); } } - return points; } + return points; +} - // Returns null if failed - // Otherwise the path of the generated file - public String generateTMLTxt() { - String path = ConfigurationTTool.FILEPath; - if (file != null) { - path = file.getAbsolutePath(); - } - //TraceManager.addDev("Generating TML code: "+file.getAbsolutePath()); - if (gtm.generateTMLTxt(path)) { - return ConfigurationTTool.TMLCodeDirectory; - } - - return null; - //TraceManager.addDev("Done"); +// Returns null if failed +// Otherwise the path of the generated file +public String generateTMLTxt() { + String path = ConfigurationTTool.FILEPath; + if (file != null) { + path = file.getAbsolutePath(); } - - public String generateCcode() { - String path = ConfigurationTTool.FILEPath; - if( file != null ) { - path = file.getAbsolutePath(); - } - if( gtm.generateCcode( path ) ) { - return ConfigurationTTool.CcodeDirectory; - } - return null; - //TraceManager.addDev("Done"); + //TraceManager.addDev("Generating TML code: "+file.getAbsolutePath()); + if (gtm.generateTMLTxt(path)) { + return ConfigurationTTool.TMLCodeDirectory; } - public void generateDesign() { - if (gtm.getTURTLEModelingState() == 1) { - if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, DESIGN) == -1) { - return; - } - } + return null; + //TraceManager.addDev("Done"); +} - //TraceManager.addDev("Generate design"); - gtm.generateDesign(); +public String generateCcode() { + String path = ConfigurationTTool.FILEPath; + if( file != null ) { + path = file.getAbsolutePath(); } - - public void saveSIM() { - gtm.saveSIM(simfile); + if( gtm.generateCcode( path ) ) { + return ConfigurationTTool.CcodeDirectory; } + return null; + //TraceManager.addDev("Done"); +} - public void saveDTA() { - gtm.saveDTA(dtafile); +public void generateDesign() { + if (gtm.getTURTLEModelingState() == 1) { + if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, DESIGN) == -1) { + return; + } } - public void saveDTADOT() { - gtm.saveDTADOT(dtadotfile); + //TraceManager.addDev("Generate design"); + gtm.generateDesign(); +} + +public void saveSIM() { + gtm.saveSIM(simfile); +} + +public void saveDTA() { + gtm.saveDTA(dtafile); +} + +public void saveDTADOT() { + gtm.saveDTADOT(dtadotfile); +} + +public void saveRG() { + gtm.saveRG(rgfile); +} + +public void saveTLSA() { + gtm.saveTLSA(tlsafile); +} + +public String saveRGAut() { + gtm.saveRGAut(rgautfile); + return rgautfile.getAbsolutePath(); +} + +public String saveFC2(String data) { + gtm.saveInFile(fc2file, data); + return fc2file.getAbsolutePath(); +} + +public String saveBCG(String data) { + gtm.saveInFile(bcgfile, data); + return bcgfile.getAbsolutePath(); +} + +public void saveRGDOT() { + gtm.saveRGDOT(rgdotfile); +} + +public void saveTLSADOT() { + gtm.saveTLSADOT(tlsadotfile); +} + +public String saveRGAutDOT() { + gtm.saveRGAutDOT(rgautdotfile); + return rgautdotfile.getAbsolutePath(); +} + +public void saveRGAutProj() { + gtm.saveRGAutProj(rgautprojfile); +} + +public void saveRGAutProjDOT() { + gtm.saveRGAutProjDOT(rgautprojdotfile); +} + +public void checkCode() { + if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { + JDialogTextProcess jdtp = new JDialogTextProcess(frame, + "Checking RT-LOTOS specification with RTL", + gtm.getPathRTL() + " __FILENAME -max-spec-t-1", + REMOTE_RTL_LOTOS_FILE, + gtm.getLastRTLOTOSSpecification(), + gtm.getHost()); + jdtp.setSize(450, 600); + GraphicLib.centerOnParent(jdtp); + jdtp.setVisible(true); + dtree.toBeUpdated(); + } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { + JDialogLOTOSAnalysis jdla = new JDialogLOTOSAnalysis(frame, + this, "Checking LOTOS specification with CAESAR", + gtm.getPathCaesar(), + REMOTE_RTL_LOTOS_FILE, + gtm.getLastRTLOTOSSpecification(), + gtm.getCaesarHost()); + jdla.setSize(450, 600); + GraphicLib.centerOnParent(jdla); + jdla.setVisible(true); + dtree.toBeUpdated(); } +} + + +public void simulation() { + if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { + JDialogSimulation jds = new JDialogSimulation(frame, + this, + "Intensive simulation with RTL", + gtm.getPathRTL(), + REMOTE_RTL_LOTOS_FILE, + gtm.getLastRTLOTOSSpecification(), + gtm.getHost()); + jds.setSize(450, 600); + GraphicLib.centerOnParent(jds); + jds.setVisible(true); + dtree.toBeUpdated(); + } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { - public void saveRG() { - gtm.saveRG(rgfile); } +} - public void saveTLSA() { - gtm.saveTLSA(tlsafile); - } +public void formalValidation() { + formalValidation(false); +} - public String saveRGAut() { - gtm.saveRGAut(rgautfile); - return rgautfile.getAbsolutePath(); - } +public void formalValidation(boolean automatic) { + formalValidation(automatic, getCurrentTURTLEPanel()); +} - public String saveFC2(String data) { - gtm.saveInFile(fc2file, data); - return fc2file.getAbsolutePath(); - } - - public String saveBCG(String data) { - gtm.saveInFile(bcgfile, data); - return bcgfile.getAbsolutePath(); - } - - public void saveRGDOT() { - gtm.saveRGDOT(rgdotfile); - } - - public void saveTLSADOT() { - gtm.saveTLSADOT(tlsadotfile); - } - - public String saveRGAutDOT() { - gtm.saveRGAutDOT(rgautdotfile); - return rgautdotfile.getAbsolutePath(); - } - - public void saveRGAutProj() { - gtm.saveRGAutProj(rgautprojfile); - } - - public void saveRGAutProjDOT() { - gtm.saveRGAutProjDOT(rgautprojdotfile); +public boolean formalValidation(boolean automatic, String diagramName) { + TURTLEPanel tp = getTURTLEPanel(diagramName); + if (tp != null) { + formalValidation(automatic, tp); + return true; } - - public void checkCode() { - if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { - JDialogTextProcess jdtp = new JDialogTextProcess(frame, - "Checking RT-LOTOS specification with RTL", - gtm.getPathRTL() + " __FILENAME -max-spec-t-1", - REMOTE_RTL_LOTOS_FILE, - gtm.getLastRTLOTOSSpecification(), - gtm.getHost()); - jdtp.setSize(450, 600); - GraphicLib.centerOnParent(jdtp); - jdtp.setVisible(true); - dtree.toBeUpdated(); - } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { - JDialogLOTOSAnalysis jdla = new JDialogLOTOSAnalysis(frame, - this, "Checking LOTOS specification with CAESAR", + return false; +} + + +public void formalValidation(boolean automatic, TURTLEPanel _tp) { + if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { + JDialogFormalValidation jdfv = new JDialogFormalValidation(frame, + this, + "Formal Validation with RTL", + gtm.getPathRTL(), + gtm.getPathDTA2DOT(), + gtm.getPathRGSTRAP(), + gtm.getPathRG2TLSA(), + REMOTE_RTL_LOTOS_FILE, + gtm.getLastRTLOTOSSpecification(), + gtm.getHost(), + gtm.getHostAldebaran(), + gtm.getPathBcgio()); + jdfv.setAutomatic(automatic); + jdfv.setSize(450, 600); + GraphicLib.centerOnParent(jdfv); + jdfv.setVisible(true); + dtree.toBeUpdated(); + } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { + JDialogLOTOSValidation jdla = new JDialogLOTOSValidation(frame, + this, "Generating RG with CAESAR", gtm.getPathCaesar(), + gtm.getPathCaesarOpen(), + gtm.getPathBcgio(), + gtm.getPathBcgmerge(), REMOTE_RTL_LOTOS_FILE, gtm.getLastRTLOTOSSpecification(), gtm.getCaesarHost()); - jdla.setSize(450, 600); - GraphicLib.centerOnParent(jdla); - jdla.setVisible(true); - dtree.toBeUpdated(); - } - } - - - public void simulation() { - if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { - JDialogSimulation jds = new JDialogSimulation(frame, - this, - "Intensive simulation with RTL", - gtm.getPathRTL(), - REMOTE_RTL_LOTOS_FILE, - gtm.getLastRTLOTOSSpecification(), - gtm.getHost()); - jds.setSize(450, 600); - GraphicLib.centerOnParent(jds); - jds.setVisible(true); - dtree.toBeUpdated(); - } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { - - } - } - - public void formalValidation() { - formalValidation(false); - } - - public void formalValidation(boolean automatic) { - formalValidation(automatic, getCurrentTURTLEPanel()); - } - - public boolean formalValidation(boolean automatic, String diagramName) { - TURTLEPanel tp = getTURTLEPanel(diagramName); - if (tp != null) { - formalValidation(automatic, tp); - return true; - } - return false; - } - - - public void formalValidation(boolean automatic, TURTLEPanel _tp) { - if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { - JDialogFormalValidation jdfv = new JDialogFormalValidation(frame, - this, - "Formal Validation with RTL", - gtm.getPathRTL(), - gtm.getPathDTA2DOT(), - gtm.getPathRGSTRAP(), - gtm.getPathRG2TLSA(), - REMOTE_RTL_LOTOS_FILE, - gtm.getLastRTLOTOSSpecification(), - gtm.getHost(), - gtm.getHostAldebaran(), - gtm.getPathBcgio()); - jdfv.setAutomatic(automatic); - jdfv.setSize(450, 600); - GraphicLib.centerOnParent(jdfv); - jdfv.setVisible(true); - dtree.toBeUpdated(); - } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { - JDialogLOTOSValidation jdla = new JDialogLOTOSValidation(frame, - this, "Generating RG with CAESAR", - gtm.getPathCaesar(), - gtm.getPathCaesarOpen(), - gtm.getPathBcgio(), - gtm.getPathBcgmerge(), - REMOTE_RTL_LOTOS_FILE, - gtm.getLastRTLOTOSSpecification(), - gtm.getCaesarHost()); - jdla.setAutomatic(automatic); - jdla.setSize(450, 600); - GraphicLib.centerOnParent(jdla); - jdla.setVisible(true); - dtree.toBeUpdated(); - } else if (gtm.getLanguageID() == GTURTLEModeling.UPPAAL) { - JDialogUPPAALValidation jduv = new JDialogUPPAALValidation(frame, - this, "Formal verification with UPPAAL", - gtm.getPathUPPAALVerifier(), - gtm.getPathUPPAALFile(), - REMOTE_UPPAAL_FILE, - gtm.getLastUPPAALSpecification().getStringSpec(), - gtm.getUPPAALVerifierHost(), - _tp); - jduv.setSize(450, 600); - GraphicLib.centerOnParent(jduv); - jduv.setVisible(true); - dtree.toBeUpdated(); - } else if (gtm.getLanguageID() == GTURTLEModeling.MATRIX) { - JDialogTMatrixManagement jdfv = new JDialogTMatrixManagement(frame, - this, - "Observers's Based Formal Verification", - gtm.getRequirementModeling(), - gtm.getPathRTL(), - gtm.getPathDTA2DOT(), - gtm.getPathRGSTRAP(), - gtm.getPathRG2TLSA(), - REMOTE_RTL_LOTOS_FILE, - gtm.getHost(), - GTURTLEModeling.getHostAldebaran(), - gtm.getPathBcgio()); - jdfv.setSize(550, 600); - jdfv.setIconImage(IconManager.img8); - GraphicLib.centerOnParent(jdfv); - jdfv.setVisible(true); - dtree.toBeUpdated(); - } - } - - public void projection() { - TClassDiagramPanel tcdp = null; - if (getCurrentTURTLEPanel() instanceof DesignPanel) { - tcdp = ((DesignPanel)(getCurrentTURTLEPanel())).tcdp; - } - JDialogProjection jdfv = new JDialogProjection(frame, - this, - tcdp, - gtm.getTURTLEModeling(), - GTURTLEModeling.getHostAldebaran(), - GTURTLEModeling.getPathAldebaran(), - gtm.getPathBcgmin(), - gtm.getPathBcgio(), - gtm.getLastRGAUT(), - REMOTE_ALDEBARAN_AUT_FILE, - "Minimization using Aldebaran"); - jdfv.setSize(900, 700); - GraphicLib.centerOnParent(jdfv); - jdfv.setVisible(true); - } - - public void modifyGraph() { - JDialogGraphModification jdgm; - if (gtm == null ){ - jdgm = new JDialogGraphModification(frame, - GTURTLEModeling.getHostAldebaran(), - GTURTLEModeling.getPathBcgio(), - "graph", - "Minimization using Aldebaran", - null, null); - } else { - jdgm = new JDialogGraphModification(frame, - GTURTLEModeling.getHostAldebaran(), - gtm.getPathBcgio(), - "graph", - "Minimization using Aldebaran", - gtm.getLastRGAUT(), - gtm.getLastTextualRGAUTProj()); - } - jdgm.setSize(600, 500); - GraphicLib.centerOnParent(jdgm); - jdgm.setVisible(true); - modifiedaut = jdgm.getGraphAUT(); - modifiedautdot = jdgm.getGraphDOT(); - if (modifiedautdot != null) { - actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].setEnabled(true); - actions[TGUIAction.ACT_SAVE_AUTMODIFIED].setEnabled(true); - } - //gtm.modifyMinimizedGraph(); - } - - public void bisimulation() { - JDialogBisimulation jdb = new JDialogBisimulation(frame, - GTURTLEModeling.getHostAldebaran(), - GTURTLEModeling.getPathAldebaran(), - REMOTE_ALDEBARAN_BISIMU_FILE1, - REMOTE_ALDEBARAN_BISIMU_FILE2, - "Bisimulation using Aldebaran"); - jdb.setSize(650, 800); - GraphicLib.centerOnParent(jdb); - jdb.setVisible(true); - //TraceManager.addDev("Bisimulation"); - } - - public void bisimulationCADP() { - JDialogBisimulationBisimulator jdb = new JDialogBisimulationBisimulator(frame, - GTURTLEModeling.getCaesarHost(), - GTURTLEModeling.getPathBisimulator(), - GTURTLEModeling.getPathBcgio(), - REMOTE_BISIMULATOR_FILE1, - REMOTE_BISIMULATOR_FILE2, - "Bisimulation using BISIMULATOR"); - jdb.setSize(650, 800); - GraphicLib.centerOnParent(jdb); - jdb.setVisible(true); - //TraceManager.addDev("Bisimulation"); - } - - public void seekDeadlockAUT() { - String dataAUT = gtm.getLastTextualRGAUT(); - - JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks", dataAUT); - jfd.setIconImage(IconManager.img8); - jfd.setSize(600, 600); - GraphicLib.centerOnParent(jfd); - jfd.setVisible(true); - } - - public void seekDeadlockSavedAUT() { - String graph[] = loadAUTGraph(); - if (graph != null) { - JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks on " + graph[0], graph[1]); - jfd.setIconImage(IconManager.img8); - jfd.setSize(600, 600); - GraphicLib.centerOnParent(jfd); - jfd.setVisible(true); - } - } - - public void showAUT(String title, String data) { - /*JFrameStatistics jfs = new JFrameStatistics(title, data); - jfs.setIconImage(IconManager.img8); - jfs.setSize(600, 600); - GraphicLib.centerOnParent(jfs); - jfs.setVisible(true);*/ - ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait"); - t.go(); - } - - public void showPMAUT(String title, String data) { - TraceManager.addDev("Power management analysis"); - JFramePowerManagementAnalysis jfpma = new JFramePowerManagementAnalysis(title, data); - jfpma.setIconImage(IconManager.img8); - jfpma.setSize(600, 600); - GraphicLib.centerOnParent(jfpma); - jfpma.setVisible(true); - } - - public void NC() { - TraceManager.addDev("NC"); - JFrameNC jfnc = new JFrameNC("Network calculus", gtm.getNCS()); - jfnc.setIconImage(IconManager.img8); - jfnc.setSize(600, 600); - GraphicLib.centerOnParent(jfnc); - jfnc.setVisible(true); - TraceManager.addDev("Done"); - - /*JFrameStatistics jfs = new JFrameStatistics(title, data); - jfs.setIconImage(IconManager.img8); - jfs.setSize(600, 600); - GraphicLib.centerOnParent(jfs); - jfs.setVisible(true);*/ - } - - public void statAUT() { - showAUT("Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT()); - } - - public void statAUTDiplodocus() { - String spec = loadFile(new File(ConfigurationTTool.TGraphPath + "/tree.aut")); - if (spec == null) { - JOptionPane.showMessageDialog(frame, - "The fill could not be loaded:", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - showAUT("Analysis on the last DIPLODOCUS RG", spec); - } - - public void statAUTProj() { - showAUT("Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj()); - } - - public void statSavedAUT() { - //TraceManager.addDev("toto"); - String graph[] = loadAUTGraph(); - if (graph != null) { - showAUT("Analysis on " + graph[0], graph[1]); - } - } - - public void pmAUT() { - showPMAUT("Power Management Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT()); - } - - public void pmAUTProj() { - showPMAUT("Power Management Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj()); - } - - public void pmSavedAUT() { - //TraceManager.addDev("toto"); - String graph[] = loadAUTGraph(); - if (graph != null) { - showPMAUT("Power Management Analysis on " + graph[0], graph[1]); - } - } - - public void showFormalSpecification() { - if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { - showFormalSpecification("RT-LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification()); - } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { - showFormalSpecification("LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification()); - } else if (gtm.getLanguageID() == GTURTLEModeling.PROVERIF) { - showFormalSpecification("Last ProVerif Specification", gtm.getLastProVerifSpecification()); - } - } - - public void showFormalSpecification(String title, String data) { - JFrameText jft = new JFrameText(title, data); - jft.setIconImage(IconManager.img8); - jft.setSize(600, 600); - GraphicLib.centerOnParent(jft); - jft.setVisible(true); - } - - public void showJavaCode() { - if (javaframe == null) { - javaframe = new JFrameCode("JavaCode", "", ""); - javaframe.setIconImage(IconManager.img8); - javaframe.setSize(350, 350); - GraphicLib.centerOnParent(javaframe); - javaframe.setVisible(true); - } else { - javaframe.setVisible(true); - } - } - - public void showBirdEyesView() { - if (birdframe == null) { - birdframe = new JFrameBird(this); - birdframe.setIconImage(IconManager.img8); - birdframe.setSize(150, 100); - GraphicLib.centerOnParent(birdframe); - birdframe.setVisible(true); - } else { - birdframe.setVisible(true); - } - } - - public void showEmbeddedBirdEyesView() { - //TraceManager.addDev("Embedded!"); - if (jbp.getGo()) { - jbp.setGo(false); - } else { - jbp.startProcess(); - } - } - - public void drawBird() { - if (jbp.getGo()) { - jbp.repaint(); - } - - if (birdframe != null) { - birdframe.updatePanel(); - } - } - - public void unsetBirdFrame() { - birdframe = null; - } - - public void setJavaPreCode(TGComponent tgc) { - if (javaframe != null) { - if (tgc == null) { - javaframe.setPreCode(""); - return; - } - if (tgc.hasPreJavaCode()) { - javaframe.setPreCode(tgc.getPreJavaCode()); - } else { - javaframe.setPreCode(""); - } - } - } - - public void setJavaPostCode(TGComponent tgc) { - if (javaframe != null) { - if (tgc == null) { - javaframe.setPostCode(""); - return; - } - if (tgc.hasPostJavaCode()) { - javaframe.setPostCode(tgc.getPostJavaCode()); - } else { - javaframe.setPostCode(""); - } - } - } - - public void showSuggestedDesign() { - JFrameText jft = new JFrameText("Suggested Design #" + gtm.getNbSuggestedDesign(), gtm.getLastTextualDesign()); - jft.setIconImage(IconManager.img8); - jft.setSize(600, 600); - GraphicLib.centerOnParent(jft); - jft.setVisible(true); - } - - public void showSavedRTLOTOS() { - String spec[] = loadLotosSpec(); - if ((spec != null) && (spec[0] != null) && (spec[1] != null)) { - JFrameText jft = new JFrameText("RT-LOTOS Specification: " + spec[0], spec[1]); - jft.setIconImage(IconManager.img8); - jft.setSize(600, 600); - GraphicLib.centerOnParent(jft); - jft.setVisible(true); - } - } - - public void showSimulationTrace() { - gtm.showSIM(1); - } - - public void showSimulationTraceChrono() { - gtm.showSIM(2); - } - - public void showDTA() { - String s = gtm.showDTA(); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The DTA could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void showWave() { - RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.SystemCHost, null, null, ConfigurationTTool.GTKWavePath + " vcddump.vcd"); - ret.start(); - } - - public void showRG() { - String s = gtm.showRG(); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The RG could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void showTLSA() { - String s = gtm.showTLSA(); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The TLSA could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void showRGAut() { - String s = gtm.showRGAut(); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The RG could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void showRGAutProj() { - String s = gtm.showRGAutProj(); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The RG could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void showRGDiplodocus() { - String s = gtm.showRGDiplodocus(); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The RG could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void showModifiedAUTDOT() { - String s = GTURTLEModeling.runDOTTY(modifiedautdot); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The RG could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void showGGraph() { - String graph[] = loadGGraph(); - if (graph != null) { - String s = GTURTLEModeling.showGGraph(graph[1]); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The graph could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - } - - public void viewAutomata(String file) { - //TraceManager.addDev("viewing: " + file); - String graph[] = loadGGraph(file); - if (graph != null) { - String s = GTURTLEModeling.showGGraph(graph[1]); - if (s != null) { - JOptionPane.showMessageDialog(frame, - "The graph could not be displayed: " + s, - "Error", - JOptionPane.INFORMATION_MESSAGE); - } - } - } - - public void executeUserCommand(String host, String command) { - RemoteExecutionThread ret = new RemoteExecutionThread(host, null, null, command); - ret.start(); - TraceManager.addDev("User command ->" + command + "<- started on host " + host); - } - - - public void screenCapture() { - //Select file - File file = selectFileForCapture(); - Toolkit toolkit = Toolkit.getDefaultToolkit(); - Dimension screenSize = toolkit.getScreenSize(); - Rectangle screenRect = new Rectangle(screenSize); - performScreenCapture(screenRect, file); - } - - public void windowCapture() { - //Select file - File file = selectFileForCapture(); - if (file == null) - return; - - Rectangle screenRect = new Rectangle(frame.getLocation().x, frame.getLocation().y, frame.getWidth(), frame.getHeight()); - performScreenCapture(screenRect, file); - } - - public void diagramCapture() { - if (tabs.size() < 1) { - JOptionPane.showMessageDialog(frame, - "No diagram is under edition", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - File file = selectFileForCapture(); - if (file == null) - return; - - TDiagramPanel tdp1 = getCurrentTDiagramPanel(); - if (tdp1 != null) { - BufferedImage image = tdp1.performMinimalCapture(); - writeImageCapture(image, file, true); - } - } - - public void svgDiagramCapture() { - - TraceManager.addDev("SVG capture "); - - if (tabs.size() < 1) { - JOptionPane.showMessageDialog(frame, - "No diagram is under edition", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - File file = selectSVGFileForCapture(); - - if (file == null) - return; - - TDiagramPanel tdp1 = getCurrentTDiagramPanel(); - if (tdp1 != null) { - String s = tdp1.svgCapture(); - try { - FileUtils.saveFile(file.getAbsolutePath(), s); - } catch (Exception e) { - JOptionPane.showMessageDialog(frame, - "File could not be saved: " + e.getMessage(), - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - JOptionPane.showMessageDialog(frame, - "The capture was correctly performed and saved in " + file.getAbsolutePath(), - "Save in svg format ok", - JOptionPane.INFORMATION_MESSAGE); - } - } - - public void allDiagramCapture() { - if (tabs.size() < 1) { - JOptionPane.showMessageDialog(frame, - "No diagram is under edition", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - File file = selectFileForCapture(); - if (file == null) - return; - - TURTLEPanel tp = getCurrentTURTLEPanel(); - TDiagramPanel tdp1; - BufferedImage image; - File file1; - String name = file.getAbsolutePath(); - name = name.substring(0, name.length() - 4); - - //boolean actions; - for(int i=0; i<tp.panels.size(); i++) { - tdp1 = (TDiagramPanel)(tp.panels.elementAt(i)); - tdp1.repaint(); - image = tdp1.performMinimalCapture(); - if (i < 10) { - file1 = new File(name + "0" + i); - } else { - file1 = new File(name + i); - } - file1 = FileUtils.addFileExtensionIfMissing(file1, TImgFilter.getExtension()); - if (!writeImageCapture(image, file1, false)) { - return; - } - if (i ==0) { - if (!writeImageCapture(image, file, false)) { - return; - } - } - } - - JOptionPane.showMessageDialog(frame, - "All diagrams were sucessfully captured", - "Capture ok", - JOptionPane.INFORMATION_MESSAGE); - } - - public void selectedCapture() { - File file = selectFileForCapture(); - if (file == null) - return; - BufferedImage image = getCurrentTDiagramPanel().performSelectedCapture(); - writeImageCapture(image, file, true); - } - - public File selectFileForCapture() { - File file = null; - int returnVal = jfcimg.showSaveDialog(frame); - if(returnVal == JFileChooser.APPROVE_OPTION) { - file = jfcimg.getSelectedFile(); - file = FileUtils.addFileExtensionIfMissing(file, TImgFilter.getExtension()); - - } - if(!checkFileForSave(file)) { - JOptionPane.showMessageDialog(frame, - "The capture could not be performed: invalid file", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return null; - } - return file; - } - - public File selectSVGFileForCapture() { - File file = null; - int returnVal = jfcimgsvg.showSaveDialog(frame); - if(returnVal == JFileChooser.APPROVE_OPTION) { - file = jfcimgsvg.getSelectedFile(); - file = FileUtils.addFileExtensionIfMissing(file, TSVGFilter.getExtension()); - - } - if(!checkFileForSave(file)) { - JOptionPane.showMessageDialog(frame, - "The capture could not be performed: invalid file", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return null; - } - return file; - } - - public void performScreenCapture(Rectangle rect, File file) { - frame.paint(frame.getGraphics()); - try { - Robot robot = new Robot(); - BufferedImage image = robot.createScreenCapture(rect); - // save captured image to PNG file - ImageIO.write(image, "png", file); - } catch (Exception e) { - JOptionPane.showMessageDialog(frame, - "The capture could not be performed:" + e.getMessage(), - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - JOptionPane.showMessageDialog(frame, - "The capture was correctly performed", - "Screen capture ok", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - public boolean writeImageCapture(BufferedImage image, File file, boolean info) { - frame.paint(frame.getGraphics()); - try { - // save captured image to PNG file - ImageIO.write(image, "png", file); - } catch (Exception e) { - JOptionPane.showMessageDialog(frame, - "The capture could not be performed:" + e.getMessage(), - "Error", - JOptionPane.INFORMATION_MESSAGE); - return false; - } - if (info) { - JOptionPane.showMessageDialog(frame, - "The capture was correctly performed and saved in " + file.getAbsolutePath(), - "Screen capture ok", - JOptionPane.INFORMATION_MESSAGE); - } - return true; - } - - public void generateDocumentation() { - //TraceManager.addDev("Documentation"); - ThreadGUIElement t = new ThreadGUIElement(frame, 1, tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName(),"Documentation", "Generating documentation ... Please wait"); - t.go(); - /*DocumentationGenerator docgen = new DocumentationGenerator(tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName()); - docgen.setFirstHeadingNumber(2); - if (docgen.generateDocumentation()) { - JOptionPane.showMessageDialog(frame, - "All done!", - "Documentation generation", - JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(frame, - "The documentation generation could not be performed", - "Error", - JOptionPane.INFORMATION_MESSAGE); - }*/ - //TraceManager.addDev("Documentation=" + docgen.getDocumentation()); - } - - public void generateDocumentationReq() { - TraceManager.addDev("Frame Req"); - JDialogRequirementTable jdrt = new JDialogRequirementTable(frame, "Selecting table columns"); - GraphicLib.centerOnParent(jdrt); - jdrt.setVisible(true); - if (!jdrt.hasBeenCancelled()) { - Point [] pts = jdrt.getColumnsInfo(); - if (pts != null) { - for(int i=0; i<pts.length; i++) { - TraceManager.addDev("" + i + ": (" + pts[i].x + ", " + pts[i].y + ")"); - } - - JFrameRequirementTable jfrt = new JFrameRequirementTable("Requirement table", tabs, mainTabbedPane, pts); - jfrt.setIconImage(IconManager.img8); - jfrt.setSize(1024, 768); - GraphicLib.centerOnParent(jfrt); - jfrt.setVisible(true); - } else { - TraceManager.addDev("No column to print"); - } - } - TraceManager.addDev("Done"); - } - - public int getTypeButtonSelected() { - return typeButtonSelected; - } - - public void actionOnButton(int type, int id) { - typeButtonSelected = type; - idButtonSelected = id; - //TDiagramPanel tdp1 = ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp; - TDiagramPanel tdp1 = getCurrentTDiagramPanel(); - //TraceManager.addDev("Selected TDiagramPanel=" + tdp1.getName()); - tdp1.repaint(); - } - - public int getIdButtonSelected() { - return idButtonSelected; - } - - public void addAvatarBlock(TURTLEPanel tp, String s) { - //TraceManager.addDev("ADD TML Task=" + s); - if (!(tp instanceof AvatarDesignPanel)) { - return; - } - - ((AvatarDesignPanel)tp).addAvatarStateMachineDiagramPanel(s); - setPanelMode(); - } - - public void addTClass(TURTLEPanel tp, String s) { - if (!(tp instanceof DesignPanel)) { - return; - } - - ((DesignPanel)tp).addTActivityDiagram(s); - setPanelMode(); - } - - public void addTOSClass(TURTLEPanel tp, String s) { - if (!(tp instanceof TURTLEOSDesignPanel)) { - return; - } - - ((TURTLEOSDesignPanel)tp).addTURTLEOSActivityDiagram(s); - setPanelMode(); - } - - public void addTMLTask(TURTLEPanel tp, String s) { - //TraceManager.addDev("ADD TML Task=" + s); - if (!(tp instanceof TMLDesignPanel)) { - return; - } - - ((TMLDesignPanel)tp).addTMLActivityDiagram(s); - setPanelMode(); - } - - public void addTMLCPrimitiveComponent(TURTLEPanel tp, String s) { - //TraceManager.addDev("ADD C Primitive Component=" + s); - if (!(tp instanceof TMLComponentDesignPanel)) { - return; - } - - ((TMLComponentDesignPanel)tp).addTMLActivityDiagram(s); - setPanelMode(); - } - - public TMLActivityDiagramPanel getReferencedTMLActivityDiagramPanel(TDiagramPanel _tdp, String name) { - TURTLEPanel tp; - TMLActivityDiagramPanel tmladp; - //TraceManager.addDev("global search for: " + name); - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof TMLComponentDesignPanel) { - if (tp.hasTDiagramPanel(_tdp)) { - tmladp = ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name); - if (tmladp != null) { - //TraceManager.addDev("Found"); - return tmladp; - } - } - } - } - - TraceManager.addDev("Not found"); - return null; - } - - public TURTLEPanel getTURTLEPanelOfTDiagramPanel(TDiagramPanel _tdp) { - TURTLEPanel tp; - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof TMLComponentDesignPanel) { - if (tp.hasTDiagramPanel(_tdp)) { - return tp; - - } - } - } - return null; - } - - public ArrayList<EBRDDPanel> getAllEBRDDPanels() { - TURTLEPanel tp; - ArrayList<EBRDDPanel> al = new ArrayList<EBRDDPanel>(); - //TraceManager.addDev("global search for: " + name); - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof RequirementPanel) { - ((RequirementPanel)tp).addAllEBRDDPanels(al); - } - } - - return al; + jdla.setAutomatic(automatic); + jdla.setSize(450, 600); + GraphicLib.centerOnParent(jdla); + jdla.setVisible(true); + dtree.toBeUpdated(); + } else if (gtm.getLanguageID() == GTURTLEModeling.UPPAAL) { + JDialogUPPAALValidation jduv = new JDialogUPPAALValidation(frame, + this, "Formal verification with UPPAAL", + gtm.getPathUPPAALVerifier(), + gtm.getPathUPPAALFile(), + REMOTE_UPPAAL_FILE, + gtm.getLastUPPAALSpecification().getStringSpec(), + gtm.getUPPAALVerifierHost(), + _tp); + jduv.setSize(450, 600); + GraphicLib.centerOnParent(jduv); + jduv.setVisible(true); + dtree.toBeUpdated(); + } else if (gtm.getLanguageID() == GTURTLEModeling.MATRIX) { + JDialogTMatrixManagement jdfv = new JDialogTMatrixManagement(frame, + this, + "Observers's Based Formal Verification", + gtm.getRequirementModeling(), + gtm.getPathRTL(), + gtm.getPathDTA2DOT(), + gtm.getPathRGSTRAP(), + gtm.getPathRG2TLSA(), + REMOTE_RTL_LOTOS_FILE, + gtm.getHost(), + GTURTLEModeling.getHostAldebaran(), + gtm.getPathBcgio()); + jdfv.setSize(550, 600); + jdfv.setIconImage(IconManager.img8); + GraphicLib.centerOnParent(jdfv); + jdfv.setVisible(true); + dtree.toBeUpdated(); } - - public ArrayList<AvatarPDPanel> getAllAvatarPDPanels() { - TURTLEPanel tp; - ArrayList<AvatarPDPanel> al = new ArrayList<AvatarPDPanel>(); - //TraceManager.addDev("global search for: " + name); - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof AvatarRequirementPanel) { - ((AvatarRequirementPanel)tp).addAllAvatarPDPanels(al); - } - } - - return al; +} + +public void projection() { + TClassDiagramPanel tcdp = null; + if (getCurrentTURTLEPanel() instanceof DesignPanel) { + tcdp = ((DesignPanel)(getCurrentTURTLEPanel())).tcdp; + } + JDialogProjection jdfv = new JDialogProjection(frame, + this, + tcdp, + gtm.getTURTLEModeling(), + GTURTLEModeling.getHostAldebaran(), + GTURTLEModeling.getPathAldebaran(), + gtm.getPathBcgmin(), + gtm.getPathBcgio(), + gtm.getLastRGAUT(), + REMOTE_ALDEBARAN_AUT_FILE, + "Minimization using Aldebaran"); + jdfv.setSize(900, 700); + GraphicLib.centerOnParent(jdfv); + jdfv.setVisible(true); +} + +public void modifyGraph() { + JDialogGraphModification jdgm; + if (gtm == null ){ + jdgm = new JDialogGraphModification(frame, + GTURTLEModeling.getHostAldebaran(), + GTURTLEModeling.getPathBcgio(), + "graph", + "Minimization using Aldebaran", + null, null); + } else { + jdgm = new JDialogGraphModification(frame, + GTURTLEModeling.getHostAldebaran(), + gtm.getPathBcgio(), + "graph", + "Minimization using Aldebaran", + gtm.getLastRGAUT(), + gtm.getLastTextualRGAUTProj()); + } + jdgm.setSize(600, 500); + GraphicLib.centerOnParent(jdgm); + jdgm.setVisible(true); + modifiedaut = jdgm.getGraphAUT(); + modifiedautdot = jdgm.getGraphDOT(); + if (modifiedautdot != null) { + actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].setEnabled(true); + actions[TGUIAction.ACT_SAVE_AUTMODIFIED].setEnabled(true); + } + //gtm.modifyMinimizedGraph(); +} + +public void bisimulation() { + JDialogBisimulation jdb = new JDialogBisimulation(frame, + GTURTLEModeling.getHostAldebaran(), + GTURTLEModeling.getPathAldebaran(), + REMOTE_ALDEBARAN_BISIMU_FILE1, + REMOTE_ALDEBARAN_BISIMU_FILE2, + "Bisimulation using Aldebaran"); + jdb.setSize(650, 800); + GraphicLib.centerOnParent(jdb); + jdb.setVisible(true); + //TraceManager.addDev("Bisimulation"); +} + +public void bisimulationCADP() { + JDialogBisimulationBisimulator jdb = new JDialogBisimulationBisimulator(frame, + GTURTLEModeling.getCaesarHost(), + GTURTLEModeling.getPathBisimulator(), + GTURTLEModeling.getPathBcgio(), + REMOTE_BISIMULATOR_FILE1, + REMOTE_BISIMULATOR_FILE2, + "Bisimulation using BISIMULATOR"); + jdb.setSize(650, 800); + GraphicLib.centerOnParent(jdb); + jdb.setVisible(true); + //TraceManager.addDev("Bisimulation"); +} + +public void seekDeadlockAUT() { + String dataAUT = gtm.getLastTextualRGAUT(); + + JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks", dataAUT); + jfd.setIconImage(IconManager.img8); + jfd.setSize(600, 600); + GraphicLib.centerOnParent(jfd); + jfd.setVisible(true); +} + +public void seekDeadlockSavedAUT() { + String graph[] = loadAUTGraph(); + if (graph != null) { + JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks on " + graph[0], graph[1]); + jfd.setIconImage(IconManager.img8); + jfd.setSize(600, 600); + GraphicLib.centerOnParent(jfd); + jfd.setVisible(true); } - - public LinkedList getAllTMLComponents() { - TURTLEPanel tp; - LinkedList ll = new LinkedList(); - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof TMLComponentDesignPanel) { - ll.addAll(((TMLComponentDesignPanel)tp).tmlctdp.getComponentList()); - } - } - return ll; +} + +public void showAUT(String title, String data) { + /*JFrameStatistics jfs = new JFrameStatistics(title, data); + jfs.setIconImage(IconManager.img8); + jfs.setSize(600, 600); + GraphicLib.centerOnParent(jfs); + jfs.setVisible(true);*/ + ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait"); + t.go(); +} + +public void showPMAUT(String title, String data) { + TraceManager.addDev("Power management analysis"); + JFramePowerManagementAnalysis jfpma = new JFramePowerManagementAnalysis(title, data); + jfpma.setIconImage(IconManager.img8); + jfpma.setSize(600, 600); + GraphicLib.centerOnParent(jfpma); + jfpma.setVisible(true); +} + +public void NC() { + TraceManager.addDev("NC"); + JFrameNC jfnc = new JFrameNC("Network calculus", gtm.getNCS()); + jfnc.setIconImage(IconManager.img8); + jfnc.setSize(600, 600); + GraphicLib.centerOnParent(jfnc); + jfnc.setVisible(true); + TraceManager.addDev("Done"); + + /*JFrameStatistics jfs = new JFrameStatistics(title, data); + jfs.setIconImage(IconManager.img8); + jfs.setSize(600, 600); + GraphicLib.centerOnParent(jfs); + jfs.setVisible(true);*/ +} + +public void statAUT() { + showAUT("Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT()); +} + +public void statAUTDiplodocus() { + String spec = loadFile(new File(ConfigurationTTool.TGraphPath + "/tree.aut")); + if (spec == null) { + JOptionPane.showMessageDialog(frame, + "The fill could not be loaded:", + "Error", + JOptionPane.INFORMATION_MESSAGE); + return; } - public void removeTClass(TURTLEPanel tp, String s) { - if (!(tp instanceof DesignPanel)) { + showAUT("Analysis on the last DIPLODOCUS RG", spec); +} + +public void statAUTProj() { + showAUT("Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj()); +} + +public void statSavedAUT() { + //TraceManager.addDev("toto"); + String graph[] = loadAUTGraph(); + if (graph != null) { + showAUT("Analysis on " + graph[0], graph[1]); + } +} + +public void pmAUT() { + showPMAUT("Power Management Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT()); +} + +public void pmAUTProj() { + showPMAUT("Power Management Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj()); +} + +public void pmSavedAUT() { + //TraceManager.addDev("toto"); + String graph[] = loadAUTGraph(); + if (graph != null) { + showPMAUT("Power Management Analysis on " + graph[0], graph[1]); + } +} + +public void showFormalSpecification() { + if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) { + showFormalSpecification("RT-LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification()); + } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) { + showFormalSpecification("LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification()); + } else if (gtm.getLanguageID() == GTURTLEModeling.PROVERIF) { + showFormalSpecification("Last ProVerif Specification", gtm.getLastProVerifSpecification()); + } +} + +public void showFormalSpecification(String title, String data) { + JFrameText jft = new JFrameText(title, data); + jft.setIconImage(IconManager.img8); + jft.setSize(600, 600); + GraphicLib.centerOnParent(jft); + jft.setVisible(true); +} + +public void showJavaCode() { + if (javaframe == null) { + javaframe = new JFrameCode("JavaCode", "", ""); + javaframe.setIconImage(IconManager.img8); + javaframe.setSize(350, 350); + GraphicLib.centerOnParent(javaframe); + javaframe.setVisible(true); + } else { + javaframe.setVisible(true); + } +} + +public void showBirdEyesView() { + if (birdframe == null) { + birdframe = new JFrameBird(this); + birdframe.setIconImage(IconManager.img8); + birdframe.setSize(150, 100); + GraphicLib.centerOnParent(birdframe); + birdframe.setVisible(true); + } else { + birdframe.setVisible(true); + } +} + +public void showEmbeddedBirdEyesView() { + //TraceManager.addDev("Embedded!"); + if (jbp.getGo()) { + jbp.setGo(false); + } else { + jbp.startProcess(); + } +} + +public void drawBird() { + if (jbp.getGo()) { + jbp.repaint(); + } + + if (birdframe != null) { + birdframe.updatePanel(); + } +} + +public void unsetBirdFrame() { + birdframe = null; +} + +public void setJavaPreCode(TGComponent tgc) { + if (javaframe != null) { + if (tgc == null) { + javaframe.setPreCode(""); return; } - - for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - tp.tabbedPane.removeTabAt(i); - tp.panels.removeElementAt(i); - setPanelMode(); - return; - } + if (tgc.hasPreJavaCode()) { + javaframe.setPreCode(tgc.getPreJavaCode()); + } else { + javaframe.setPreCode(""); } } +} - public void removeTOSClass(TURTLEPanel tp, String s) { - if (!(tp instanceof TURTLEOSDesignPanel)) { +public void setJavaPostCode(TGComponent tgc) { + if (javaframe != null) { + if (tgc == null) { + javaframe.setPostCode(""); return; } - - TraceManager.addDev("Removing tab ..."); - for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - tp.tabbedPane.removeTabAt(i); - tp.panels.removeElementAt(i); - setPanelMode(); - return; - } + if (tgc.hasPostJavaCode()) { + javaframe.setPostCode(tgc.getPostJavaCode()); + } else { + javaframe.setPostCode(""); } } +} - public void removeTMLTask(TURTLEPanel tp, String s) { - if (!(tp instanceof TMLDesignPanel)) { - return; - } +public void showSuggestedDesign() { + JFrameText jft = new JFrameText("Suggested Design #" + gtm.getNbSuggestedDesign(), gtm.getLastTextualDesign()); + jft.setIconImage(IconManager.img8); + jft.setSize(600, 600); + GraphicLib.centerOnParent(jft); + jft.setVisible(true); +} - for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - tp.tabbedPane.removeTabAt(i); - tp.panels.removeElementAt(i); - setPanelMode(); - return; - } - } +public void showSavedRTLOTOS() { + String spec[] = loadLotosSpec(); + if ((spec != null) && (spec[0] != null) && (spec[1] != null)) { + JFrameText jft = new JFrameText("RT-LOTOS Specification: " + spec[0], spec[1]); + jft.setIconImage(IconManager.img8); + jft.setSize(600, 600); + GraphicLib.centerOnParent(jft); + jft.setVisible(true); } +} - public void removeAvatarBlock(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarDesignPanel)) { - return; - } +public void showSimulationTrace() { + gtm.showSIM(1); +} - for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - tp.tabbedPane.removeTabAt(i); - tp.panels.removeElementAt(i); - setPanelMode(); - return; - } - } +public void showSimulationTraceChrono() { + gtm.showSIM(2); +} + +public void showDTA() { + String s = gtm.showDTA(); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The DTA could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } +} - public void removeTMLCPrimitiveComponent(TURTLEPanel tp, String s) { - //TraceManager.addDev("Removing panel 0:" + s); - if (!(tp instanceof TMLComponentDesignPanel)) { - return; - } +public void showWave() { + RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.SystemCHost, null, null, ConfigurationTTool.GTKWavePath + " vcddump.vcd"); + ret.start(); +} - //TraceManager.addDev("Removing panel 1:" + s); - for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - tp.tabbedPane.removeTabAt(i); - tp.panels.removeElementAt(i); - setPanelMode(); - return; - } - } +public void showRG() { + String s = gtm.showRG(); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The RG could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } +} - // for diagrams - public void setEditMode() { - typeButtonSelected = TGComponentManager.EDIT; - idButtonSelected = -1; +public void showTLSA() { + String s = gtm.showTLSA(); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The TLSA could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } +} - public String getTabName(TURTLEPanel p) { - int index = tabs.indexOf(p); - if (index<0) { - return ""; - } - return mainTabbedPane.getTitleAt(index); +public void showRGAut() { + String s = gtm.showRGAut(); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The RG could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } +} - public int getMajorIndexOf(TDiagramPanel tdp) { - TURTLEPanel tp; - - for(int i=0; i<tabs.size();i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp.panels.contains(tdp)) { - return i; - } - } - - return -1; +public void showRGAutProj() { + String s = gtm.showRGAutProj(); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The RG could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } +} - public String getMajorTitle(TDiagramPanel tdp) { - int index = getMajorIndexOf(tdp); - - if (index == -1) { - return "unknown"; - } - - return mainTabbedPane.getTitleAt(index); +public void showRGDiplodocus() { + String s = gtm.showRGDiplodocus(); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The RG could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } +} - public ArrayList<TMLComponentTaskDiagramPanel> getAllPanelsReferencingTMLCCompositeComponent(TMLCCompositeComponent tmlcc) { - TURTLEPanel tp; - ArrayList<TMLComponentTaskDiagramPanel> foundPanels = new ArrayList<TMLComponentTaskDiagramPanel>(); +public void showModifiedAUTDOT() { + String s = GTURTLEModeling.runDOTTY(modifiedautdot); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The RG could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); + } +} - for(int i=0; i<tabs.size();i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof TMLComponentDesignPanel) { - ((TMLComponentDesignPanel)tp).tmlctdp.getPanelsUsingAComponent(tmlcc, foundPanels); - } +public void showGGraph() { + String graph[] = loadGGraph(); + if (graph != null) { + String s = GTURTLEModeling.showGGraph(graph[1]); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The graph could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } - - return foundPanels; } +} - public void updateReferenceToTMLCCompositeComponent(TMLCCompositeComponent tmlcc) { - TURTLEPanel tp; - - for(int i=0; i<tabs.size();i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof TMLComponentDesignPanel) { - ((TMLComponentDesignPanel)tp).tmlctdp.updateReferenceToTMLCCompositeComponent(tmlcc); - } +public void viewAutomata(String file) { + //TraceManager.addDev("viewing: " + file); + String graph[] = loadGGraph(file); + if (graph != null) { + String s = GTURTLEModeling.showGGraph(graph[1]); + if (s != null) { + JOptionPane.showMessageDialog(frame, + "The graph could not be displayed: " + s, + "Error", + JOptionPane.INFORMATION_MESSAGE); } } +} - public TMLCCompositeComponent getCompositeComponent(String name) { - int index = name.indexOf("::"); - if (index == -1) { - return null; - } +public void executeUserCommand(String host, String command) { + RemoteExecutionThread ret = new RemoteExecutionThread(host, null, null, command); + ret.start(); + TraceManager.addDev("User command ->" + command + "<- started on host " + host); +} - String panelName = name.substring(0, index); - String componentName = name.substring(index+2, name.length()); - TURTLEPanel tp = getTURTLEPanel(panelName); +public void screenCapture() { + //Select file + File file = selectFileForCapture(); + Toolkit toolkit = Toolkit.getDefaultToolkit(); + Dimension screenSize = toolkit.getScreenSize(); + Rectangle screenRect = new Rectangle(screenSize); + performScreenCapture(screenRect, file); +} - if ((tp == null) || (!(tp instanceof TMLComponentDesignPanel))) { - return null; - } +public void windowCapture() { + //Select file + File file = selectFileForCapture(); + if (file == null) + return; + Rectangle screenRect = new Rectangle(frame.getLocation().x, frame.getLocation().y, frame.getWidth(), frame.getHeight()); + performScreenCapture(screenRect, file); +} - return ((TMLComponentDesignPanel)(tp)).tmlctdp.getCompositeComponentByName(componentName); +public void diagramCapture() { + if (tabs.size() < 1) { + JOptionPane.showMessageDialog(frame, + "No diagram is under edition", + "Error", + JOptionPane.INFORMATION_MESSAGE); + return; } - public AvatarSMDPanel getAvatarSMDPanel(int indexDesign, String name) { + File file = selectFileForCapture(); + if (file == null) + return; - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - if (tp == null) { - TraceManager.addDev("null TP"); - return null; - } - if (tp instanceof AvatarDesignPanel) { - return ((AvatarDesignPanel)tp).getAvatarSMDPanel(name); - } - TraceManager.addDev("null ADP :" + name); - return null; + TDiagramPanel tdp1 = getCurrentTDiagramPanel(); + if (tdp1 != null) { + BufferedImage image = tdp1.performMinimalCapture(); + writeImageCapture(image, file, true); } +} - public TActivityDiagramPanel getActivityDiagramPanel(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - if (tp == null) { - return null; - } - if (tp instanceof DesignPanel) { - return ((DesignPanel)tp).getActivityDiagramPanel(name); - } - return null; - } +public void svgDiagramCapture() { - public TURTLEOSActivityDiagramPanel getTURTLEOSActivityDiagramPanel(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - if (tp == null) { - return null; - } - if (tp instanceof TURTLEOSDesignPanel) { - return ((TURTLEOSDesignPanel)tp).getTURTLEOSActivityDiagramPanel(name); - } - return null; + TraceManager.addDev("SVG capture "); + + if (tabs.size() < 1) { + JOptionPane.showMessageDialog(frame, + "No diagram is under edition", + "Error", + JOptionPane.INFORMATION_MESSAGE); + return; } - public TMLActivityDiagramPanel getTMLActivityDiagramPanel(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - if (tp == null) { - return null; - } - if (tp instanceof TMLDesignPanel) { - return ((TMLDesignPanel)tp).getTMLActivityDiagramPanel(name); - } - if (tp instanceof TMLComponentDesignPanel) { - return ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name); + File file = selectSVGFileForCapture(); + + if (file == null) + return; + + TDiagramPanel tdp1 = getCurrentTDiagramPanel(); + if (tdp1 != null) { + String s = tdp1.svgCapture(); + try { + FileUtils.saveFile(file.getAbsolutePath(), s); + } catch (Exception e) { + JOptionPane.showMessageDialog(frame, + "File could not be saved: " + e.getMessage(), + "Error", + JOptionPane.INFORMATION_MESSAGE); + return; } - return null; + JOptionPane.showMessageDialog(frame, + "The capture was correctly performed and saved in " + file.getAbsolutePath(), + "Save in svg format ok", + JOptionPane.INFORMATION_MESSAGE); } +} - public ProactiveSMDPanel getSMDPanel(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - if (tp == null) { - return null; - } - if (tp instanceof ProactiveDesignPanel) { - return ((ProactiveDesignPanel)tp).getSMDPanel(name); - } - return null; +public void allDiagramCapture() { + if (tabs.size() < 1) { + JOptionPane.showMessageDialog(frame, + "No diagram is under edition", + "Error", + JOptionPane.INFORMATION_MESSAGE); + return; } - public int getNbActivityDiagram() { - TDiagramPanel tdp; - int cpt = 0; + File file = selectFileForCapture(); + if (file == null) + return; + + TURTLEPanel tp = getCurrentTURTLEPanel(); + TDiagramPanel tdp1; + BufferedImage image; + File file1; + String name = file.getAbsolutePath(); + name = name.substring(0, name.length() - 4); - for(int i = 0; i<getCurrentJTabbedPane().getTabCount(); i++) { - tdp = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(i)); - if (tdp instanceof TActivityDiagramPanel) { - cpt ++; + //boolean actions; + for(int i=0; i<tp.panels.size(); i++) { + tdp1 = (TDiagramPanel)(tp.panels.elementAt(i)); + tdp1.repaint(); + image = tdp1.performMinimalCapture(); + if (i < 10) { + file1 = new File(name + "0" + i); + } else { + file1 = new File(name + i); + } + file1 = FileUtils.addFileExtensionIfMissing(file1, TImgFilter.getExtension()); + if (!writeImageCapture(image, file1, false)) { + return; + } + if (i ==0) { + if (!writeImageCapture(image, file, false)) { + return; } } - return cpt; } - public void setAvatarBDName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); - } + JOptionPane.showMessageDialog(frame, + "All diagrams were sucessfully captured", + "Capture ok", + JOptionPane.INFORMATION_MESSAGE); +} - public void setClassDiagramName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); - } +public void selectedCapture() { + File file = selectFileForCapture(); + if (file == null) + return; + BufferedImage image = getCurrentTDiagramPanel().performSelectedCapture(); + writeImageCapture(image, file, true); +} + +public File selectFileForCapture() { + File file = null; + int returnVal = jfcimg.showSaveDialog(frame); + if(returnVal == JFileChooser.APPROVE_OPTION) { + file = jfcimg.getSelectedFile(); + file = FileUtils.addFileExtensionIfMissing(file, TImgFilter.getExtension()); - public void setDiplodocusMethodologyDiagramName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); } - - public void setAvatarMethodologyDiagramName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); + if(!checkFileForSave(file)) { + JOptionPane.showMessageDialog(frame, + "The capture could not be performed: invalid file", + "Error", + JOptionPane.INFORMATION_MESSAGE); + return null; } + return file; +} - public void setTMLTaskDiagramName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); - } +public File selectSVGFileForCapture() { + File file = null; + int returnVal = jfcimgsvg.showSaveDialog(frame); + if(returnVal == JFileChooser.APPROVE_OPTION) { + file = jfcimgsvg.getSelectedFile(); + file = FileUtils.addFileExtensionIfMissing(file, TSVGFilter.getExtension()); - public void setTMLComponentTaskDiagramName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); } - - public void setTMLArchitectureDiagramName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); + if(!checkFileForSave(file)) { + JOptionPane.showMessageDialog(frame, + "The capture could not be performed: invalid file", + "Error", + JOptionPane.INFORMATION_MESSAGE); + return null; } - - public void setAADName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); + return file; +} + +public void performScreenCapture(Rectangle rect, File file) { + frame.paint(frame.getGraphics()); + try { + Robot robot = new Robot(); + BufferedImage image = robot.createScreenCapture(rect); + // save captured image to PNG file + ImageIO.write(image, "png", file); + } catch (Exception e) { + JOptionPane.showMessageDialog(frame, + "The capture could not be performed:" + e.getMessage(), + "Error", + JOptionPane.INFORMATION_MESSAGE); + return; } - - public void setProacticeCSDName(int indexDesign, String name) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); - tp.tabbedPane.setTitleAt(0, name); + JOptionPane.showMessageDialog(frame, + "The capture was correctly performed", + "Screen capture ok", + JOptionPane.INFORMATION_MESSAGE); + return; +} + +public boolean writeImageCapture(BufferedImage image, File file, boolean info) { + frame.paint(frame.getGraphics()); + try { + // save captured image to PNG file + ImageIO.write(image, "png", file); + } catch (Exception e) { + JOptionPane.showMessageDialog(frame, + "The capture could not be performed:" + e.getMessage(), + "Error", + JOptionPane.INFORMATION_MESSAGE); + return false; } - - public TDiagramPanel getMainTDiagramPanel(int indexPanel) { - if (tabs.size() > indexPanel) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexPanel)); - return tp.tdp; + if (info) { + JOptionPane.showMessageDialog(frame, + "The capture was correctly performed and saved in " + file.getAbsolutePath(), + "Screen capture ok", + JOptionPane.INFORMATION_MESSAGE); + } + return true; +} + +public void generateDocumentation() { + //TraceManager.addDev("Documentation"); + ThreadGUIElement t = new ThreadGUIElement(frame, 1, tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName(),"Documentation", "Generating documentation ... Please wait"); + t.go(); + /*DocumentationGenerator docgen = new DocumentationGenerator(tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName()); + docgen.setFirstHeadingNumber(2); + if (docgen.generateDocumentation()) { + JOptionPane.showMessageDialog(frame, + "All done!", + "Documentation generation", + JOptionPane.INFORMATION_MESSAGE); + } else { + JOptionPane.showMessageDialog(frame, + "The documentation generation could not be performed", + "Error", + JOptionPane.INFORMATION_MESSAGE); + }*/ + //TraceManager.addDev("Documentation=" + docgen.getDocumentation()); +} + +public void generateDocumentationReq() { + TraceManager.addDev("Frame Req"); + JDialogRequirementTable jdrt = new JDialogRequirementTable(frame, "Selecting table columns"); + GraphicLib.centerOnParent(jdrt); + jdrt.setVisible(true); + if (!jdrt.hasBeenCancelled()) { + Point [] pts = jdrt.getColumnsInfo(); + if (pts != null) { + for(int i=0; i<pts.length; i++) { + TraceManager.addDev("" + i + ": (" + pts[i].x + ", " + pts[i].y + ")"); + } + + JFrameRequirementTable jfrt = new JFrameRequirementTable("Requirement table", tabs, mainTabbedPane, pts); + jfrt.setIconImage(IconManager.img8); + jfrt.setSize(1024, 768); + GraphicLib.centerOnParent(jfrt); + jfrt.setVisible(true); } else { - return null; + TraceManager.addDev("No column to print"); } - } + TraceManager.addDev("Done"); +} - // TMLCP - public boolean isTMLCPSDCreated(int index, String s) { - return isTMLCPSDCreated(((TURTLEPanel)(tabs.elementAt(index))), s); - } +public int getTypeButtonSelected() { + return typeButtonSelected; +} - public boolean isTMLCPSDCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; - } - return (tp.panelAt(index) instanceof TMLSDPanel); - } +public void actionOnButton(int type, int id) { + typeButtonSelected = type; + idButtonSelected = id; + //TDiagramPanel tdp1 = ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp; + TDiagramPanel tdp1 = getCurrentTDiagramPanel(); + //TraceManager.addDev("Selected TDiagramPanel=" + tdp1.getName()); + tdp1.repaint(); +} - public boolean isTMLCPCreated(int index, String s) { - return isTMLCPCreated(((TURTLEPanel) (tabs.elementAt(index))), s); - } +public int getIdButtonSelected() { + return idButtonSelected; +} - public boolean isTMLCPCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; - } - return (tp.panelAt(index) instanceof TMLCPPanel); +public void addAvatarBlock(TURTLEPanel tp, String s) { + //TraceManager.addDev("ADD TML Task=" + s); + if (!(tp instanceof AvatarDesignPanel)) { + return; } + ((AvatarDesignPanel)tp).addAvatarStateMachineDiagramPanel(s); + setPanelMode(); +} +public void addTClass(TURTLEPanel tp, String s) { + if (!(tp instanceof DesignPanel)) { + return; + } + ((DesignPanel)tp).addTActivityDiagram(s); + setPanelMode(); +} - // IOD, SD - - public boolean isSDCreated(int index, String s) { - return isSDCreated(((TURTLEPanel) (tabs.elementAt(index))), s); +public void addTOSClass(TURTLEPanel tp, String s) { + if (!(tp instanceof TURTLEOSDesignPanel)) { + return; } - public boolean isIODCreated(int index, String s) { - return isIODCreated(((TURTLEPanel) (tabs.elementAt(index))), s); - } + ((TURTLEOSDesignPanel)tp).addTURTLEOSActivityDiagram(s); + setPanelMode(); +} - public boolean isProActiveSMDCreated(int index, String s) { - return isProActiveSMDCreated(((TURTLEPanel) (tabs.elementAt(index))), s); +public void addTMLTask(TURTLEPanel tp, String s) { + //TraceManager.addDev("ADD TML Task=" + s); + if (!(tp instanceof TMLDesignPanel)) { + return; } - public boolean isSDCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; - } - return (tp.panelAt(index) instanceof SequenceDiagramPanel); + ((TMLDesignPanel)tp).addTMLActivityDiagram(s); + setPanelMode(); +} + +public void addTMLCPrimitiveComponent(TURTLEPanel tp, String s) { + //TraceManager.addDev("ADD C Primitive Component=" + s); + if (!(tp instanceof TMLComponentDesignPanel)) { + return; } - public boolean isUseCaseDiagramCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; + ((TMLComponentDesignPanel)tp).addTMLActivityDiagram(s); + setPanelMode(); +} + +public TMLActivityDiagramPanel getReferencedTMLActivityDiagramPanel(TDiagramPanel _tdp, String name) { + TURTLEPanel tp; + TMLActivityDiagramPanel tmladp; + //TraceManager.addDev("global search for: " + name); + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof TMLComponentDesignPanel) { + if (tp.hasTDiagramPanel(_tdp)) { + tmladp = ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name); + if (tmladp != null) { + //TraceManager.addDev("Found"); + return tmladp; + } + } } - return (tp.panelAt(index) instanceof UseCaseDiagramPanel); } - public boolean isAvatarCDCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; + TraceManager.addDev("Not found"); + return null; +} + +public TURTLEPanel getTURTLEPanelOfTDiagramPanel(TDiagramPanel _tdp) { + TURTLEPanel tp; + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof TMLComponentDesignPanel) { + if (tp.hasTDiagramPanel(_tdp)) { + return tp; + + } } - return (tp.panelAt(index) instanceof AvatarCDPanel); } + return null; +} - public boolean isAvatarADCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; +public ArrayList<EBRDDPanel> getAllEBRDDPanels() { + TURTLEPanel tp; + ArrayList<EBRDDPanel> al = new ArrayList<EBRDDPanel>(); + //TraceManager.addDev("global search for: " + name); + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof RequirementPanel) { + ((RequirementPanel)tp).addAllEBRDDPanels(al); } - return (tp.panelAt(index) instanceof AvatarADPanel); } - public boolean isIODCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; + return al; +} + +public ArrayList<AvatarPDPanel> getAllAvatarPDPanels() { + TURTLEPanel tp; + ArrayList<AvatarPDPanel> al = new ArrayList<AvatarPDPanel>(); + //TraceManager.addDev("global search for: " + name); + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof AvatarRequirementPanel) { + ((AvatarRequirementPanel)tp).addAllAvatarPDPanels(al); } - return (tp.panelAt(index) instanceof InteractionOverviewDiagramPanel); } - public boolean isProActiveSMDCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; + return al; +} + +public LinkedList getAllTMLComponents() { + TURTLEPanel tp; + LinkedList ll = new LinkedList(); + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof TMLComponentDesignPanel) { + ll.addAll(((TMLComponentDesignPanel)tp).tmlctdp.getComponentList()); } - return (tp.panelAt(index) instanceof ProactiveSMDPanel); } + return ll; +} - public boolean openSequenceDiagram(String s) { - int index = getCurrentJTabbedPane().indexOfTab(s); - if (index > -1) { - getCurrentJTabbedPane().setSelectedIndex(index); - return true; - } - return false; +public void removeTClass(TURTLEPanel tp, String s) { + if (!(tp instanceof DesignPanel)) { + return; } - public boolean openIODiagram(String s) { - int index = getCurrentJTabbedPane().indexOfTab(s); - if (index > -1) { - getCurrentJTabbedPane().setSelectedIndex(index); - return true; + for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + tp.tabbedPane.removeTabAt(i); + tp.panels.removeElementAt(i); + setPanelMode(); + return; } - return false; } +} - public boolean openTMLCPSequenceDiagram(String s) { - int index = getCurrentJTabbedPane().indexOfTab(s); - if (index > -1) { - getCurrentJTabbedPane().setSelectedIndex(index); - return true; - } - return false; +public void removeTOSClass(TURTLEPanel tp, String s) { + if (!(tp instanceof TURTLEOSDesignPanel)) { + return; } - public boolean openTMLCPDiagram(String s) { - int index = getCurrentJTabbedPane().indexOfTab(s); - if (index > -1) { - getCurrentJTabbedPane().setSelectedIndex(index); - return true; + TraceManager.addDev("Removing tab ..."); + for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + tp.tabbedPane.removeTabAt(i); + tp.panels.removeElementAt(i); + setPanelMode(); + return; } - return false; } +} - - - // TMLCP - - public boolean createTMLCPSequenceDiagram(int index, String s) { - return createTMLCPSequenceDiagram((TURTLEPanel) (tabs.elementAt(index)), s); +public void removeTMLTask(TURTLEPanel tp, String s) { + if (!(tp instanceof TMLDesignPanel)) { + return; } - public boolean createTMLCPSequenceDiagram(TURTLEPanel tp, String s) { - if(isSDCreated(tp, s)) { - return false; - } - - if (!(tp instanceof TMLCommunicationPatternPanel) ) { - return false; + for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + tp.tabbedPane.removeTabAt(i); + tp.panels.removeElementAt(i); + setPanelMode(); + return; } + } +} +public void removeAvatarBlock(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarDesignPanel)) { + return; + } - ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s); - - setPanelMode(); - return true; + for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + tp.tabbedPane.removeTabAt(i); + tp.panels.removeElementAt(i); + setPanelMode(); + return; + } } +} +public void removeTMLCPrimitiveComponent(TURTLEPanel tp, String s) { + //TraceManager.addDev("Removing panel 0:" + s); + if (!(tp instanceof TMLComponentDesignPanel)) { + return; + } - public boolean createUniqueTMLCPSequenceDiagram(TURTLEPanel tp, String s) { - int i; - for(i=0; i<1000; i++) { - if(!isTMLCPSDCreated(tp, s+i)) { - break; - } + //TraceManager.addDev("Removing panel 1:" + s); + for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + tp.tabbedPane.removeTabAt(i); + tp.panels.removeElementAt(i); + setPanelMode(); + return; } + } +} - ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s+i); +// for diagrams +public void setEditMode() { + typeButtonSelected = TGComponentManager.EDIT; + idButtonSelected = -1; +} - setPanelMode(); - return true; +public String getTabName(TURTLEPanel p) { + int index = tabs.indexOf(p); + if (index<0) { + return ""; } + return mainTabbedPane.getTitleAt(index); +} +public int getMajorIndexOf(TDiagramPanel tdp) { + TURTLEPanel tp; + for(int i=0; i<tabs.size();i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp.panels.contains(tdp)) { + return i; + } + } + return -1; +} - public boolean createTMLCPDiagram(int index, String s) { - return createTMLCPDiagram((TURTLEPanel) (tabs.elementAt(index)), s); +public String getMajorTitle(TDiagramPanel tdp) { + int index = getMajorIndexOf(tdp); + + if (index == -1) { + return "unknown"; } - public boolean createTMLCPDiagram(TURTLEPanel tp, String s) { - if(isTMLCPCreated(tp, s)) { - return false; - } + return mainTabbedPane.getTitleAt(index); +} - if (!(tp instanceof TMLCommunicationPatternPanel)) { - return false; - } +public ArrayList<TMLComponentTaskDiagramPanel> getAllPanelsReferencingTMLCCompositeComponent(TMLCCompositeComponent tmlcc) { + TURTLEPanel tp; + ArrayList<TMLComponentTaskDiagramPanel> foundPanels = new ArrayList<TMLComponentTaskDiagramPanel>(); - ((TMLCommunicationPatternPanel)tp).addCPDiagram(s); - setPanelMode(); - return true; + for(int i=0; i<tabs.size();i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof TMLComponentDesignPanel) { + ((TMLComponentDesignPanel)tp).tmlctdp.getPanelsUsingAComponent(tmlcc, foundPanels); + } } - // End of TMLCP + return foundPanels; +} +public void updateReferenceToTMLCCompositeComponent(TMLCCompositeComponent tmlcc) { + TURTLEPanel tp; - public SequenceDiagramPanel getSequenceDiagramPanel(int index, String s) { - //TraceManager.addDev("Searching for " + s); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getSequenceDiagramPanel(tp, s); + for(int i=0; i<tabs.size();i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof TMLComponentDesignPanel) { + ((TMLComponentDesignPanel)tp).tmlctdp.updateReferenceToTMLCCompositeComponent(tmlcc); + } } +} - public AttackTreeDiagramPanel getAttackTreeDiagramPanel(int index, String s) { - //TraceManager.addDev("Searching for " + s); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getAttackTreeDiagramPanel(tp, s); +public TMLCCompositeComponent getCompositeComponent(String name) { + int index = name.indexOf("::"); + if (index == -1) { + return null; } - public AttackTreeDiagramPanel getAttackTreeDiagramPanel(TURTLEPanel tp, String s) { - for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - if (tp.panelAt(i) instanceof AttackTreeDiagramPanel) - return (AttackTreeDiagramPanel)(tp.panelAt(i)); - } - } + String panelName = name.substring(0, index); + String componentName = name.substring(index+2, name.length()); + + TURTLEPanel tp = getTURTLEPanel(panelName); + + if ((tp == null) || (!(tp instanceof TMLComponentDesignPanel))) { return null; } - public TMLCPPanel getTMLCPDiagramPanel(int index, String s) { - //TraceManager.addDev("Searching for " + s); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getTMLCPDiagramPanel(tp, s); - } + return ((TMLComponentDesignPanel)(tp)).tmlctdp.getCompositeComponentByName(componentName); +} - public TMLCPPanel getTMLCPDiagramPanel(TURTLEPanel tp, String s) { - for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - if (tp.panelAt(i) instanceof TMLCPPanel) - return (TMLCPPanel)(tp.panelAt(i)); - } - } +public AvatarSMDPanel getAvatarSMDPanel(int indexDesign, String name) { + + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + if (tp == null) { + TraceManager.addDev("null TP"); return null; } - - public TMLSDPanel getTMLCPSDDiagramPanel(int index, String s) { - //TraceManager.addDev("Searching for " + s); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getTMLCPSDDiagramPanel(tp, s); + if (tp instanceof AvatarDesignPanel) { + return ((AvatarDesignPanel)tp).getAvatarSMDPanel(name); } + TraceManager.addDev("null ADP :" + name); + return null; +} - public TMLSDPanel getTMLCPSDDiagramPanel(TURTLEPanel tp, String s) { - for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - if (tp.panelAt(i) instanceof TMLSDPanel) - return (TMLSDPanel)(tp.panelAt(i)); - } - } +public TActivityDiagramPanel getActivityDiagramPanel(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + if (tp == null) { return null; } - - public InteractionOverviewDiagramPanel getIODiagramPanel(int index, String s) { - //TraceManager.addDev("Searching for " + s); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getIODiagramPanel(tp, s); + if (tp instanceof DesignPanel) { + return ((DesignPanel)tp).getActivityDiagramPanel(name); } + return null; +} - public SequenceDiagramPanel getSequenceDiagramPanel(TURTLEPanel tp, String s) { - for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - if (tp.panelAt(i) instanceof SequenceDiagramPanel) - return (SequenceDiagramPanel)(tp.panelAt(i)); - } - } +public TURTLEOSActivityDiagramPanel getTURTLEOSActivityDiagramPanel(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + if (tp == null) { return null; } + if (tp instanceof TURTLEOSDesignPanel) { + return ((TURTLEOSDesignPanel)tp).getTURTLEOSActivityDiagramPanel(name); + } + return null; +} - public InteractionOverviewDiagramPanel getIODiagramPanel(TURTLEPanel tp, String s) { - for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - if (tp.panelAt(i) instanceof InteractionOverviewDiagramPanel) - return (InteractionOverviewDiagramPanel)(tp.panelAt(i)); - } - } +public TMLActivityDiagramPanel getTMLActivityDiagramPanel(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + if (tp == null) { return null; } - - public UseCaseDiagramPanel getUseCaseDiagramPanel(int index, int indexTab, String s) { - //TraceManager.addDev("Searching for " + s + " at index =" + index); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getUseCaseDiagramPanel(tp, indexTab, s); + if (tp instanceof TMLDesignPanel) { + return ((TMLDesignPanel)tp).getTMLActivityDiagramPanel(name); } + if (tp instanceof TMLComponentDesignPanel) { + return ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name); + } + return null; +} - public UseCaseDiagramPanel getUseCaseDiagramPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (UseCaseDiagramPanel)(tp.panelAt(indexTab)); - } +public ProactiveSMDPanel getSMDPanel(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + if (tp == null) { return null; } - - public boolean createSequenceDiagram(int index, String s) { - return createSequenceDiagram((TURTLEPanel)(tabs.elementAt(index)), s); + if (tp instanceof ProactiveDesignPanel) { + return ((ProactiveDesignPanel)tp).getSMDPanel(name); + } + return null; +} + +public int getNbActivityDiagram() { + TDiagramPanel tdp; + int cpt = 0; + + for(int i = 0; i<getCurrentJTabbedPane().getTabCount(); i++) { + tdp = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(i)); + if (tdp instanceof TActivityDiagramPanel) { + cpt ++; + } + } + return cpt; +} + +public void setAvatarBDName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setClassDiagramName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setDiplodocusMethodologyDiagramName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setAvatarMethodologyDiagramName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setTMLTaskDiagramName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setTMLComponentTaskDiagramName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setTMLArchitectureDiagramName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setAADName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public void setProacticeCSDName(int indexDesign, String name) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign)); + tp.tabbedPane.setTitleAt(0, name); +} + +public TDiagramPanel getMainTDiagramPanel(int indexPanel) { + if (tabs.size() > indexPanel) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexPanel)); + return tp.tdp; + } else { + return null; } - public boolean createSequenceDiagram(TURTLEPanel tp, String s) { - if(isSDCreated(tp, s)) { - return false; - } +} - if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { - return false; - } +// TMLCP +public boolean isTMLCPSDCreated(int index, String s) { + return isTMLCPSDCreated(((TURTLEPanel)(tabs.elementAt(index))), s); +} - if (tp instanceof AnalysisPanel) { - ((AnalysisPanel)tp).addSequenceDiagram(s); - } else if (tp instanceof AvatarAnalysisPanel) { - ((AvatarAnalysisPanel)tp).addSequenceDiagram(s); - } - setPanelMode(); - return true; +public boolean isTMLCPSDCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; } + return (tp.panelAt(index) instanceof TMLSDPanel); +} +public boolean isTMLCPCreated(int index, String s) { + return isTMLCPCreated(((TURTLEPanel) (tabs.elementAt(index))), s); +} - public boolean createUniqueSequenceDiagram(TURTLEPanel tp, String s) { - int i; - for(i=0; i<1000; i++) { - if(!isSDCreated(tp, s+i)) { - break; - } - } - - if (tp instanceof AnalysisPanel) { - ((AnalysisPanel)tp).addSequenceDiagram(s+i); - } else if (tp instanceof AvatarAnalysisPanel) { - ((AvatarAnalysisPanel)tp).addSequenceDiagram(s+i); - } - - setPanelMode(); - return true; +public boolean isTMLCPCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; } + return (tp.panelAt(index) instanceof TMLCPPanel); +} - public boolean createSequenceDiagramFromUCD(TURTLEPanel tp, String s, UseCaseDiagramPanel _ucdp) { - if (!createUniqueSequenceDiagram(tp, s)) { - return false; - } - if (! ((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { - return false; - } - if (tp instanceof AnalysisPanel) { - ((AnalysisPanel)tp).addInstancesToLastSD(_ucdp); - } else if (tp instanceof AvatarAnalysisPanel) { - ((AvatarAnalysisPanel)tp).addInstancesToLastSD(_ucdp); - } - return true; - } +// IOD, SD +public boolean isSDCreated(int index, String s) { + return isSDCreated(((TURTLEPanel) (tabs.elementAt(index))), s); +} +public boolean isIODCreated(int index, String s) { + return isIODCreated(((TURTLEPanel) (tabs.elementAt(index))), s); +} - public boolean createIODiagram(int index, String s) { - return createIODiagram((TURTLEPanel)(tabs.elementAt(index)), s); - } +public boolean isProActiveSMDCreated(int index, String s) { + return isProActiveSMDCreated(((TURTLEPanel) (tabs.elementAt(index))), s); +} - public boolean createIODiagram(TURTLEPanel tp, String s) { - if(isIODCreated(tp, s)) { - return false; - } +public boolean isSDCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; + } + return (tp.panelAt(index) instanceof SequenceDiagramPanel); +} - if (!(tp instanceof AnalysisPanel)) { - return false; - } +public boolean isUseCaseDiagramCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; + } + return (tp.panelAt(index) instanceof UseCaseDiagramPanel); +} - ((AnalysisPanel)tp).addIODiagram(s); - setPanelMode(); - return true; +public boolean isAvatarCDCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; } + return (tp.panelAt(index) instanceof AvatarCDPanel); +} - public boolean createUseCaseDiagram(int index, String s) { - return createUseCaseDiagram((TURTLEPanel) (tabs.elementAt(index)), s); +public boolean isAvatarADCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; } + return (tp.panelAt(index) instanceof AvatarADPanel); +} - public boolean createUniqueUseCaseDiagram(TURTLEPanel tp, String s) { - if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { - return false; - } +public boolean isIODCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; + } + return (tp.panelAt(index) instanceof InteractionOverviewDiagramPanel); +} - int i; - for(i=0; i<1000; i++) { - if(!isUseCaseDiagramCreated(tp, s + " " + i)) { - break; - } - } +public boolean isProActiveSMDCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; + } + return (tp.panelAt(index) instanceof ProactiveSMDPanel); +} - if (tp instanceof AnalysisPanel) { - ((AnalysisPanel)tp).addUseCaseDiagram(s + " " + i); - } else { - ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s + " " + i); - } - setPanelMode(); +public boolean openSequenceDiagram(String s) { + int index = getCurrentJTabbedPane().indexOfTab(s); + if (index > -1) { + getCurrentJTabbedPane().setSelectedIndex(index); return true; } + return false; +} - public boolean createUseCaseDiagram(TURTLEPanel tp, String s) { - if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { - return false; - } +public boolean openIODiagram(String s) { + int index = getCurrentJTabbedPane().indexOfTab(s); + if (index > -1) { + getCurrentJTabbedPane().setSelectedIndex(index); + return true; + } + return false; +} - if (tp instanceof AnalysisPanel) { - ((AnalysisPanel)tp).addUseCaseDiagram(s); - } else { - ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s); - } - setPanelMode(); +public boolean openTMLCPSequenceDiagram(String s) { + int index = getCurrentJTabbedPane().indexOfTab(s); + if (index > -1) { + getCurrentJTabbedPane().setSelectedIndex(index); return true; } + return false; +} - public boolean createAvatarCD(int index, String s) { - return createAvatarCD((TURTLEPanel) (tabs.elementAt(index)), s); +public boolean openTMLCPDiagram(String s) { + int index = getCurrentJTabbedPane().indexOfTab(s); + if (index > -1) { + getCurrentJTabbedPane().setSelectedIndex(index); + return true; } + return false; +} - public boolean createUniqueAvatarCD(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarAnalysisPanel)) { - return false; - } - int i; - for(i=0; i<1000; i++) { - if(!isAvatarCDCreated(tp, s + " " + i)) { - break; - } - } - ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s + " " + i); +// TMLCP +public boolean createTMLCPSequenceDiagram(int index, String s) { + return createTMLCPSequenceDiagram((TURTLEPanel) (tabs.elementAt(index)), s); +} - setPanelMode(); - return true; +public boolean createTMLCPSequenceDiagram(TURTLEPanel tp, String s) { + if(isSDCreated(tp, s)) { + return false; } - public boolean createAvatarCD(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarAnalysisPanel)) { - return false; - } + if (!(tp instanceof TMLCommunicationPatternPanel) ) { + return false; + } - ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s); + ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s); + setPanelMode(); + return true; +} - setPanelMode(); - return true; - } - public boolean createAvatarAD(int index, String s) { - return createAvatarAD((TURTLEPanel) (tabs.elementAt(index)), s); +public boolean createUniqueTMLCPSequenceDiagram(TURTLEPanel tp, String s) { + int i; + for(i=0; i<1000; i++) { + if(!isTMLCPSDCreated(tp, s+i)) { + break; + } } - public boolean createUniqueAvatarAD(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarAnalysisPanel)) { - return false; - } + ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s+i); - int i; - for(i=0; i<1000; i++) { - if(!isAvatarADCreated(tp, s + " " + i)) { - break; - } - } + setPanelMode(); + return true; +} - ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s + " " + i); - setPanelMode(); - return true; - } - public boolean createAvatarAD(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarAnalysisPanel)) { - return false; - } - ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s); +public boolean createTMLCPDiagram(int index, String s) { + return createTMLCPDiagram((TURTLEPanel) (tabs.elementAt(index)), s); +} - setPanelMode(); - return true; +public boolean createTMLCPDiagram(TURTLEPanel tp, String s) { + if(isTMLCPCreated(tp, s)) { + return false; } - //Changed by Solange from public boolean... - public String createProActiveSMD(int index, String s) { - //Adde by Solange String name at the beginning - String name=createProActiveSMD((TURTLEPanel)(tabs.elementAt(index)), s); - return(name); //changed from return true + if (!(tp instanceof TMLCommunicationPatternPanel)) { + return false; } - //Return changed by Solange from boolean to String - public String createProActiveSMD(TURTLEPanel tp, String s) { + ((TMLCommunicationPatternPanel)tp).addCPDiagram(s); + setPanelMode(); + return true; +} - //Added by Solange. It fills the lists of components, interfaces, etc - TURTLEPanel tp2 = getCurrentTURTLEPanel(); - gtm.generateLists((ProactiveDesignPanel)tp2); - // +// End of TMLCP - if (!(tp instanceof ProactiveDesignPanel)) { - return null; //Changed by Solange from return false - } - s=((ProactiveDesignPanel)tp).addSMD(s); - //Added by Solange - // ProactiveSMDPanel temp=((ProactiveDesignPanel)tp).getSMDPanel(s); - //Added by Solange - //And removed by Emil +public SequenceDiagramPanel getSequenceDiagramPanel(int index, String s) { + //TraceManager.addDev("Searching for " + s); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getSequenceDiagramPanel(tp, s); +} - /* - LinkedList cmps=gtm.gpdtemp.getProCSDComponentsList(); - for (int i=0;i<cmps.size();i++) - { - ProCSDComponent c = (ProCSDComponent)cmps.get(i); - - if (c.getType()== TGComponentManager.PROCSD_COMPONENT) - { - if(c.getComponentID().equals(temp.getName())) - { - c.mySMD=temp; - i=cmps.size(); - } - } - } - */ - // - setPanelMode(); - return(s); //Changes by Solange from return true - } +public AttackTreeDiagramPanel getAttackTreeDiagramPanel(int index, String s) { + //TraceManager.addDev("Searching for " + s); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getAttackTreeDiagramPanel(tp, s); +} - public boolean createAvatarRD(int index, String s) { - return createAvatarRD((TURTLEPanel)(tabs.elementAt(index)), s); +public AttackTreeDiagramPanel getAttackTreeDiagramPanel(TURTLEPanel tp, String s) { + for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + if (tp.panelAt(i) instanceof AttackTreeDiagramPanel) + return (AttackTreeDiagramPanel)(tp.panelAt(i)); + } } + return null; +} - public boolean createAvatarRD(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarRequirementPanel)) { - return false; - } - ((AvatarRequirementPanel)tp).addAvatarRD(s); - setPanelMode(); - return true; - } +public TMLCPPanel getTMLCPDiagramPanel(int index, String s) { + //TraceManager.addDev("Searching for " + s); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getTMLCPDiagramPanel(tp, s); +} - public boolean createAvatarMAD(int index, String s) { - return createAvatarMAD((TURTLEPanel)(tabs.elementAt(index)), s); +public TMLCPPanel getTMLCPDiagramPanel(TURTLEPanel tp, String s) { + for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + if (tp.panelAt(i) instanceof TMLCPPanel) + return (TMLCPPanel)(tp.panelAt(i)); + } } + return null; +} - public boolean createAvatarMAD(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarMADsPanel)) { - return false; - } +public TMLSDPanel getTMLCPSDDiagramPanel(int index, String s) { + //TraceManager.addDev("Searching for " + s); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getTMLCPSDDiagramPanel(tp, s); +} - ((AvatarMADsPanel)tp).addAvatarMADPanel(s); - setPanelMode(); - return true; +public TMLSDPanel getTMLCPSDDiagramPanel(TURTLEPanel tp, String s) { + for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + if (tp.panelAt(i) instanceof TMLSDPanel) + return (TMLSDPanel)(tp.panelAt(i)); + } } + return null; +} - public boolean createAvatarPD(int index, String s) { - return createAvatarPD((TURTLEPanel)(tabs.elementAt(index)), s); - } +public InteractionOverviewDiagramPanel getIODiagramPanel(int index, String s) { + //TraceManager.addDev("Searching for " + s); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getIODiagramPanel(tp, s); +} - public boolean createAvatarPD(TURTLEPanel tp, String s) { - if (!(tp instanceof AvatarRequirementPanel)) { - return false; +public SequenceDiagramPanel getSequenceDiagramPanel(TURTLEPanel tp, String s) { + for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + if (tp.panelAt(i) instanceof SequenceDiagramPanel) + return (SequenceDiagramPanel)(tp.panelAt(i)); } - - ((AvatarRequirementPanel)tp).addAvatarPD(s); - setPanelMode(); - return true; - } - - public boolean createADDDiagram(int index, String s) { - return createADDDiagram((TURTLEPanel)(tabs.elementAt(index)), s); } + return null; +} - public boolean createADDDiagram(TURTLEPanel tp, String s) { - if (!(tp instanceof ADDPanel)) { - return false; +public InteractionOverviewDiagramPanel getIODiagramPanel(TURTLEPanel tp, String s) { + for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + if (tp.panelAt(i) instanceof InteractionOverviewDiagramPanel) + return (InteractionOverviewDiagramPanel)(tp.panelAt(i)); } + } + return null; +} - ((ADDPanel)tp).addDeploymentPanelDiagram(s); - setPanelMode(); - return true; +public UseCaseDiagramPanel getUseCaseDiagramPanel(int index, int indexTab, String s) { + //TraceManager.addDev("Searching for " + s + " at index =" + index); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getUseCaseDiagramPanel(tp, indexTab, s); +} + +public UseCaseDiagramPanel getUseCaseDiagramPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (UseCaseDiagramPanel)(tp.panelAt(indexTab)); } + return null; +} +public boolean createSequenceDiagram(int index, String s) { + return createSequenceDiagram((TURTLEPanel)(tabs.elementAt(index)), s); +} - public boolean isRequirementCreated(int index, String s) { - return isRequirementCreated(((TURTLEPanel)(tabs.elementAt(index))), s); +public boolean createSequenceDiagram(TURTLEPanel tp, String s) { + if(isSDCreated(tp, s)) { + return false; } - public boolean isRequirementCreated(TURTLEPanel tp, String s) { - int index = tp.tabbedPane.indexOfTab(s); - if (index == -1) { - return false; - } - return (tp.panelAt(index) instanceof RequirementDiagramPanel); + if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { + return false; } - public boolean createRequirementDiagram(int index, String s) { - return createRequirementDiagram((TURTLEPanel)(tabs.elementAt(index)), s); + if (tp instanceof AnalysisPanel) { + ((AnalysisPanel)tp).addSequenceDiagram(s); + } else if (tp instanceof AvatarAnalysisPanel) { + ((AvatarAnalysisPanel)tp).addSequenceDiagram(s); } + setPanelMode(); + return true; +} - public boolean createRequirementDiagram(TURTLEPanel tp, String s) { - if (!(tp instanceof RequirementPanel)) { - return false; - } - ((RequirementPanel)tp).addRequirementDiagram(s); - setPanelMode(); - return true; +public boolean createUniqueSequenceDiagram(TURTLEPanel tp, String s) { + int i; + for(i=0; i<1000; i++) { + if(!isSDCreated(tp, s+i)) { + break; + } } - public boolean createAttackTreeDiagram(int index, String s) { - return createAttackTreeDiagram((TURTLEPanel)(tabs.elementAt(index)), s); + if (tp instanceof AnalysisPanel) { + ((AnalysisPanel)tp).addSequenceDiagram(s+i); + } else if (tp instanceof AvatarAnalysisPanel) { + ((AvatarAnalysisPanel)tp).addSequenceDiagram(s+i); } - public boolean createAttackTreeDiagram(TURTLEPanel tp, String s) { - if (!(tp instanceof AttackTreePanel)) { - return false; - } + setPanelMode(); + return true; +} - ((AttackTreePanel)tp).addAttackTreeDiagram(s); - setPanelMode(); - return true; +public boolean createSequenceDiagramFromUCD(TURTLEPanel tp, String s, UseCaseDiagramPanel _ucdp) { + if (!createUniqueSequenceDiagram(tp, s)) { + return false; } - public boolean createEBRDD(int index, String s) { - return createEBRDD((TURTLEPanel)(tabs.elementAt(index)), s); + if (! ((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { + return false; } - public boolean createEBRDD(TURTLEPanel tp, String s) { - if (!(tp instanceof RequirementPanel)) { - return false; - } - - ((RequirementPanel)tp).addEBRDD(s); - setPanelMode(); - return true; + if (tp instanceof AnalysisPanel) { + ((AnalysisPanel)tp).addInstancesToLastSD(_ucdp); + } else if (tp instanceof AvatarAnalysisPanel) { + ((AvatarAnalysisPanel)tp).addInstancesToLastSD(_ucdp); } - public void generateOntologyForCurrentDiagram() { - TraceManager.addDev("Ontology for current diagram"); - try { - TURTLEPanel tp = getCurrentTURTLEPanel(); - String modeling = gtm.makeOneDiagramXMLFromGraphicalModel(tp, tp.tabbedPane.getSelectedIndex()); - TraceManager.addDev("Model made: " + modeling); - } catch (Exception e) { - } + return true; +} - } - public void generateOntologyForCurrentSetOfDiagrams() { - TraceManager.addDev("Ontology for current set of diagrams"); - try { - String modeling = gtm.makeXMLFromTurtleModeling(mainTabbedPane.getSelectedIndex()); - TraceManager.addDev("Model made: " + modeling); - } catch (Exception e) { - } - } +public boolean createIODiagram(int index, String s) { + return createIODiagram((TURTLEPanel)(tabs.elementAt(index)), s); +} - public void generateOntologyForAllDiagrams() { - TraceManager.addDev("Ontology for all diagrams"); - try { - String modeling = gtm.makeXMLFromTurtleModeling(-1); - TraceManager.addDev("Model made"); - } catch (Exception e) { - } +public boolean createIODiagram(TURTLEPanel tp, String s) { + if(isIODCreated(tp, s)) { + return false; + } + if (!(tp instanceof AnalysisPanel)) { + return false; } + ((AnalysisPanel)tp).addIODiagram(s); + setPanelMode(); + return true; +} +public boolean createUseCaseDiagram(int index, String s) { + return createUseCaseDiagram((TURTLEPanel) (tabs.elementAt(index)), s); +} - public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getAvatarRDPanel(tp, indexTab, s); +public boolean createUniqueUseCaseDiagram(TURTLEPanel tp, String s) { + if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { + return false; } - public AvatarRDPanel getAvatarRDPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (AvatarRDPanel)(tp.panelAt(indexTab)); + int i; + for(i=0; i<1000; i++) { + if(!isUseCaseDiagramCreated(tp, s + " " + i)) { + break; } - return null; } - public AvatarMADPanel getAvatarMADPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getAvatarMADPanel(tp, indexTab, s); + if (tp instanceof AnalysisPanel) { + ((AnalysisPanel)tp).addUseCaseDiagram(s + " " + i); + } else { + ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s + " " + i); } + setPanelMode(); + return true; +} - public AvatarMADPanel getAvatarMADPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (AvatarMADPanel)(tp.panelAt(indexTab)); - } - return null; +public boolean createUseCaseDiagram(TURTLEPanel tp, String s) { + if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) { + return false; } - public AvatarPDPanel getAvatarPDPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getAvatarPDPanel(tp, indexTab, s); - } - - public ADDDiagramPanel getAvatarADDPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getAvatarADDPanel(tp, indexTab, s); + if (tp instanceof AnalysisPanel) { + ((AnalysisPanel)tp).addUseCaseDiagram(s); + } else { + ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s); } + setPanelMode(); + return true; +} +public boolean createAvatarCD(int index, String s) { + return createAvatarCD((TURTLEPanel) (tabs.elementAt(index)), s); +} - public AvatarPDPanel getAvatarPDPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (AvatarPDPanel)(tp.panelAt(indexTab)); - } - return null; +public boolean createUniqueAvatarCD(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarAnalysisPanel)) { + return false; } - - public ADDDiagramPanel getAvatarADDPanel(TURTLEPanel tp, int indexTab, String s) { - TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab)); - - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (ADDDiagramPanel)(tp.panelAt(indexTab)); + + int i; + for(i=0; i<1000; i++) { + if(!isAvatarCDCreated(tp, s + " " + i)) { + break; } - return null; } - public AvatarCDPanel getAvatarCDPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getAvatarCDPanel(tp, indexTab, s); + ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s + " " + i); + + + setPanelMode(); + return true; +} + +public boolean createAvatarCD(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarAnalysisPanel)) { + return false; } - public AvatarCDPanel getAvatarCDPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (AvatarCDPanel)(tp.panelAt(indexTab)); - } - return null; + ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s); + + + setPanelMode(); + return true; +} + +public boolean createAvatarAD(int index, String s) { + return createAvatarAD((TURTLEPanel) (tabs.elementAt(index)), s); +} + +public boolean createUniqueAvatarAD(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarAnalysisPanel)) { + return false; } - public AvatarADPanel getAvatarADPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getAvatarADPanel(tp, indexTab, s); + int i; + for(i=0; i<1000; i++) { + if(!isAvatarADCreated(tp, s + " " + i)) { + break; + } } + ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s + " " + i); + setPanelMode(); + return true; +} - public AvatarADPanel getAvatarADPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (AvatarADPanel)(tp.panelAt(indexTab)); - } - return null; +public boolean createAvatarAD(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarAnalysisPanel)) { + return false; } - public RequirementDiagramPanel getRequirementDiagramPanel(int index, String s) { - //TraceManager.addDev("Searching for " + s); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getRequirementDiagramPanel(tp, s); + + ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s); + + setPanelMode(); + return true; +} + +//Changed by Solange from public boolean... +public String createProActiveSMD(int index, String s) { + //Adde by Solange String name at the beginning + String name=createProActiveSMD((TURTLEPanel)(tabs.elementAt(index)), s); + return(name); //changed from return true +} + +//Return changed by Solange from boolean to String +public String createProActiveSMD(TURTLEPanel tp, String s) { + + //Added by Solange. It fills the lists of components, interfaces, etc + TURTLEPanel tp2 = getCurrentTURTLEPanel(); + gtm.generateLists((ProactiveDesignPanel)tp2); + // + + if (!(tp instanceof ProactiveDesignPanel)) { + return null; //Changed by Solange from return false } - public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, String s) { - for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - if (tp.panelAt(i) instanceof RequirementDiagramPanel) - return (RequirementDiagramPanel)(tp.panelAt(i)); - } - } - return null; + s=((ProactiveDesignPanel)tp).addSMD(s); + //Added by Solange + // ProactiveSMDPanel temp=((ProactiveDesignPanel)tp).getSMDPanel(s); + //Added by Solange + //And removed by Emil + + /* + LinkedList cmps=gtm.gpdtemp.getProCSDComponentsList(); + for (int i=0;i<cmps.size();i++) + { + ProCSDComponent c = (ProCSDComponent)cmps.get(i); + + if (c.getType()== TGComponentManager.PROCSD_COMPONENT) + { + if(c.getComponentID().equals(temp.getName())) + { + c.mySMD=temp; + i=cmps.size(); + } + } + } + */ + // + setPanelMode(); + return(s); //Changes by Solange from return true +} + +public boolean createAvatarRD(int index, String s) { + return createAvatarRD((TURTLEPanel)(tabs.elementAt(index)), s); +} + +public boolean createAvatarRD(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarRequirementPanel)) { + return false; } - public RequirementDiagramPanel getRequirementDiagramPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getRequirementDiagramPanel(tp, indexTab, s); - } + ((AvatarRequirementPanel)tp).addAvatarRD(s); + setPanelMode(); + return true; +} +public boolean createAvatarMAD(int index, String s) { + return createAvatarMAD((TURTLEPanel)(tabs.elementAt(index)), s); +} - public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (RequirementDiagramPanel)(tp.panelAt(indexTab)); - } - return null; +public boolean createAvatarMAD(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarMADsPanel)) { + return false; } - public EBRDDPanel getEBRDDPanel(int index, String s) { - //TraceManager.addDev("Searching for " + s); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getEBRDDPanel(tp, s); - } + ((AvatarMADsPanel)tp).addAvatarMADPanel(s); + setPanelMode(); + return true; +} - public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, String s) { - for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { - if (tp.tabbedPane.getTitleAt(i).equals(s)) { - if (tp.panelAt(i) instanceof EBRDDPanel) - return (EBRDDPanel)(tp.panelAt(i)); - } - } - return null; - } +public boolean createAvatarPD(int index, String s) { + return createAvatarPD((TURTLEPanel)(tabs.elementAt(index)), s); +} - public EBRDDPanel getEBRDDPanel(int index, int indexTab, String s) { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - return getEBRDDPanel(tp, indexTab, s); +public boolean createAvatarPD(TURTLEPanel tp, String s) { + if (!(tp instanceof AvatarRequirementPanel)) { + return false; } + ((AvatarRequirementPanel)tp).addAvatarPD(s); + setPanelMode(); + return true; +} - public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, int indexTab, String s) { - if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { - return (EBRDDPanel)(tp.panelAt(indexTab)); - } - return null; +public boolean createADDDiagram(int index, String s) { + return createADDDiagram((TURTLEPanel)(tabs.elementAt(index)), s); +} + +public boolean createADDDiagram(TURTLEPanel tp, String s) { + if (!(tp instanceof ADDPanel)) { + return false; } + ((ADDPanel)tp).addDeploymentPanelDiagram(s); + setPanelMode(); + return true; +} - public void alignInstances() { - //TraceManager.addDev("Align instances"); - if (getCurrentTDiagramPanel() instanceof SequenceDiagramPanel) { - ((SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances(); - changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT); - getCurrentTDiagramPanel().repaint(); - } - if (getCurrentTDiagramPanel() instanceof TMLSDPanel) { - ((TMLSDPanel)(getCurrentTDiagramPanel())).alignInstances(); - changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT); - getCurrentTDiagramPanel().repaint(); - } - } +public boolean isRequirementCreated(int index, String s) { + return isRequirementCreated(((TURTLEPanel)(tabs.elementAt(index))), s); +} - public void alignPartitions() { - //TraceManager.addDev("Align instances"); - if (getCurrentTDiagramPanel() instanceof AvatarADPanel) { - ((AvatarADPanel)(getCurrentTDiagramPanel())).alignPartitions(); - changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT); - getCurrentTDiagramPanel().repaint(); - } +public boolean isRequirementCreated(TURTLEPanel tp, String s) { + int index = tp.tabbedPane.indexOfTab(s); + if (index == -1) { + return false; } + return (tp.panelAt(index) instanceof RequirementDiagramPanel); +} - public void enhanceDiagram() { - getCurrentTDiagramPanel().enhance(); - } +public boolean createRequirementDiagram(int index, String s) { + return createRequirementDiagram((TURTLEPanel)(tabs.elementAt(index)), s); +} - public JTabbedPane getCurrentJTabbedPane() { - return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tabbedPane; +public boolean createRequirementDiagram(TURTLEPanel tp, String s) { + if (!(tp instanceof RequirementPanel)) { + return false; } - public int getCurrentSelectedIndex() { - return mainTabbedPane.getSelectedIndex(); + ((RequirementPanel)tp).addRequirementDiagram(s); + setPanelMode(); + return true; +} + +public boolean createAttackTreeDiagram(int index, String s) { + return createAttackTreeDiagram((TURTLEPanel)(tabs.elementAt(index)), s); +} + +public boolean createAttackTreeDiagram(TURTLEPanel tp, String s) { + if (!(tp instanceof AttackTreePanel)) { + return false; } + ((AttackTreePanel)tp).addAttackTreeDiagram(s); + setPanelMode(); + return true; +} - public TDiagramPanel getCurrentTDiagramPanel() { - try { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex())); - return (TDiagramPanel)(tp.panels.elementAt(tp.tabbedPane.getSelectedIndex())); - } catch (Exception e) { - return null; - } +public boolean createEBRDD(int index, String s) { + return createEBRDD((TURTLEPanel)(tabs.elementAt(index)), s); +} + +public boolean createEBRDD(TURTLEPanel tp, String s) { + if (!(tp instanceof RequirementPanel)) { + return false; } - public TDiagramPanel getCurrentMainTDiagramPanel() { - return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp; + ((RequirementPanel)tp).addEBRDD(s); + setPanelMode(); + return true; +} + +public void generateOntologyForCurrentDiagram() { + TraceManager.addDev("Ontology for current diagram"); + try { + TURTLEPanel tp = getCurrentTURTLEPanel(); + String modeling = gtm.makeOneDiagramXMLFromGraphicalModel(tp, tp.tabbedPane.getSelectedIndex()); + TraceManager.addDev("Model made: " + modeling); + } catch (Exception e) { } - public TURTLEPanel getCurrentTURTLEPanel() { - if (tabs.size() == 0) { - return null; - } else { - return (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex())); - } +} + +public void generateOntologyForCurrentSetOfDiagrams() { + TraceManager.addDev("Ontology for current set of diagrams"); + try { + String modeling = gtm.makeXMLFromTurtleModeling(mainTabbedPane.getSelectedIndex()); + TraceManager.addDev("Model made: " + modeling); + } catch (Exception e) { } +} - public void reinitCountOfPanels() { - int i, j; - TURTLEPanel tp; - for(i = 0; i<mainTabbedPane.getTabCount(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - for(j=0; j<tp.tabbedPane.getTabCount(); j++) { - ((TDiagramPanel)(tp.panels.elementAt(j))).count = 0; - } - } +public void generateOntologyForAllDiagrams() { + TraceManager.addDev("Ontology for all diagrams"); + try { + String modeling = gtm.makeXMLFromTurtleModeling(-1); + TraceManager.addDev("Model made"); + } catch (Exception e) { } - public void setPanelMode() { - int index; - TURTLEPanel tp = getCurrentTURTLEPanel(); - index = tp.tabbedPane.getSelectedIndex(); +} - if (index < tp.panels.size() -1) { - setMode(FORWARD_DIAG); - } else { - setMode(NO_FORWARD_DIAG); - } - if (index > 0) { - setMode(BACKWARD_DIAG); - } else { - setMode(NO_BACKWARD_DIAG); - } - setMode(METHO_CHANGED); +public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getAvatarRDPanel(tp, indexTab, s); +} +public AvatarRDPanel getAvatarRDPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (AvatarRDPanel)(tp.panelAt(indexTab)); } + return null; +} - public void paneMADAction(ChangeEvent e) { - //TraceManager.addDev("Pane design action size=" + tabs.size()); - try { +public AvatarMADPanel getAvatarMADPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getAvatarMADPanel(tp, indexTab, s); +} - TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); - //TraceManager.addDev("Pane design action 1"); - if (activetdp != null) { - activetdp.activateActions(false); - unactivateDrawing(); - activetdp.stopAddingConnector(); - } - //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); - tdp1.activateActions(true); - activetdp = tdp1; +public AvatarMADPanel getAvatarMADPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (AvatarMADPanel)(tp.panelAt(indexTab)); + } + return null; +} - setEditMode(); - setPanelMode(); - //TraceManager.addDev("Pane design action 3"); +public AvatarPDPanel getAvatarPDPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getAvatarPDPanel(tp, indexTab, s); +} - // activate the drawing of the right pane - basicActivateDrawing(); +public ADDDiagramPanel getAvatarADDPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getAvatarADDPanel(tp, indexTab, s); +} - } catch (Exception ex) { - //TraceManager.addDev("Exception pane design action"); - } + +public AvatarPDPanel getAvatarPDPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (AvatarPDPanel)(tp.panelAt(indexTab)); } + return null; +} - public void paneDesignAction(ChangeEvent e) { - //TraceManager.addDev("Pane design action size=" + tabs.size()); - try { +public ADDDiagramPanel getAvatarADDPanel(TURTLEPanel tp, int indexTab, String s) { + TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab)); - TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); - //TraceManager.addDev("Pane design action 1"); - if (activetdp != null) { - activetdp.activateActions(false); - unactivateDrawing(); - activetdp.stopAddingConnector(); - } - //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); - tdp1.activateActions(true); - activetdp = tdp1; + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (ADDDiagramPanel)(tp.panelAt(indexTab)); + } + return null; +} - setEditMode(); - setPanelMode(); - //TraceManager.addDev("Pane design action 3"); +public AvatarCDPanel getAvatarCDPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getAvatarCDPanel(tp, indexTab, s); +} - // activate the drawing of the right pane - basicActivateDrawing(); - } catch (Exception ex) { - //TraceManager.addDev("Exception pane design action"); - } +public AvatarCDPanel getAvatarCDPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (AvatarCDPanel)(tp.panelAt(indexTab)); } + return null; +} - public void paneDiplodocusMethodologyAction(ChangeEvent e) { - //TraceManager.addDev("Pane design action size=" + tabs.size()); - try { - - TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); - //TraceManager.addDev("Pane design action 1"); - if (activetdp != null) { +public AvatarADPanel getAvatarADPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getAvatarADPanel(tp, indexTab, s); +} - activetdp.activateActions(false); - unactivateDrawing(); - activetdp.stopAddingConnector(); - } - //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); - tdp1.activateActions(true); - activetdp = tdp1; - setEditMode(); - setPanelMode(); - //TraceManager.addDev("Pane design action 3"); +public AvatarADPanel getAvatarADPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (AvatarADPanel)(tp.panelAt(indexTab)); + } + return null; +} - // activate the drawing of the right pane - basicActivateDrawing(); +public RequirementDiagramPanel getRequirementDiagramPanel(int index, String s) { + //TraceManager.addDev("Searching for " + s); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getRequirementDiagramPanel(tp, s); +} - } catch (Exception ex) { - //TraceManager.addDev("Exception pane design action"); +public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, String s) { + for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + if (tp.panelAt(i) instanceof RequirementDiagramPanel) + return (RequirementDiagramPanel)(tp.panelAt(i)); } } - - public void paneAvatarMethodologyAction(ChangeEvent e) { - //TraceManager.addDev("Pane design action size=" + tabs.size()); - try { + return null; +} - TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); - //TraceManager.addDev("Pane design action 1"); - if (activetdp != null) { +public RequirementDiagramPanel getRequirementDiagramPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getRequirementDiagramPanel(tp, indexTab, s); +} - activetdp.activateActions(false); - unactivateDrawing(); - activetdp.stopAddingConnector(); - } - //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); - tdp1.activateActions(true); - activetdp = tdp1; - setEditMode(); - setPanelMode(); - //TraceManager.addDev("Pane design action 3"); +public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (RequirementDiagramPanel)(tp.panelAt(indexTab)); + } + return null; +} - // activate the drawing of the right pane - basicActivateDrawing(); +public EBRDDPanel getEBRDDPanel(int index, String s) { + //TraceManager.addDev("Searching for " + s); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getEBRDDPanel(tp, s); +} - } catch (Exception ex) { - //TraceManager.addDev("Exception pane design action"); +public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, String s) { + for(int i=0; i<tp.tabbedPane.getTabCount(); i++) { + if (tp.tabbedPane.getTitleAt(i).equals(s)) { + if (tp.panelAt(i) instanceof EBRDDPanel) + return (EBRDDPanel)(tp.panelAt(i)); } } + return null; +} - public void paneAnalysisAction(ChangeEvent e) { - //TraceManager.addDev("Pane analysis action size=" + tabs.size()); - try { +public EBRDDPanel getEBRDDPanel(int index, int indexTab, String s) { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + return getEBRDDPanel(tp, indexTab, s); +} - TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); - //TraceManager.addDev("Pane analysis action 1 on " + tdp1.getName()); - if (activetdp != null) { - activetdp.activateActions(false); - unactivateDrawing(); - activetdp.stopAddingConnector(); - } - //TraceManager.addDev("Pane analysis action 2"); - tdp1.activateActions(true); - activetdp = tdp1; - setEditMode(); - setPanelMode(); - //TraceManager.addDev("Pane analysis action 3"); +public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, int indexTab, String s) { + if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) { + return (EBRDDPanel)(tp.panelAt(indexTab)); + } + return null; +} - // activate the drawing of the right pane - basicActivateDrawing(); - } catch (Exception ex) { - //TraceManager.addDev("Exception pane analysis action"); - } +public void alignInstances() { + //TraceManager.addDev("Align instances"); + if (getCurrentTDiagramPanel() instanceof SequenceDiagramPanel) { + ((SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances(); + changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT); + getCurrentTDiagramPanel().repaint(); } - public void paneDeployAction(ChangeEvent e) { - //TraceManager.addDev("Pane design action size=" + tabs.size()); - try { + if (getCurrentTDiagramPanel() instanceof TMLSDPanel) { + ((TMLSDPanel)(getCurrentTDiagramPanel())).alignInstances(); + changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT); + getCurrentTDiagramPanel().repaint(); + } +} - TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); - //TraceManager.addDev("Pane design action 1"); - if (activetdp != null) { - activetdp.activateActions(false); - unactivateDrawing(); - activetdp.stopAddingConnector(); - } - //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); - tdp1.activateActions(true); - activetdp = tdp1; +public void alignPartitions() { + //TraceManager.addDev("Align instances"); + if (getCurrentTDiagramPanel() instanceof AvatarADPanel) { + ((AvatarADPanel)(getCurrentTDiagramPanel())).alignPartitions(); + changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT); + getCurrentTDiagramPanel().repaint(); + } +} - setEditMode(); - setPanelMode(); - //TraceManager.addDev("Pane design action 3"); +public void enhanceDiagram() { + getCurrentTDiagramPanel().enhance(); +} - // activate the drawing of the right pane - basicActivateDrawing(); +public JTabbedPane getCurrentJTabbedPane() { + return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tabbedPane; +} - } catch (Exception ex) { - //TraceManager.addDev("Exception pane design action"); - } - } +public int getCurrentSelectedIndex() { + return mainTabbedPane.getSelectedIndex(); +} - public void paneRequirementAction(ChangeEvent e) { - try { - TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); - //TraceManager.addDev("Pane design action 1"); - if (activetdp != null) { - activetdp.activateActions(false); - unactivateDrawing(); - activetdp.stopAddingConnector(); - } - //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); - tdp1.activateActions(true); - activetdp = tdp1; +public TDiagramPanel getCurrentTDiagramPanel() { + try { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex())); + return (TDiagramPanel)(tp.panels.elementAt(tp.tabbedPane.getSelectedIndex())); + } catch (Exception e) { + return null; + } +} - setEditMode(); - setPanelMode(); +public TDiagramPanel getCurrentMainTDiagramPanel() { + return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp; +} + +public TURTLEPanel getCurrentTURTLEPanel() { + if (tabs.size() == 0) { + return null; + } else { + return (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex())); + } +} - // activate the drawing of the right pane - basicActivateDrawing(); - } catch (Exception ex) { - //TraceManager.addDev("Exception pane design action"); +public void reinitCountOfPanels() { + int i, j; + TURTLEPanel tp; + for(i = 0; i<mainTabbedPane.getTabCount(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + for(j=0; j<tp.tabbedPane.getTabCount(); j++) { + ((TDiagramPanel)(tp.panels.elementAt(j))).count = 0; } } +} - // nameTab : array of strings not to be removed - public void removeAnalysisDiagrams(String [] nameTab) { - int i, j; - String value; - boolean found; +public void setPanelMode() { + int index; + TURTLEPanel tp = getCurrentTURTLEPanel(); + index = tp.tabbedPane.getSelectedIndex(); - for(i=1; i<getCurrentJTabbedPane().getTabCount(); i++) { - value = getCurrentJTabbedPane().getTitleAt(i); - found = false; - for(j=0; j<nameTab.length; j++) { - if (nameTab[j] != null) { - if (nameTab[j].compareTo(value) ==0) { - found = true; - break; - } + if (index < tp.panels.size() -1) { + setMode(FORWARD_DIAG); + } else { + setMode(NO_FORWARD_DIAG); + } - } - } - if (!found) { - TraceManager.addDev("Removing" + getCurrentJTabbedPane().getTitleAt(i)); - getCurrentJTabbedPane().remove(i); - getCurrentTURTLEPanel().removeElementAt(i); - i--; - } - } + if (index > 0) { + setMode(BACKWARD_DIAG); + } else { + setMode(NO_BACKWARD_DIAG); } - public void renameTab(TDiagramPanel tdp) { - String value; - int index, index1; + setMode(METHO_CHANGED); - index = getCurrentJTabbedPane().getSelectedIndex(); - value = getCurrentJTabbedPane().getTitleAt(index); +} - //String s = (String)JOptionPane.showInputDialog(this, "Name of the diagram:", JOptionPane.QUESTION_MESSAGE); - String s = (String)JOptionPane.showInputDialog(frame, "Name of the diagram:", "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, value); +public void paneMADAction(ChangeEvent e) { + //TraceManager.addDev("Pane design action size=" + tabs.size()); + try { - if ((s != null) && (s.length() > 0)){ - // name already in use? - index1 = getCurrentJTabbedPane().indexOfTab(s); - /*if (methoMode == METHO_ANALYSIS) { - index1 = mainAnalysisTabbedPane.indexOfTab(s); + TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); + //TraceManager.addDev("Pane design action 1"); + if (activetdp != null) { + activetdp.activateActions(false); + unactivateDrawing(); + activetdp.stopAddingConnector(); + } + //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); + tdp1.activateActions(true); + activetdp = tdp1; - } else { - index1 = getCurrentJTabbedPane.indexOfTab(s); + setEditMode(); + setPanelMode(); + //TraceManager.addDev("Pane design action 3"); - }*/ - if (index1 > -1) { - JOptionPane.showMessageDialog(frame, "Name is already in use", "Error", JOptionPane.INFORMATION_MESSAGE); - } else { - /*if (methoMode == METHO_ANALYSIS) { - mainAnalysisTabbedPane.setTitleAt(index, s); - } else { - mainDesignTabbedPane.setTitleAt(index, s); - }*/ - if (isAValidTabName(s)) { - JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE); - } else { - getCurrentJTabbedPane().setTitleAt(index, s); - tdp.setName(s); - changeMade(tdp, TDiagramPanel.NEW_COMPONENT); - } - } - } + // activate the drawing of the right pane + basicActivateDrawing(); + + } catch (Exception ex) { + //TraceManager.addDev("Exception pane design action"); } +} - public void deleteTab(TDiagramPanel tdp) { - //TraceManager.addDev("Delete"); +public void paneDesignAction(ChangeEvent e) { + //TraceManager.addDev("Pane design action size=" + tabs.size()); + try { - // We know the selected tab -> remove this tab + TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); + //TraceManager.addDev("Pane design action 1"); + if (activetdp != null) { + activetdp.activateActions(false); + unactivateDrawing(); + activetdp.stopAddingConnector(); + } + //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); + tdp1.activateActions(true); + activetdp = tdp1; - int index; - JTabbedPane jtp = getCurrentJTabbedPane(); - index = jtp.getSelectedIndex(); - getCurrentTURTLEPanel().panels.removeElementAt(index); - jtp.remove(index); + setEditMode(); + setPanelMode(); + //TraceManager.addDev("Pane design action 3"); - // Signal the change - changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + // activate the drawing of the right pane + basicActivateDrawing(); + } catch (Exception ex) { + //TraceManager.addDev("Exception pane design action"); } +} - private void basicActivateDrawing() { - activetdp.setDraw(true); - if (activetdp.mode == TDiagramPanel.SELECTED_COMPONENTS) { - setMode(MainGUI.CUTCOPY_OK); - setMode(MainGUI.EXPORT_LIB_OK); - } else { - setMode(MainGUI.CUTCOPY_KO); - setMode(MainGUI.EXPORT_LIB_KO); +public void paneDiplodocusMethodologyAction(ChangeEvent e) { + //TraceManager.addDev("Pane design action size=" + tabs.size()); + try { + + TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); + //TraceManager.addDev("Pane design action 1"); + if (activetdp != null) { + + activetdp.activateActions(false); + unactivateDrawing(); + activetdp.stopAddingConnector(); } - } + //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); + tdp1.activateActions(true); + activetdp = tdp1; + + setEditMode(); + setPanelMode(); + //TraceManager.addDev("Pane design action 3"); - private void unactivateDrawing() { - activetdp.setDraw(false); + // activate the drawing of the right pane + basicActivateDrawing(); + + } catch (Exception ex) { + //TraceManager.addDev("Exception pane design action"); } +} - private void activateDrawing(TDiagramPanel tdp, JTabbedPane good, Vector goodV, JTabbedPane wrong, Vector wrongV) { - int i; - TDiagramPanel tdp2; +public void paneAvatarMethodologyAction(ChangeEvent e) { + //TraceManager.addDev("Pane design action size=" + tabs.size()); + try { - for(i=0; i<good.getTabCount(); i++) { - tdp2 = (TDiagramPanel)(goodV.elementAt(i)); - if (tdp2 == tdp) { - tdp2.setDraw(true); - if (tdp2.mode == TDiagramPanel.SELECTED_COMPONENTS) { - setMode(MainGUI.CUTCOPY_OK); - setMode(MainGUI.EXPORT_LIB_OK); - } else { - setMode(MainGUI.CUTCOPY_KO); - setMode(MainGUI.EXPORT_LIB_KO); - } - } else { - tdp2.setDraw(false); - } - } + TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); + //TraceManager.addDev("Pane design action 1"); + if (activetdp != null) { - for(i=0; i<wrong.getTabCount(); i++) { - tdp2 = (TDiagramPanel)(wrongV.elementAt(i)); - tdp2.setDraw(false); + activetdp.activateActions(false); + unactivateDrawing(); + activetdp.stopAddingConnector(); } - } + //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); + tdp1.activateActions(true); + activetdp = tdp1; - public void paneAction(ChangeEvent e) { - //TraceManager.addDev("Pane action"); - TDiagramPanel tdp1 = getCurrentTDiagramPanel(); - if (tdp1 != null) { - //TraceManager.addDev("Stop Adding connector in maingui"); - tdp1.stopAddingConnector(); - } + setEditMode(); + setPanelMode(); + //TraceManager.addDev("Pane design action 3"); - try { - if (getCurrentTURTLEPanel() instanceof DesignPanel) { - setMethodologicalMode(METHO_DESIGN); - paneDesignAction(e); - } else if (getCurrentTURTLEPanel() instanceof AnalysisPanel) { - setMethodologicalMode(METHO_ANALYSIS); - paneAnalysisAction(e); - } else { - setMethodologicalMode(METHO_DEPLOY); - paneDeployAction(e); - } + // activate the drawing of the right pane + basicActivateDrawing(); - if ((getCurrentTURTLEPanel() instanceof AvatarDesignPanel) || (getCurrentTURTLEPanel() instanceof AvatarRequirementPanel)) { - mainBar.showAvatarActions(true); - } else if ((getCurrentTURTLEPanel() instanceof TMLDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLComponentDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLArchiPanel)){ - mainBar.showDiplodocusActions(true); - } else { - mainBar.showAvatarActions(false); - } + } catch (Exception ex) { + //TraceManager.addDev("Exception pane design action"); + } +} - setMode(PANEL_CHANGED); +public void paneAnalysisAction(ChangeEvent e) { + //TraceManager.addDev("Pane analysis action size=" + tabs.size()); + try { - setEditMode(); - setPanelMode(); + TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); + //TraceManager.addDev("Pane analysis action 1 on " + tdp1.getName()); + if (activetdp != null) { + activetdp.activateActions(false); + unactivateDrawing(); + activetdp.stopAddingConnector(); + } + //TraceManager.addDev("Pane analysis action 2"); + tdp1.activateActions(true); + activetdp = tdp1; + setEditMode(); + setPanelMode(); + //TraceManager.addDev("Pane analysis action 3"); - } catch (Exception ex) { - //TraceManager.addDev("Exception pane action: " + ex.getMessage()); - } - } + // activate the drawing of the right pane + basicActivateDrawing(); - public JFrame getFrame() { - return frame; + } catch (Exception ex) { + //TraceManager.addDev("Exception pane analysis action"); } +} - public boolean newTClassName(TURTLEPanel tp, String old, String niou) { - JTabbedPane jtp = tp.tabbedPane; - for(int i = 0; i<jtp.getTabCount(); i++) { - if (jtp.getTitleAt(i).equals(niou)) { - return false; - } - } - //TraceManager.addDev("old " + old + " niou " + niou); - for(int i = 0; i<jtp.getTabCount(); i++) { - //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); - if (jtp.getTitleAt(i).equals(old)) { - jtp.setTitleAt(i, niou); - jtp.setToolTipTextAt(i, "Opens the activity diagram of " + niou); - TDiagramPanel tdp; - //change panel name - for(int j=0; j<tp.panels.size(); j++) { - tdp = (TDiagramPanel)(tp.panels.elementAt(j)); - if (tdp.getName().equals(old)) { - tdp.setName(niou); - } - } +public void paneDeployAction(ChangeEvent e) { + //TraceManager.addDev("Pane design action size=" + tabs.size()); + try { - return true; - } + TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); + //TraceManager.addDev("Pane design action 1"); + if (activetdp != null) { + activetdp.activateActions(false); + unactivateDrawing(); + activetdp.stopAddingConnector(); } - // internal error - ErrorGUI.exit(ErrorGUI.ERROR_TAB); - return false; - } + //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); + tdp1.activateActions(true); + activetdp = tdp1; - public boolean newTOSClassName(TURTLEPanel tp, String old, String niou) { - JTabbedPane jtp = tp.tabbedPane; - for(int i = 0; i<jtp.getTabCount(); i++) { - if (jtp.getTitleAt(i).equals(niou)) { - return false; - } - } - //TraceManager.addDev("old " + old + " niou " + niou); - for(int i = 0; i<jtp.getTabCount(); i++) { - //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); - if (jtp.getTitleAt(i).equals(old)) { - jtp.setTitleAt(i, niou); - jtp.setToolTipTextAt(i, "Opens the TURTLE-OS activity diagram of " + niou); - TDiagramPanel tdp; - //change panel name - for(int j=0; j<tp.panels.size(); j++) { - tdp = (TDiagramPanel)(tp.panels.elementAt(j)); - if (tdp.getName().equals(old)) { - tdp.setName(niou); - } - } + setEditMode(); + setPanelMode(); + //TraceManager.addDev("Pane design action 3"); - return true; - } - } - // internal error - ErrorGUI.exit(ErrorGUI.ERROR_TAB); - return false; + // activate the drawing of the right pane + basicActivateDrawing(); + + } catch (Exception ex) { + //TraceManager.addDev("Exception pane design action"); } +} - public boolean newTMLTaskName(TURTLEPanel tp, String old, String niou) { - //TraceManager.addDev("Panel=" + tp + " Old task name = " + old + " New task name=" + niou); - JTabbedPane jtp = tp.tabbedPane; - for(int i = 0; i<jtp.getTabCount(); i++) { - //TraceManager.addDev("jtp = " + jtp.getTitleAt(i)); - if (jtp.getTitleAt(i).equals(niou)) { - return false; - } - } - //TraceManager.addDev("old " + old + " niou " + niou); - for(int i = 0; i<jtp.getTabCount(); i++) { - //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); - //TraceManager.addDev("jtp = " + jtp.getTitleAt(i)); - if (jtp.getTitleAt(i).equals(old)) { - jtp.setTitleAt(i, niou); - jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou); - TDiagramPanel tdp; - //change panel name - for(int j=0; j<tp.panels.size(); j++) { - tdp = (TDiagramPanel)(tp.panels.elementAt(j)); - if (tdp.getName().equals(old)) { - tdp.setName(niou); - //TraceManager.addDev("Renamed to " + niou); - } - } +public void paneRequirementAction(ChangeEvent e) { + try { - return true; - } + TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex())); + //TraceManager.addDev("Pane design action 1"); + if (activetdp != null) { + activetdp.activateActions(false); + unactivateDrawing(); + activetdp.stopAddingConnector(); } - // internal error - ErrorGUI.exit(ErrorGUI.ERROR_TAB); - return false; - } + //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName()); + tdp1.activateActions(true); + activetdp = tdp1; - public boolean newAvatarBDBlockName(TURTLEPanel tp, String old, String niou) { - //TraceManager.addDev("Panel=" + tp + " Old task name = " + old + " New task name=" + niou); - JTabbedPane jtp = tp.tabbedPane; - int i; - for(i = 0; i<jtp.getTabCount(); i++) { - //TraceManager.addDev("jtp = " + jtp.getTitleAt(i)); - if (jtp.getTitleAt(i).equals(niou)) { - return false; - } - } - //TraceManager.addDev("old " + old + " niou " + niou); - //TraceManager.addDev("nb Of panels:"+ jtp.getTabCount()); - for(i = 0; i<jtp.getTabCount(); i++) { - //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); - //TraceManager.addDev("jtp = >" + jtp.getTitleAt(i) + "<"); - //TraceManager.addDev("old = >" + old + "<"); - if (jtp.getTitleAt(i).compareTo(old) == 0) { - jtp.setTitleAt(i, niou); - jtp.setToolTipTextAt(i, "Opens the state machine of " + niou); - TDiagramPanel tdp; - //change panel name - for(int j=0; j<tp.panels.size(); j++) { - tdp = (TDiagramPanel)(tp.panels.elementAt(j)); - if (tdp.getName().equals(old)) { - tdp.setName(niou); - //TraceManager.addDev("Renamed to " + niou); - } - } + setEditMode(); + setPanelMode(); - return true; - } - } - // internal error - ErrorGUI.exit(ErrorGUI.ERROR_TAB); - return false; - } + // activate the drawing of the right pane + basicActivateDrawing(); - public boolean nameComponentInUse(TURTLEPanel tp, String old, String niou) { - JTabbedPane jtp = tp.tabbedPane; - for(int i = 0; i<jtp.getTabCount(); i++) { - if (jtp.getTitleAt(i).equals(niou)) { - return true; - } - } - return false; + } catch (Exception ex) { + //TraceManager.addDev("Exception pane design action"); } +} - public boolean newTMLComponentTaskName(TURTLEPanel tp, String old, String niou) { - JTabbedPane jtp = tp.tabbedPane; - for(int i = 0; i<jtp.getTabCount(); i++) { - if (jtp.getTitleAt(i).equals(niou)) { - return false; - } - } - TraceManager.addDev("old " + old + " niou " + niou); - for(int i = 0; i<jtp.getTabCount(); i++) { - TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); - if (jtp.getTitleAt(i).equals(old)) { - jtp.setTitleAt(i, niou); - jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou); - TDiagramPanel tdp; - //change panel name - for(int j=0; j<tp.panels.size(); j++) { - tdp = (TDiagramPanel)(tp.panels.elementAt(j)); - if (tdp.getName().equals(old)) { - tdp.setName(niou); - } +// nameTab : array of strings not to be removed +public void removeAnalysisDiagrams(String [] nameTab) { + int i, j; + String value; + boolean found; + + for(i=1; i<getCurrentJTabbedPane().getTabCount(); i++) { + value = getCurrentJTabbedPane().getTitleAt(i); + found = false; + for(j=0; j<nameTab.length; j++) { + if (nameTab[j] != null) { + if (nameTab[j].compareTo(value) ==0) { + found = true; + break; } - return true; } } - // internal error - ErrorGUI.exit(ErrorGUI.ERROR_TAB); - return false; + if (!found) { + TraceManager.addDev("Removing" + getCurrentJTabbedPane().getTitleAt(i)); + getCurrentJTabbedPane().remove(i); + getCurrentTURTLEPanel().removeElementAt(i); + i--; + } } +} - public void cloneTab(int index) { - String s = gtm.makeXMLFromTurtleModeling(index); - try { - gtm.loadModelingFromXML(s); - changeMade(null, -1); - } catch (MalformedModelingException mme) { - JOptionPane.showMessageDialog(frame, "Modeling could not be loaded (unsupported file) ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); - frame.setTitle("TTool: unamed project"); - } +public void renameTab(TDiagramPanel tdp) { + String value; + int index, index1; - } + index = getCurrentJTabbedPane().getSelectedIndex(); + value = getCurrentJTabbedPane().getTitleAt(index); - public void requestRemoveTab(int index) { - if (index >= tabs.size()) { - return; - } + //String s = (String)JOptionPane.showInputDialog(this, "Name of the diagram:", JOptionPane.QUESTION_MESSAGE); + String s = (String)JOptionPane.showInputDialog(frame, "Name of the diagram:", "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, value); - tabs.removeElementAt(index); - mainTabbedPane.remove(index); - changeMade(null, -1); - } + if ((s != null) && (s.length() > 0)){ + // name already in use? + index1 = getCurrentJTabbedPane().indexOfTab(s); + /*if (methoMode == METHO_ANALYSIS) { + index1 = mainAnalysisTabbedPane.indexOfTab(s); - public void requestMoveRightTab(int index) { - //TraceManager.addDev("Move right"); - if (index > tabs.size()-2) { - return; - } - requestMoveTabFromTo(index, index + 1); - changeMade(null, -1); - } + } else { + index1 = getCurrentJTabbedPane.indexOfTab(s); - public void requestMoveLeftTab(int index) { - //TraceManager.addDev("Move left"); - if (index < 1) { - return; + }*/ + if (index1 > -1) { + JOptionPane.showMessageDialog(frame, "Name is already in use", "Error", JOptionPane.INFORMATION_MESSAGE); + } else { + /*if (methoMode == METHO_ANALYSIS) { + mainAnalysisTabbedPane.setTitleAt(index, s); + } else { + mainDesignTabbedPane.setTitleAt(index, s); + }*/ + if (isAValidTabName(s)) { + JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE); + } else { + getCurrentJTabbedPane().setTitleAt(index, s); + tdp.setName(s); + changeMade(tdp, TDiagramPanel.NEW_COMPONENT); + } } - requestMoveTabFromTo(index, index-1); - changeMade(null, -1); } +} - public void requestMoveTabFromTo(int src, int dst) { - - // Get all the properties - Component comp = mainTabbedPane.getComponentAt(src); - String label = mainTabbedPane.getTitleAt(src); - Icon icon = mainTabbedPane.getIconAt(src); - Icon iconDis = mainTabbedPane.getDisabledIconAt(src); - String tooltip = mainTabbedPane.getToolTipTextAt(src); - boolean enabled = mainTabbedPane.isEnabledAt(src); - int keycode = mainTabbedPane.getMnemonicAt(src); - int mnemonicLoc = mainTabbedPane.getDisplayedMnemonicIndexAt(src); - Color fg = mainTabbedPane.getForegroundAt(src); - Color bg = mainTabbedPane.getBackgroundAt(src); +public void deleteTab(TDiagramPanel tdp) { + //TraceManager.addDev("Delete"); - // Remove the tab - mainTabbedPane.remove(src); + // We know the selected tab -> remove this tab - // Add a new tab - mainTabbedPane.insertTab(label, icon, comp, tooltip, dst); + int index; + JTabbedPane jtp = getCurrentJTabbedPane(); + index = jtp.getSelectedIndex(); + getCurrentTURTLEPanel().panels.removeElementAt(index); + jtp.remove(index); - // Restore all properties - mainTabbedPane.setDisabledIconAt(dst, iconDis); - mainTabbedPane.setEnabledAt(dst, enabled); - mainTabbedPane.setMnemonicAt(dst, keycode); - mainTabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc); - mainTabbedPane.setForegroundAt(dst, fg); - mainTabbedPane.setBackgroundAt(dst, bg); + // Signal the change + changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - Object o = tabs.elementAt(src); - tabs.removeElementAt(src); - tabs.insertElementAt(o, dst); +} - mainTabbedPane.setSelectedIndex(dst); +private void basicActivateDrawing() { + activetdp.setDraw(true); + if (activetdp.mode == TDiagramPanel.SELECTED_COMPONENTS) { + setMode(MainGUI.CUTCOPY_OK); + setMode(MainGUI.EXPORT_LIB_OK); + } else { + setMode(MainGUI.CUTCOPY_KO); + setMode(MainGUI.EXPORT_LIB_KO); } +} +private void unactivateDrawing() { + activetdp.setDraw(false); +} +private void activateDrawing(TDiagramPanel tdp, JTabbedPane good, Vector goodV, JTabbedPane wrong, Vector wrongV) { + int i; + TDiagramPanel tdp2; - public void requestRenameTab(int index) { - String oldName = mainTabbedPane.getTitleAt(index); - String s = (String)JOptionPane.showInputDialog(frame, "Name: ", "Renaming a tab=", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, mainTabbedPane.getTitleAt(index)); - if ((s != null) && (s.length() > 0)){ - // name already in use? - if (s.compareTo(oldName) != 0) { - if (isAValidTabName(s)) { - mainTabbedPane.setTitleAt(index, s); - changeMade(getCurrentTDiagramPanel(), ((TURTLEPanel)(tabs.elementAt(index))).tdp.MOVE_COMPONENT); - - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) { - renameMapping(oldName, s); - } - } else { - JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE); - } - + for(i=0; i<good.getTabCount(); i++) { + tdp2 = (TDiagramPanel)(goodV.elementAt(i)); + if (tdp2 == tdp) { + tdp2.setDraw(true); + if (tdp2.mode == TDiagramPanel.SELECTED_COMPONENTS) { + setMode(MainGUI.CUTCOPY_OK); + setMode(MainGUI.EXPORT_LIB_OK); + } else { + setMode(MainGUI.CUTCOPY_KO); + setMode(MainGUI.EXPORT_LIB_KO); } + } else { + tdp2.setDraw(false); } - changeMade(null, -1); } - public void renameMapping(String oldName, String newName) { - TURTLEPanel tp; - - for(int i = 0; i<mainTabbedPane.getTabCount(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof TMLArchiPanel) { - ((TMLArchiPanel)tp).renameMapping(oldName, newName); - } - } + for(i=0; i<wrong.getTabCount(); i++) { + tdp2 = (TDiagramPanel)(wrongV.elementAt(i)); + tdp2.setDraw(false); + } +} +public void paneAction(ChangeEvent e) { + //TraceManager.addDev("Pane action"); + TDiagramPanel tdp1 = getCurrentTDiagramPanel(); + if (tdp1 != null) { + //TraceManager.addDev("Stop Adding connector in maingui"); + tdp1.stopAddingConnector(); } - - public void renameDeployment(String oldName, String newName) { - TURTLEPanel tp; - for(int i = 0; i<mainTabbedPane.getTabCount(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (tp instanceof ADDPanel) { - ((ADDPanel)tp).renameDeployment(oldName, newName); - } + try { + if (getCurrentTURTLEPanel() instanceof DesignPanel) { + setMethodologicalMode(METHO_DESIGN); + paneDesignAction(e); + } else if (getCurrentTURTLEPanel() instanceof AnalysisPanel) { + setMethodologicalMode(METHO_ANALYSIS); + paneAnalysisAction(e); + } else { + setMethodologicalMode(METHO_DEPLOY); + paneDeployAction(e); } - } + if ((getCurrentTURTLEPanel() instanceof AvatarDesignPanel) || (getCurrentTURTLEPanel() instanceof AvatarRequirementPanel) || (getCurrentTURTLEPanel() instanceof AttackTreePanel)) { + mainBar.showAvatarActions(true); + } else if ((getCurrentTURTLEPanel() instanceof TMLDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLComponentDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLArchiPanel)){ + mainBar.showDiplodocusActions(true); + } else { + mainBar.showAvatarActions(false); + } - public boolean selectTDiagramPanel(TDiagramPanel tdp) { - return (selectTab(getPoint(tdp)) == tdp); + setMode(PANEL_CHANGED); + + setEditMode(); + setPanelMode(); + + + } catch (Exception ex) { + //TraceManager.addDev("Exception pane action: " + ex.getMessage()); } +} - public boolean selectTab(TURTLEPanel tp, String s) { - int j; - int index1 = tabs.indexOf(tp); +public JFrame getFrame() { + return frame; +} - if (mainTabbedPane.getSelectedIndex() != index1) { - mainTabbedPane.setSelectedIndex(index1); +public boolean newTClassName(TURTLEPanel tp, String old, String niou) { + JTabbedPane jtp = tp.tabbedPane; + for(int i = 0; i<jtp.getTabCount(); i++) { + if (jtp.getTitleAt(i).equals(niou)) { + return false; } - - for(j=0; j<tp.tabbedPane.getTabCount(); j++) { - if (tp.tabbedPane.getTitleAt(j).equals(s)) { - tp.tabbedPane.setSelectedIndex(j); - return true; + } + //TraceManager.addDev("old " + old + " niou " + niou); + for(int i = 0; i<jtp.getTabCount(); i++) { + //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); + if (jtp.getTitleAt(i).equals(old)) { + jtp.setTitleAt(i, niou); + jtp.setToolTipTextAt(i, "Opens the activity diagram of " + niou); + TDiagramPanel tdp; + //change panel name + for(int j=0; j<tp.panels.size(); j++) { + tdp = (TDiagramPanel)(tp.panels.elementAt(j)); + if (tdp.getName().equals(old)) { + tdp.setName(niou); + } } + + return true; } + } + // internal error + ErrorGUI.exit(ErrorGUI.ERROR_TAB); + return false; +} - return false; +public boolean newTOSClassName(TURTLEPanel tp, String old, String niou) { + JTabbedPane jtp = tp.tabbedPane; + for(int i = 0; i<jtp.getTabCount(); i++) { + if (jtp.getTitleAt(i).equals(niou)) { + return false; + } } + //TraceManager.addDev("old " + old + " niou " + niou); + for(int i = 0; i<jtp.getTabCount(); i++) { + //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); + if (jtp.getTitleAt(i).equals(old)) { + jtp.setTitleAt(i, niou); + jtp.setToolTipTextAt(i, "Opens the TURTLE-OS activity diagram of " + niou); + TDiagramPanel tdp; + //change panel name + for(int j=0; j<tp.panels.size(); j++) { + tdp = (TDiagramPanel)(tp.panels.elementAt(j)); + if (tdp.getName().equals(old)) { + tdp.setName(niou); + } + } - public boolean selectTab(String s) { - return selectTab(getCurrentTURTLEPanel(), s); + return true; + } } + // internal error + ErrorGUI.exit(ErrorGUI.ERROR_TAB); + return false; +} - public void openTMLTaskActivityDiagram(String panel, String tab) { - int index = mainTabbedPane.indexOfTab(panel); - if (index != -1) { - mainTabbedPane.setSelectedIndex(index); +public boolean newTMLTaskName(TURTLEPanel tp, String old, String niou) { + //TraceManager.addDev("Panel=" + tp + " Old task name = " + old + " New task name=" + niou); + JTabbedPane jtp = tp.tabbedPane; + for(int i = 0; i<jtp.getTabCount(); i++) { + //TraceManager.addDev("jtp = " + jtp.getTitleAt(i)); + if (jtp.getTitleAt(i).equals(niou)) { + return false; } - openTMLTaskActivityDiagram(tab); } + //TraceManager.addDev("old " + old + " niou " + niou); + for(int i = 0; i<jtp.getTabCount(); i++) { + //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); + //TraceManager.addDev("jtp = " + jtp.getTitleAt(i)); + if (jtp.getTitleAt(i).equals(old)) { + jtp.setTitleAt(i, niou); + jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou); + TDiagramPanel tdp; + //change panel name + for(int j=0; j<tp.panels.size(); j++) { + tdp = (TDiagramPanel)(tp.panels.elementAt(j)); + if (tdp.getName().equals(old)) { + tdp.setName(niou); + //TraceManager.addDev("Renamed to " + niou); + } + } - public void openTMLTaskActivityDiagram(String tab) { - selectTab(getCurrentTURTLEPanel(), tab); + return true; + } } + // internal error + ErrorGUI.exit(ErrorGUI.ERROR_TAB); + return false; +} - public void refreshCurrentPanel() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); +public boolean newAvatarBDBlockName(TURTLEPanel tp, String old, String niou) { + //TraceManager.addDev("Panel=" + tp + " Old task name = " + old + " New task name=" + niou); + JTabbedPane jtp = tp.tabbedPane; + int i; + for(i = 0; i<jtp.getTabCount(); i++) { + //TraceManager.addDev("jtp = " + jtp.getTitleAt(i)); + if (jtp.getTitleAt(i).equals(niou)) { + return false; } } + //TraceManager.addDev("old " + old + " niou " + niou); + //TraceManager.addDev("nb Of panels:"+ jtp.getTabCount()); + for(i = 0; i<jtp.getTabCount(); i++) { + //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); + //TraceManager.addDev("jtp = >" + jtp.getTitleAt(i) + "<"); + //TraceManager.addDev("old = >" + old + "<"); + if (jtp.getTitleAt(i).compareTo(old) == 0) { + jtp.setTitleAt(i, niou); + jtp.setToolTipTextAt(i, "Opens the state machine of " + niou); + TDiagramPanel tdp; + //change panel name + for(int j=0; j<tp.panels.size(); j++) { + tdp = (TDiagramPanel)(tp.panels.elementAt(j)); + if (tdp.getName().equals(old)) { + tdp.setName(niou); + //TraceManager.addDev("Renamed to " + niou); + } + } - public void openAVATARSMD(String tab) { - TDiagramPanel cur = getCurrentTDiagramPanel(); - selectTab(getCurrentTURTLEPanel(), tab); - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp == cur) { - tdp.repaint(); + return true; } } + // internal error + ErrorGUI.exit(ErrorGUI.ERROR_TAB); + return false; +} - public boolean selectHighLevelTab(String s) { - TURTLEPanel tp = getTURTLEPanel(s); - if (s != null) { - selectTab(tp); +public boolean nameComponentInUse(TURTLEPanel tp, String old, String niou) { + JTabbedPane jtp = tp.tabbedPane; + for(int i = 0; i<jtp.getTabCount(); i++) { + if (jtp.getTitleAt(i).equals(niou)) { return true; } - return false; } + return false; +} - public TDiagramPanel selectTab(Point p) { - mainTabbedPane.setSelectedIndex(p.x); - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(p.x)); - tp.tabbedPane.setSelectedIndex(p.y); - return (TDiagramPanel)(tp.panels.elementAt(p.y)); - +public boolean newTMLComponentTaskName(TURTLEPanel tp, String old, String niou) { + JTabbedPane jtp = tp.tabbedPane; + for(int i = 0; i<jtp.getTabCount(); i++) { + if (jtp.getTitleAt(i).equals(niou)) { + return false; + } } + TraceManager.addDev("old " + old + " niou " + niou); + for(int i = 0; i<jtp.getTabCount(); i++) { + TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i)); + if (jtp.getTitleAt(i).equals(old)) { + jtp.setTitleAt(i, niou); + jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou); + TDiagramPanel tdp; + //change panel name + for(int j=0; j<tp.panels.size(); j++) { + tdp = (TDiagramPanel)(tp.panels.elementAt(j)); + if (tdp.getName().equals(old)) { + tdp.setName(niou); + } + } - public Point getCurrentSelectedPoint() { - Point p = new Point(); - - p.x = mainTabbedPane.getSelectedIndex(); - if (getCurrentTURTLEPanel() == null) { - p.y = -1; - } else { - p.y = getCurrentTURTLEPanel().tabbedPane.getSelectedIndex(); + return true; } + } + // internal error + ErrorGUI.exit(ErrorGUI.ERROR_TAB); + return false; +} - return p; +public void cloneTab(int index) { + String s = gtm.makeXMLFromTurtleModeling(index); + try { + gtm.loadModelingFromXML(s); + changeMade(null, -1); + } catch (MalformedModelingException mme) { + JOptionPane.showMessageDialog(frame, "Modeling could not be loaded (unsupported file) ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE); + frame.setTitle("TTool: unamed project"); } - public Point getPoint(TDiagramPanel tdp) { - Point p = new Point(); +} - int index; - TURTLEPanel tp; +public void requestRemoveTab(int index) { + if (index >= tabs.size()) { + return; + } - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - index = tp.panels.indexOf(tdp); - if (index > -1) { - p.x = i; - p.y = index; - return p; - } - } - p.x = 0; - p.y = 0; + tabs.removeElementAt(index); + mainTabbedPane.remove(index); + changeMade(null, -1); +} - return p; +public void requestMoveRightTab(int index) { + //TraceManager.addDev("Move right"); + if (index > tabs.size()-2) { + return; } + requestMoveTabFromTo(index, index + 1); + changeMade(null, -1); +} - public DesignPanel getDesignPanel(String name) { - int index = mainTabbedPane.indexOfTab(name); - try { - TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); - - if (tp instanceof DesignPanel) { - return (DesignPanel)tp; +public void requestMoveLeftTab(int index) { + //TraceManager.addDev("Move left"); + if (index < 1) { + return; + } + requestMoveTabFromTo(index, index-1); + changeMade(null, -1); +} + +public void requestMoveTabFromTo(int src, int dst) { + + // Get all the properties + Component comp = mainTabbedPane.getComponentAt(src); + String label = mainTabbedPane.getTitleAt(src); + Icon icon = mainTabbedPane.getIconAt(src); + Icon iconDis = mainTabbedPane.getDisabledIconAt(src); + String tooltip = mainTabbedPane.getToolTipTextAt(src); + boolean enabled = mainTabbedPane.isEnabledAt(src); + int keycode = mainTabbedPane.getMnemonicAt(src); + int mnemonicLoc = mainTabbedPane.getDisplayedMnemonicIndexAt(src); + Color fg = mainTabbedPane.getForegroundAt(src); + Color bg = mainTabbedPane.getBackgroundAt(src); + + // Remove the tab + mainTabbedPane.remove(src); + + // Add a new tab + mainTabbedPane.insertTab(label, icon, comp, tooltip, dst); + + // Restore all properties + mainTabbedPane.setDisabledIconAt(dst, iconDis); + mainTabbedPane.setEnabledAt(dst, enabled); + mainTabbedPane.setMnemonicAt(dst, keycode); + mainTabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc); + mainTabbedPane.setForegroundAt(dst, fg); + mainTabbedPane.setBackgroundAt(dst, bg); + + Object o = tabs.elementAt(src); + tabs.removeElementAt(src); + tabs.insertElementAt(o, dst); + + mainTabbedPane.setSelectedIndex(dst); +} + + + +public void requestRenameTab(int index) { + String oldName = mainTabbedPane.getTitleAt(index); + String s = (String)JOptionPane.showInputDialog(frame, "Name: ", "Renaming a tab=", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, mainTabbedPane.getTitleAt(index)); + if ((s != null) && (s.length() > 0)){ + // name already in use? + if (s.compareTo(oldName) != 0) { + if (isAValidTabName(s)) { + mainTabbedPane.setTitleAt(index, s); + changeMade(getCurrentTDiagramPanel(), ((TURTLEPanel)(tabs.elementAt(index))).tdp.MOVE_COMPONENT); + + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) { + renameMapping(oldName, s); + } } else { - return null; + JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE); } - } catch (Exception e) { - return null; + } } + changeMade(null, -1); +} - public boolean selectMainTab(String id) { - TURTLEPanel tp; +public void renameMapping(String oldName, String newName) { + TURTLEPanel tp; - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - if (getTabName(tp).compareTo(id) == 0) { - selectTab(tp); - return true; - } + for(int i = 0; i<mainTabbedPane.getTabCount(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof TMLArchiPanel) { + ((TMLArchiPanel)tp).renameMapping(oldName, newName); } - - return false; } - public void selectTab(TURTLEPanel tp) { - int index1 = tabs.indexOf(tp); - mainTabbedPane.setSelectedIndex(index1); - } +} - public void selectTab(TDiagramPanel tdp) { - int index; - TURTLEPanel tp; +public void renameDeployment(String oldName, String newName) { + TURTLEPanel tp; - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - index = tp.panels.indexOf(tdp); - if (index > -1) { - selectTab(tp); - tp.tabbedPane.setSelectedIndex(index); - } + for(int i = 0; i<mainTabbedPane.getTabCount(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (tp instanceof ADDPanel) { + ((ADDPanel)tp).renameDeployment(oldName, newName); } } - public void toggleAttributes() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){ - //TraceManager.addDev("Toggle attributes"); - TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp; - tdcp.setAttributesVisible(!tdcp.areAttributesVisible()); - tdcp.checkAllMySize(); - tdcp.repaint(); - changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +} + +public boolean selectTDiagramPanel(TDiagramPanel tdp) { + return (selectTab(getPoint(tdp)) == tdp); +} + +public boolean selectTab(TURTLEPanel tp, String s) { + int j; + int index1 = tabs.indexOf(tp); + + if (mainTabbedPane.getSelectedIndex() != index1) { + mainTabbedPane.setSelectedIndex(index1); } - // AVATAR Simulation - public void setAVATARIDs(boolean b) { - TDiagramPanel.AVATAR_ID_ON = b; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); + for(j=0; j<tp.tabbedPane.getTabCount(); j++) { + if (tp.tabbedPane.getTitleAt(j).equals(s)) { + tp.tabbedPane.setSelectedIndex(j); + return true; } } - public void toggleAVATARIDs() { - setAVATARIDs(!TDiagramPanel.AVATAR_ID_ON); - TraceManager.addDev("AVATAR id: " + TDiagramPanel.AVATAR_ID_ON); - } + return false; +} - // For simulation purpose - public void resetAllDIPLOIDs() { - TURTLEPanel tp; +public boolean selectTab(String s) { + return selectTab(getCurrentTURTLEPanel(), s); +} - for(int i=0; i<tabs.size(); i++) { - tp = (TURTLEPanel)(tabs.elementAt(i)); - tp.resetAllDIPLOIDs(); - } +public void openTMLTaskActivityDiagram(String panel, String tab) { + int index = mainTabbedPane.indexOfTab(panel); + if (index != -1) { + mainTabbedPane.setSelectedIndex(index); } + openTMLTaskActivityDiagram(tab); +} - public void toggleDiploIDs() { - setDiploIDs(!TDiagramPanel.DIPLO_ID_ON); - } +public void openTMLTaskActivityDiagram(String tab) { + selectTab(getCurrentTURTLEPanel(), tab); +} - public void toggleTEPEIDs() { - setTEPEIDs(!TDiagramPanel.TEPE_ID_ON); +public void refreshCurrentPanel() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } +} - public void toggleDiploAnimate() { - setDiploAnimate(!TDiagramPanel.DIPLO_ANIMATE_ON); +public void openAVATARSMD(String tab) { + TDiagramPanel cur = getCurrentTDiagramPanel(); + selectTab(getCurrentTURTLEPanel(), tab); + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp == cur) { + tdp.repaint(); } +} - public int isRunningAvatarComponent(TGComponent _tgc) { - if(jfais.isVisible()) { - if (jfais.isRunningComponent(_tgc)) { - return 1; - } - if (jfais.isSelectedComponentFromTransaction(_tgc)) { - return 2; - } - } - return 0; +public boolean selectHighLevelTab(String s) { + TURTLEPanel tp = getTURTLEPanel(s); + if (s != null) { + selectTab(tp); + return true; } + return false; +} - public String[] hasMessageInformationForAvatarConnector(AvatarBDPortConnector _conn) { - if(jfais.isVisible()) { - return jfais.getFirstMessagesOnEachConnectorSide(_conn); - } - return null; - } +public TDiagramPanel selectTab(Point p) { + mainTabbedPane.setSelectedIndex(p.x); + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(p.x)); + tp.tabbedPane.setSelectedIndex(p.y); + return (TDiagramPanel)(tp.panels.elementAt(p.y)); - public void setDiploAnimate(boolean b) { - TDiagramPanel.DIPLO_ANIMATE_ON = b; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } - } +} - public void setAvatarAnimate(boolean b) { - TDiagramPanel.AVATAR_ANIMATE_ON = b; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } - } +public Point getCurrentSelectedPoint() { + Point p = new Point(); - public void setDiploIDs(boolean b) { - TDiagramPanel.DIPLO_ID_ON = b; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } + p.x = mainTabbedPane.getSelectedIndex(); + if (getCurrentTURTLEPanel() == null) { + p.y = -1; + } else { + p.y = getCurrentTURTLEPanel().tabbedPane.getSelectedIndex(); } - public void setTEPEIDs(boolean b) { - TDiagramPanel.TEPE_ID_ON = b; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } - } + return p; +} - public void setTransationProgression(boolean b) { - TDiagramPanel.DIPLO_TRANSACTION_PROGRESSION_ON = b; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } - } +public Point getPoint(TDiagramPanel tdp) { + Point p = new Point(); - public synchronized RunningInfo isRunningID(int id) { - if (runningIDs == null) { - return null; - } + int index; + TURTLEPanel tp; - for(RunningInfo ri: runningIDs) { - if (ri.id == id) { - return ri; - } + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + index = tp.panels.indexOf(tdp); + if (index > -1) { + p.x = i; + p.y = index; + return p; } - - return null; } + p.x = 0; + p.y = 0; - public synchronized LoadInfo isLoadID(int id) { - if (loadIDs == null) { - return null; - } + return p; +} - for(LoadInfo li: loadIDs) { - if (li.id == id) { - return li; - } - } +public DesignPanel getDesignPanel(String name) { + int index = mainTabbedPane.indexOfTab(name); + try { + TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index)); + if (tp instanceof DesignPanel) { + return (DesignPanel)tp; + } else { + return null; + } + } catch (Exception e) { return null; } +} - public synchronized void resetRunningID() { - if (runningIDs != null) { - runningIDs.clear(); - } - runningIDs = null; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } - } +public boolean selectMainTab(String id) { + TURTLEPanel tp; - public synchronized void resetLoadID() { - if (loadIDs != null) { - loadIDs.clear(); - } - loadIDs = null; - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + if (getTabName(tp).compareTo(id) == 0) { + selectTab(tp); + return true; } } - public synchronized void addRunningIDTaskState(int _id, String _state) { - if (runningIDs == null) { - return; - } + return false; +} - if (_state == null) { - _state = "unknown"; - } +public void selectTab(TURTLEPanel tp) { + int index1 = tabs.indexOf(tp); + mainTabbedPane.setSelectedIndex(index1); +} - for(RunningInfo ri: runningIDs) { - if (ri.id == _id) { - ri.state = _state.toLowerCase(); - //TraceManager.addDev("Updated state on UML diagram"); - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } - return; - } +public void selectTab(TDiagramPanel tdp) { + int index; + TURTLEPanel tp; + + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + index = tp.panels.indexOf(tdp); + if (index > -1) { + selectTab(tp); + tp.tabbedPane.setSelectedIndex(index); } + } +} +public void toggleAttributes() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){ + //TraceManager.addDev("Toggle attributes"); + TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp; + tdcp.setAttributesVisible(!tdcp.areAttributesVisible()); + tdcp.checkAllMySize(); + tdcp.repaint(); + changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT); } +} - public synchronized void addRunningID(int _id, int _nextCommand, String _progression, String _startTime, String _finishTime, String _transStartTime, String _transFinishTime, String _state) { - if (runningIDs == null) { - runningIDs = new ArrayList<RunningInfo>(); - } - RunningInfo ri = new RunningInfo(); - if (_state == null) { - _state = "unknown"; - } - ri.id = _id; - ri.nextCommand = _nextCommand; - ri.progression = _progression; - ri.startTime = _startTime; - ri.finishTime = _finishTime; - ri.transStartTime = _transStartTime; - ri.transFinishTime = _transFinishTime; - ri.state = _state.toLowerCase(); - runningIDs.add(ri); - //TraceManager.addDev("Running id " + id + " added"); - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } +// AVATAR Simulation +public void setAVATARIDs(boolean b) { + TDiagramPanel.AVATAR_ID_ON = b; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } +} - public synchronized void addLoadInfo(int _id, double _load, long _energy) { - if (loadIDs == null) { - loadIDs = new ArrayList<LoadInfo>(); - } +public void toggleAVATARIDs() { + setAVATARIDs(!TDiagramPanel.AVATAR_ID_ON); + TraceManager.addDev("AVATAR id: " + TDiagramPanel.AVATAR_ID_ON); +} - removeLoadId(_id); - LoadInfo li = new LoadInfo(); - li.id = _id; - li.load = _load; - li.energy = _energy; - loadIDs.add(li); - //TraceManager.addDev("Running id " + _id + " added load=" + _load); - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.repaint(); - } +// For simulation purpose +public void resetAllDIPLOIDs() { + TURTLEPanel tp; + + for(int i=0; i<tabs.size(); i++) { + tp = (TURTLEPanel)(tabs.elementAt(i)); + tp.resetAllDIPLOIDs(); } +} - public synchronized void removeRunningId(Integer id) { - if (runningIDs == null) { - return ; - } +public void toggleDiploIDs() { + setDiploIDs(!TDiagramPanel.DIPLO_ID_ON); +} - for(RunningInfo ri: runningIDs) { - if (ri.id == id.intValue()) { - runningIDs.remove(ri); - //TraceManager.addDev("Running id " + i + " removed"); - return; - } - } - getCurrentTDiagramPanel().repaint(); - } +public void toggleTEPEIDs() { + setTEPEIDs(!TDiagramPanel.TEPE_ID_ON); +} - public synchronized void removeLoadId(int _id) { - if (loadIDs == null) { - return ; - } +public void toggleDiploAnimate() { + setDiploAnimate(!TDiagramPanel.DIPLO_ANIMATE_ON); +} - for(LoadInfo li: loadIDs) { - if (li.id == _id) { - loadIDs.remove(li); - //TraceManager.addDev("Running id " + i + " removed"); - return; - } +public int isRunningAvatarComponent(TGComponent _tgc) { + if(jfais.isVisible()) { + if (jfais.isRunningComponent(_tgc)) { + return 1; + } + if (jfais.isSelectedComponentFromTransaction(_tgc)) { + return 2; } - getCurrentTDiagramPanel().repaint(); } + return 0; +} - public void toggleGates() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){ - //TraceManager.addDev("Toggle gates"); - TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp; - tdcp.setGatesVisible(!tdcp.areGatesVisible()); - tdcp.checkAllMySize(); - tdcp.repaint(); - changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +public String[] hasMessageInformationForAvatarConnector(AvatarBDPortConnector _conn) { + if(jfais.isVisible()) { + return jfais.getFirstMessagesOnEachConnectorSide(_conn); } + return null; +} - public void toggleSynchro() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){ - //TraceManager.addDev("Toggle synchro"); - TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp; - tdcp.setSynchroVisible(!tdcp.areSynchroVisible()); - tdcp.checkAllMySize(); - tdcp.repaint(); - changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +public void setDiploAnimate(boolean b) { + TDiagramPanel.DIPLO_ANIMATE_ON = b; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } +} - public void toggleJava() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if ((tdp != null) && (tdp instanceof TActivityDiagramPanel)){ - //TraceManager.addDev("Toggle synchro"); - TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp; - tadp.setJavaVisible(!tadp.isJavaVisible()); - tadp.checkAllMySize(); - tadp.repaint(); - changeMade(tadp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +public void setAvatarAnimate(boolean b) { + TDiagramPanel.AVATAR_ANIMATE_ON = b; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } +} - public void toggleInternalComment() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null) { - tdp.setInternalCommentVisible((tdp.getInternalCommentVisible() + 1) % 3); - tdp.checkAllMySize(); - tdp.repaint(); - changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +public void setDiploIDs(boolean b) { + TDiagramPanel.DIPLO_ID_ON = b; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } +} - public void toggleAttr() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if (tdp != null){ - //TraceManager.addDev("Toggle attributes"); - tdp.setAttributes((tdp.getAttributeState() + 1) % 3); - tdp.checkAllMySize(); - tdp.repaint(); - changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +public void setTEPEIDs(boolean b) { + TDiagramPanel.TEPE_ID_ON = b; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } +} - public void toggleChannels() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){ - //TraceManager.addDev("Toggle attributes"); - TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; - tmltdp.setChannelsVisible(!tmltdp.areChannelsVisible()); - tmltdp.checkAllMySize(); - tmltdp.repaint(); - changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +public void setTransationProgression(boolean b) { + TDiagramPanel.DIPLO_TRANSACTION_PROGRESSION_ON = b; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } +} - public void toggleEvents() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){ - //TraceManager.addDev("Toggle attributes"); - TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; - tmltdp.setEventsVisible(!tmltdp.areEventsVisible()); - tmltdp.checkAllMySize(); - tmltdp.repaint(); - changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); - } +public synchronized RunningInfo isRunningID(int id) { + if (runningIDs == null) { + return null; } - public void toggleRequests() { - TDiagramPanel tdp = getCurrentTDiagramPanel(); - if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){ - //TraceManager.addDev("Toggle attributes"); - TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; - tmltdp.setRequestsVisible(!tmltdp.areRequestsVisible()); - tmltdp.checkAllMySize(); - tmltdp.repaint(); - changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + for(RunningInfo ri: runningIDs) { + if (ri.id == id) { + return ri; } } - public boolean isAValidTabName(String name) { - return name.matches("((\\w)*(\\s)*)*"); + return null; + } + +public synchronized LoadInfo isLoadID(int id) { + if (loadIDs == null) { + return null; } + for(LoadInfo li: loadIDs) { + if (li.id == id) { + return li; + } + } + return null; + } - public void windowClosing(WindowEvent e) { - //frame.setVisible(false); - quitApplication(); +public synchronized void resetRunningID() { + if (runningIDs != null) { + runningIDs.clear(); } - - public void windowClosed(WindowEvent e) { + runningIDs = null; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } + } - public void windowOpened(WindowEvent e) { +public synchronized void resetLoadID() { + if (loadIDs != null) { + loadIDs.clear(); } - - public void windowIconified(WindowEvent e) { + loadIDs = null; + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } + } - public void windowDeiconified(WindowEvent e) { +public synchronized void addRunningIDTaskState(int _id, String _state) { + if (runningIDs == null) { + return; } - public void windowActivated(WindowEvent e) { + if (_state == null) { + _state = "unknown"; } - public void windowDeactivated(WindowEvent e) { + for(RunningInfo ri: runningIDs) { + if (ri.id == _id) { + ri.state = _state.toLowerCase(); + //TraceManager.addDev("Updated state on UML diagram"); + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); + } + return; + } } + } - // TGUIACtions Event listener - - public void keyTyped(KeyEvent e) { - TraceManager.addDev("KEY TYPED"); +public synchronized void addRunningID(int _id, int _nextCommand, String _progression, String _startTime, String _finishTime, String _transStartTime, String _transFinishTime, String _state) { + if (runningIDs == null) { + runningIDs = new ArrayList<RunningInfo>(); + } + RunningInfo ri = new RunningInfo(); + if (_state == null) { + _state = "unknown"; } + ri.id = _id; + ri.nextCommand = _nextCommand; + ri.progression = _progression; + ri.startTime = _startTime; + ri.finishTime = _finishTime; + ri.transStartTime = _transStartTime; + ri.transFinishTime = _transFinishTime; + ri.state = _state.toLowerCase(); + runningIDs.add(ri); + //TraceManager.addDev("Running id " + id + " added"); + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); + } + } - public void keyPressed(KeyEvent e) { - TraceManager.addDev("KEY PRESSED: "); +public synchronized void addLoadInfo(int _id, double _load, long _energy) { + if (loadIDs == null) { + loadIDs = new ArrayList<LoadInfo>(); } - public void keyReleased(KeyEvent e) { - TraceManager.addDev("KEY RELEASED: "); + removeLoadId(_id); + LoadInfo li = new LoadInfo(); + li.id = _id; + li.load = _load; + li.energy = _energy; + loadIDs.add(li); + //TraceManager.addDev("Running id " + _id + " added load=" + _load); + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.repaint(); } + } - public void actionPerformed(ActionEvent evt) { - String command = evt.getActionCommand(); - //TraceManager.addDev("Command:" + command); - TDiagramPanel tdp1 = getCurrentTDiagramPanel(); - if (tdp1 != null) { - //TraceManager.addDev("Stop Adding connector in maingui"); - tdp1.stopAddingConnector(); - } - - - // Compare the action command to the known actions. - if (command.equals(actions[TGUIAction.ACT_NEW].getActionCommand())) { - newProject(); - } else if (command.equals(actions[TGUIAction.ACT_NEW_DESIGN].getActionCommand())) { - newDesign(); - } else if (command.equals(actions[TGUIAction.ACT_NEW_ANALYSIS].getActionCommand())) { - newAnalysis(); - } else if (command.equals(actions[TGUIAction.ACT_OPEN].getActionCommand())) { - openProject(); - } else if (command.equals(actions[TGUIAction.ACT_MERGE].getActionCommand())) { - mergeProject(); - } else if (command.equals(actions[TGUIAction.ACT_OPEN_LAST].getActionCommand())) { - openLastProject(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE].getActionCommand())) { - saveProject(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_AS].getActionCommand())) { - saveAsProject(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_TIF].getActionCommand())) { - saveTIF(); - } else if (command.equals(actions[TGUIAction.ACT_OPEN_TIF].getActionCommand())) { - openTIF(); - } else if (command.equals(actions[TGUIAction.ACT_OPEN_SD].getActionCommand())) { - openSD(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_LOTOS].getActionCommand())) { - saveLastLotos(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_DTA].getActionCommand())) { - saveLastDTA(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_RG].getActionCommand())) { - saveLastRG(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_TLSA].getActionCommand())) { - saveLastTLSA(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUT].getActionCommand())) { - saveLastRGAUT(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTPROJ].getActionCommand())) { - saveLastRGAUTProj(); - } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTMODIFIED].getActionCommand())) { - saveLastModifiedRG(); - } else if (command.equals(actions[TGUIAction.ACT_EXPORT_LIB].getActionCommand())) { - exportLibrary(); - } else if (command.equals(actions[TGUIAction.ACT_IMPORT_LIB].getActionCommand())) { - importLibrary(); - } else if (command.equals(actions[TGUIAction.ACT_QUIT].getActionCommand())) { - quitApplication(); - } else if (command.equals(actions[TGUIAction.ACT_CUT].getActionCommand())) { - cut(); - } else if (command.equals(actions[TGUIAction.ACT_COPY].getActionCommand())) { - copy(); - } else if (command.equals(actions[TGUIAction.ACT_PASTE].getActionCommand())) { - paste(); - } else if (command.equals(actions[TGUIAction.ACT_DELETE].getActionCommand())) { - delete(); - } else if (command.equals(actions[TGUIAction.ACT_ZOOM_MORE].getActionCommand())) { - zoomMore(); - } else if (command.equals(actions[TGUIAction.ACT_ZOOM_LESS].getActionCommand())) { - zoomLess(); - } else if (command.equals(actions[TGUIAction.ACT_BACKWARD].getActionCommand())) { - backward(); - } else if (command.equals(actions[TGUIAction.ACT_FORWARD].getActionCommand())) { - forward(); - } else if (command.equals(actions[TGUIAction.ACT_FIRST_DIAG].getActionCommand())) { - firstDiag(); - } else if (command.equals(actions[TGUIAction.ACT_BACK_DIAG].getActionCommand())) { - backDiag(); - } else if (command.equals(actions[TGUIAction.ACT_NEXT_DIAG].getActionCommand())) { - nextDiag(); - } else if (command.equals(actions[TGUIAction.ACT_LAST_DIAG].getActionCommand())) { - lastDiag(); - } else if (command.equals(actions[TGUIAction.ACT_ABOUT].getActionCommand())) { - aboutVersion(); - } - //@author: Huy TRUONG. - //open a external search box for ACT_EXTERNAL_SEARCH - else if (command.equals(actions[TGUIAction.ACT_EXTERNAL_SEARCH].getActionCommand())) { - showExternalSearch();} - else if (command.equals(actions[TGUIAction.ACT_INTERNAL_SEARCH].getActionCommand())) { - doInternalSearch(); - //-- +public synchronized void removeRunningId(Integer id) { + if (runningIDs == null) { + return ; + } - } else if (command.equals(actions[TGUIAction.ACT_TTOOL_CONFIGURATION].getActionCommand())) { - showTToolConfiguration(); - } else if (command.equals(actions[TGUIAction.ACT_TURTLE_WEBSITE].getActionCommand())) { - aboutTURTLE(); - } else if (command.equals(actions[TGUIAction.ACT_TURTLE_DOCUMENTATION].getActionCommand())) { - helpTURTLE(); - } else if (command.equals(actions[TGUIAction.ACT_DIPLODOCUS_DOCUMENTATION].getActionCommand())) { - helpDIPLODOCUS(); - } else if (command.equals(actions[TGUIAction.ACT_MODEL_CHECKING].getActionCommand())) { - modelChecking(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_RTLOTOS].getActionCommand())) { - generateRTLOTOS(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_LOTOS].getActionCommand())) { - generateLOTOS(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_AUT].getActionCommand())) { - generateAUT(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_AUTS].getActionCommand())) { - generateAUTS(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_UPPAAL].getActionCommand())) { - generateUPPAAL(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_PROVERIF].getActionCommand())) { - generateProVerif(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_JAVA].getActionCommand())) { - generateJava(); - } else if (command.equals(actions[TGUIAction.ACT_SIMU_JAVA].getActionCommand())) { - simuJava(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_SYSTEMC].getActionCommand())) { - generateSystemC(); - } else if (command.equals(actions[TGUIAction.ACT_SIMU_SYSTEMC].getActionCommand())) { - interactiveSimulationSystemC(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_TMLTXT].getActionCommand())) { - generateTMLTxt(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_CCODE].getActionCommand())) { - generateCcode(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_DESIGN].getActionCommand())) { - generateDesign(); - } else if (command.equals(actions[TGUIAction.ACT_CHECKCODE].getActionCommand())) { - checkCode(); - } else if (command.equals(actions[TGUIAction.ACT_SIMULATION].getActionCommand())) { - simulation(); - } else if (command.equals(actions[TGUIAction.ACT_VALIDATION].getActionCommand())) { - formalValidation(); - } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_LOTOS_RG].getActionCommand())) { - oneClickLOTOSRG(); - } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_RTLOTOS_RG].getActionCommand())) { - oneClickRTLOTOSRG(); - } else if (command.equals(actions[TGUIAction.ACT_PROJECTION].getActionCommand())) { - projection(); - } else if (command.equals(actions[TGUIAction.ACT_GRAPH_MODIFICATION].getActionCommand())) { - modifyGraph(); - } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION].getActionCommand())) { - bisimulation(); - } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION_CADP].getActionCommand())) { - bisimulationCADP(); - } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_AUT].getActionCommand())) { - seekDeadlockAUT(); - } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_SAVED_AUT].getActionCommand())) { - seekDeadlockSavedAUT(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUT].getActionCommand())) { - statAUT(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTDIPLODOCUS].getActionCommand())) { - statAUTDiplodocus(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTPROJ].getActionCommand())) { - statAUTProj(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_SAVED_AUT].getActionCommand())) { - statSavedAUT(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUT].getActionCommand())) { - pmAUT(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUTPROJ].getActionCommand())) { - pmAUTProj(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_SAVED_AUT].getActionCommand())) { - pmSavedAUT(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_RTLOTOS].getActionCommand())) { - showFormalSpecification(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_JAVA].getActionCommand())) { - showJavaCode(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES].getActionCommand())) { - showBirdEyesView(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES_EMB].getActionCommand())) { - showEmbeddedBirdEyesView(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_WAVE].getActionCommand())) { - showWave(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_SUGGESTED_DESIGN].getActionCommand())) { - showSuggestedDesign(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM].getActionCommand())) { - showSimulationTrace(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM_CHRONO].getActionCommand())) { - showSimulationTraceChrono(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_DTADOT].getActionCommand())) { - showDTA(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGDOT].getActionCommand())) { - showRG(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_TLSADOT].getActionCommand())) { - showTLSA(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTDOT].getActionCommand())) { - showRGAut(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTPROJDOT].getActionCommand())) { - showRGAutProj(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].getActionCommand())) { - showModifiedAUTDOT(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_RG_DIPLODOCUS].getActionCommand())) { - showRGDiplodocus(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_LOT].getActionCommand())) { - showSavedRTLOTOS(); - } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_DOT].getActionCommand())) { - showGGraph(); - } else if (command.equals(actions[TGUIAction.ACT_SCREEN_CAPTURE].getActionCommand())) { - screenCapture(); - } else if (command.equals(actions[TGUIAction.ACT_TTOOL_WINDOW_CAPTURE].getActionCommand())) { - windowCapture(); - } else if (command.equals(actions[TGUIAction.ACT_DIAGRAM_CAPTURE].getActionCommand())) { - diagramCapture(); - } else if (command.equals(actions[TGUIAction.ACT_SVG_DIAGRAM_CAPTURE].getActionCommand())) { - svgDiagramCapture(); - } else if (command.equals(actions[TGUIAction.ACT_ALL_DIAGRAM_CAPTURE].getActionCommand())) { - allDiagramCapture(); - } else if (command.equals(actions[TGUIAction.ACT_SELECTED_CAPTURE].getActionCommand())) { - selectedCapture(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC].getActionCommand())) { - generateDocumentation(); - } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC_REQ].getActionCommand())) { - generateDocumentationReq(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTRIBUTES].getActionCommand())) { - toggleAttributes(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_DIPLO_ID].getActionCommand())) { - toggleDiploIDs(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_TEPE_ID].getActionCommand())) { - toggleTEPEIDs(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_AVATAR_ID].getActionCommand())) { - toggleAVATARIDs(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_GATES].getActionCommand())) { - toggleGates(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_SYNCHRO].getActionCommand())) { - toggleSynchro(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_CHANNELS].getActionCommand())) { - toggleChannels(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_EVENTS].getActionCommand())) { - toggleEvents(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_REQUESTS].getActionCommand())) { - toggleRequests(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_JAVA].getActionCommand())) { - toggleJava(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_INTERNAL_COMMENT].getActionCommand())) { - toggleInternalComment(); - } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTR].getActionCommand())) { - toggleAttr(); - } else if (command.equals(actions[TGUIAction.ACT_ENHANCE].getActionCommand())) { - enhanceDiagram(); - } else if (command.equals(actions[TGUIAction.ACT_NC].getActionCommand())) { - NC(); - } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_1].getActionCommand())) { - executeUserCommand(ConfigurationTTool.ExternalCommand1Host, ConfigurationTTool.ExternalCommand1); - } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_2].getActionCommand())) { - executeUserCommand(ConfigurationTTool.ExternalCommand2Host, ConfigurationTTool.ExternalCommand2); - } else if (command.equals(actions[TGUIAction.CONNECTOR_COMMENT].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMMENT); - } else if (command.equals(actions[TGUIAction.TCD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.UML_NOTE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UML_NOTE); - - // AVATAR actions - } else if (command.equals(actions[TGUIAction.ACT_AVATAR_SIM].getActionCommand())) { - avatarSimulation(); - } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_UPPAAL].getActionCommand())) { - avatarUPPAALVerification(); - } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_PROVERIF].getActionCommand())) { - avatarProVerifVerification(); - } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_STATICANALYSIS].getActionCommand())) { - avatarStaticAnalysis(); - } else if (command.equals(actions[TGUIAction.ACT_AVATAR_EXECUTABLE_GENERATION].getActionCommand())) { - avatarExecutableCodeGeneration(); - - // AVATAR BD - } else if (command.equals(actions[TGUIAction.ABD_BLOCK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_BLOCK); - } else if (command.equals(actions[TGUIAction.ABD_CRYPTOBLOCK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_CRYPTOBLOCK); - } else if (command.equals(actions[TGUIAction.ABD_DATATYPE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_DATATYPE); - } else if (command.equals(actions[TGUIAction.ABD_COMPOSITION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_COMPOSITION_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ABD_PORT_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_PORT_CONNECTOR); - - // AVATAR SMD - } else if (command.equals(actions[TGUIAction.ASMD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.ASMD_START].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_START_STATE); - } else if (command.equals(actions[TGUIAction.ASMD_STOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.ASMD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARSMD_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ASMD_SEND_SIGNAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SEND_SIGNAL); - } else if (command.equals(actions[TGUIAction.ASMD_RECEIVE_SIGNAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RECEIVE_SIGNAL); - } else if (command.equals(actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL); - } else if (command.equals(actions[TGUIAction.ASMD_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STATE); - } else if (command.equals(actions[TGUIAction.ASMD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_CHOICE); - } else if (command.equals(actions[TGUIAction.ASMD_RANDOM].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RANDOM); - } else if (command.equals(actions[TGUIAction.ASMD_SET_TIMER].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SET_TIMER); - } else if (command.equals(actions[TGUIAction.ASMD_RESET_TIMER].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RESET_TIMER); - } else if (command.equals(actions[TGUIAction.ASMD_EXPIRE_TIMER].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_EXPIRE_TIMER); - - // AVATAR MAD - } else if (command.equals(actions[TGUIAction.AMAD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.AMAD_ASSUMPTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ASSUMPTION); - } else if (command.equals(actions[TGUIAction.AMAD_DIAGRAM_REFERENCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_DIAGRAM_REFERENCE); - } else if (command.equals(actions[TGUIAction.AMAD_ELEMENT_REFERENCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ELEMENT_REFERENCE); - } else if (command.equals(actions[TGUIAction.AMAD_COMPOSITION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_COMPOSITION_CONNECTOR); - } else if (command.equals(actions[TGUIAction.AMAD_VERSIONING_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_VERSIONING_CONNECTOR); - } else if (command.equals(actions[TGUIAction.AMAD_IMPACT_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_IMPACT_CONNECTOR); - } else if (command.equals(actions[TGUIAction.AMAD_MEET_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_MEET_CONNECTOR); - - // AVATAR RD - } else if (command.equals(actions[TGUIAction.ARD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.ARD_REQUIREMENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_REQUIREMENT); - } else if (command.equals(actions[TGUIAction.ARD_PROPERTY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_PROPERTY); - } else if (command.equals(actions[TGUIAction.ARD_DERIVE_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_DERIVE_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ARD_REFINE_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_REFINE_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ARD_VERIFY_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_VERIFY_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ARD_COPY_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COPY_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ARD_COMPOSITION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COMPOSITION_CONNECTOR); - - // AVATAR PD - } else if (command.equals(actions[TGUIAction.APD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.APD_BLOCK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BLOCK); - } else if (command.equals(actions[TGUIAction.APD_LOGICAL_CONSTRAINT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_LOGICAL_CONSTRAINT); - } else if (command.equals(actions[TGUIAction.APD_TEMPORAL_CONSTRAINT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_TEMPORAL_CONSTRAINT); - } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE); - } else if (command.equals(actions[TGUIAction.APD_SIGNAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_SIGNAL); - } else if (command.equals(actions[TGUIAction.APD_ALIAS].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ALIAS); - } else if (command.equals(actions[TGUIAction.APD_BOOLEQ].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BOOLEQ); - } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_SETTING].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE_SETTING); - } else if (command.equals(actions[TGUIAction.APD_PROPERTY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY); - } else if (command.equals(actions[TGUIAction.APD_PROPERTY_RELATION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY_RELATION); - } - - else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_ATTRIBUTE_CONNECTOR); - } else if (command.equals(actions[TGUIAction.APD_SIGNAL_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_SIGNAL_CONNECTOR); - } else if (command.equals(actions[TGUIAction.APD_PROPERTY_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_PROPERTY_CONNECTOR); - } else if (command.equals(actions[TGUIAction.APD_COMPOSITION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_COMPOSITION_CONNECTOR); - - // AVATAR CD - } else if (command.equals(actions[TGUIAction.ACD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.ACD_BLOCK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_BLOCK); - } else if (command.equals(actions[TGUIAction.ACD_ACTOR_STICKMAN].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_STICKMAN); - } else if (command.equals(actions[TGUIAction.ACD_ACTOR_BOX].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_BOX); - - } else if (command.equals(actions[TGUIAction.ACD_ASSOCIATION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_ASSOCIATION_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ACD_COMPOSITION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_COMPOSITION_CONNECTOR); - - // AVATAR AD - } else if (command.equals(actions[TGUIAction.AAD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.AAD_ASSOCIATION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AAD_ASSOCIATION_CONNECTOR); - } else if (command.equals(actions[TGUIAction.AAD_START_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_START_STATE); - } else if (command.equals(actions[TGUIAction.AAD_STOP_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.AAD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_CHOICE); - } else if (command.equals(actions[TGUIAction.AAD_JUNCTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_JUNCTION); - } else if (command.equals(actions[TGUIAction.AAD_PARALLEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARALLEL); - } else if (command.equals(actions[TGUIAction.AAD_ACTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTION); - } else if (command.equals(actions[TGUIAction.AAD_ACTIVITY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTIVITY); - } else if (command.equals(actions[TGUIAction.AAD_STOP_FLOW].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_FLOW); - } else if (command.equals(actions[TGUIAction.AAD_SEND_SIGNAL_ACTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_SEND_SIGNAL_ACTION); - } else if (command.equals(actions[TGUIAction.AAD_ACCEPT_EVENT_ACTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACCEPT_EVENT_ACTION); - } else if (command.equals(actions[TGUIAction.AAD_PARTITION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARTITION); - } else if (command.equals(actions[TGUIAction.AAD_ALIGN_PARTITION].getActionCommand())) { - alignPartitions(); - - // Avatar DD - } else if (command.equals(actions[TGUIAction.ADD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.ADD_LINK].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ADD_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ADD_CPUNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CPUNODE); - } else if (command.equals(actions[TGUIAction.ADD_BUSNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BUSNODE); - } else if (command.equals(actions[TGUIAction.ADD_BRIDGENODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BRIDGENODE); - } else if (command.equals(actions[TGUIAction.ADD_TTYNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TTYNODE); - } else if (command.equals(actions[TGUIAction.ADD_RAMNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_RAMNODE); - } else if (command.equals(actions[TGUIAction.ADD_ROMNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ROMNODE); - } else if (command.equals(actions[TGUIAction.ADD_DMANODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_DMANODE); - } else if (command.equals(actions[TGUIAction.ADD_ICUNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ICUNODE); - } else if (command.equals(actions[TGUIAction.ADD_COPROMWMRNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_COPROMWMRNODE); - } else if (command.equals(actions[TGUIAction.ADD_TIMERNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TIMERNODE); - } else if (command.equals(actions[TGUIAction.ADD_BLOCKARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ARTIFACT); - } else if (command.equals(actions[TGUIAction.ADD_CHANNELARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CHANNELARTIFACT); - - } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION); - } else if (command.equals(actions[TGUIAction.TCD_CONNECTOR_ATTRIBUTE].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ATTRIBUTE); - } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION_NAVIGATION].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION_NAVIGATION); - } else if (command.equals(actions[TGUIAction.TCD_NEW_TCLASS].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TCLASS); - } else if (command.equals(actions[TGUIAction.TCD_NEW_TOBJECT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TOBJECT); - } else if (command.equals(actions[TGUIAction.TCD_NEW_TDATA].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TDATA); - } else if (command.equals(actions[TGUIAction.TCD_PARALLEL_OPERATOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PARALLEL_OPERATOR); - } else if (command.equals(actions[TGUIAction.TCD_SYNCHRO_OPERATOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SYNCHRO_OPERATOR); - } else if (command.equals(actions[TGUIAction.TCD_INVOCATION_OPERATOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_INVOCATION_OPERATOR); - } else if (command.equals(actions[TGUIAction.TCD_SEQUENCE_OPERATOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SEQUENCE_OPERATOR); - } else if (command.equals(actions[TGUIAction.TCD_PREEMPTION_OPERATOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PREEMPTION_OPERATOR); - } else if (command.equals(actions[TGUIAction.AD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.AD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_AD_DIAGRAM); - } else if (command.equals(actions[TGUIAction.AD_ACTION_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ACTION_STATE); - } else if (command.equals(actions[TGUIAction.AD_ARRAY_GET].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_GET); - } else if (command.equals(actions[TGUIAction.AD_ARRAY_SET].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_SET); - } else if (command.equals(actions[TGUIAction.AD_PARALLEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PARALLEL); - } else if (command.equals(actions[TGUIAction.AD_SEQUENCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_SEQUENCE); - } else if (command.equals(actions[TGUIAction.AD_PREEMPTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PREEMPTION); - } else if (command.equals(actions[TGUIAction.AD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_CHOICE); - } else if (command.equals(actions[TGUIAction.AD_START].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_START_STATE); - } else if (command.equals(actions[TGUIAction.AD_STOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.AD_JUNCTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_JUNCTION); - } else if (command.equals(actions[TGUIAction.AD_DETERMINISTIC_DELAY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DETERMINISTIC_DELAY); - } else if (command.equals(actions[TGUIAction.AD_NON_DETERMINISTIC_DELAY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_NON_DETERMINISTIC_DELAY); - } else if (command.equals(actions[TGUIAction.AD_DELAY_NON_DETERMINISTIC_DELAY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DELAY_NON_DETERMINISTIC_DELAY); - } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER); - } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER_WITH_LATENCY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER_WITH_LATENCY); - } else if (command.equals(actions[TGUIAction.AD_TIME_CAPTURE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_CAPTURE); - } else if (command.equals(actions[TGUIAction.IOD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.IOD_CONNECTOR].getActionCommand())) { - //TraceManager.addDev("Connector interaction"); - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INTERACTION); - } else if (command.equals(actions[TGUIAction.IOD_START].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_START_STATE); - } else if (command.equals(actions[TGUIAction.IOD_STOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.IOD_PARALLEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PARALLEL); - } else if (command.equals(actions[TGUIAction.IOD_PREEMPTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PREEMPTION); - } else if (command.equals(actions[TGUIAction.IOD_SEQUENCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_SEQUENCE); - } else if (command.equals(actions[TGUIAction.IOD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_CHOICE); - } else if (command.equals(actions[TGUIAction.IOD_JUNCTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_JUNCTION); - } else if (command.equals(actions[TGUIAction.IOD_REF_SD].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_SD); - } else if (command.equals(actions[TGUIAction.IOD_REF_IOD].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_IOD); - } else if (command.equals(actions[TGUIAction.SD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.SD_INSTANCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_INSTANCE); - } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_SYNC].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_SYNC_SD); - } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_ASYNC].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_SD); - } else if (command.equals(actions[TGUIAction.SD_ABSOLUTE_TIME_CONSTRAINT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ABSOLUTE_TIME_CONSTRAINT); - } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_RELATIVE_TIME_CONSTRAINT); - } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_RELATIVE_TIME_SD); - } else if (command.equals(actions[TGUIAction.SD_ACTION_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ACTION_STATE); - } else if (command.equals(actions[TGUIAction.SD_GUARD].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_GUARD); - } else if (command.equals(actions[TGUIAction.SD_TIME_INTERVAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIME_INTERVAL); - } else if (command.equals(actions[TGUIAction.SD_TIMER_SETTING].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_SETTING); - } else if (command.equals(actions[TGUIAction.SD_TIMER_EXPIRATION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_EXPIRATION); - } else if (command.equals(actions[TGUIAction.SD_TIMER_CANCELLATION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_CANCELLATION); - } else if (command.equals(actions[TGUIAction.SD_COREGION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_COREGION); - } else if (command.equals(actions[TGUIAction.SD_ALIGN_INSTANCES].getActionCommand())) { - alignInstances(); - } else if (command.equals(actions[TGUIAction.UCD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.UCD_ACTOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTOR); - } else if (command.equals(actions[TGUIAction.UCD_ACTORBOX].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTORBOX); - } else if (command.equals(actions[TGUIAction.UCD_USECASE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_USECASE); - } else if (command.equals(actions[TGUIAction.UCD_BORDER].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_BORDER); - } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_ACTOR_UC].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ACTOR_UCD); - } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_INCLUDE].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INCLUDE_UCD); - } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_EXTEND].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EXTEND_UCD); - } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_SPECIA].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_SPECIA_UCD); - } else if (command.equals(actions[TGUIAction.TDD_LINK].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_DD); - } else if (command.equals(actions[TGUIAction.TDD_NODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_NODE); - } else if (command.equals(actions[TGUIAction.TDD_ARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_ARTIFACT); - } else if (command.equals(actions[TGUIAction.NCDD_LINK].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_NC); - } else if (command.equals(actions[TGUIAction.NCDD_EQNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_EQNODE); - } else if (command.equals(actions[TGUIAction.NCDD_SWITCHNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_SWITCHNODE); - } else if (command.equals(actions[TGUIAction.NCDD_TRAFFIC_ARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_TRAFFIC_ARTIFACT); - } else if (command.equals(actions[TGUIAction.NCDD_ROUTE_ARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_ROUTE_ARTIFACT); - } else if (command.equals(actions[TGUIAction.TMLTD_TASK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_TASK); - } else if (command.equals(actions[TGUIAction.EBRDD_START].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_START_STATE); - } else if (command.equals(actions[TGUIAction.EBRDD_STOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD); - } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR_ERC].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD_ERC); - } else if (command.equals(actions[TGUIAction.EBRDD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_CHOICE); - } else if (command.equals(actions[TGUIAction.EBRDD_ERC].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERC); - } else if (command.equals(actions[TGUIAction.EBRDD_ESO].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ESO); - } else if (command.equals(actions[TGUIAction.EBRDD_ERB].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERB); - } else if (command.equals(actions[TGUIAction.EBRDD_SEQUENCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_SEQUENCE); - } else if (command.equals(actions[TGUIAction.EBRDD_ACTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ACTION); - } else if (command.equals(actions[TGUIAction.EBRDD_FOR_LOOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_FOR_LOOP); - } else if (command.equals(actions[TGUIAction.EBRDD_VARIABLE_DECLARATION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_VARIABLE_DECLARATION); - } else if (command.equals(actions[TGUIAction.TMLAD_START].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_START_STATE); - } else if (command.equals(actions[TGUIAction.TMLAD_STOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.TMLAD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLAD); - } else if (command.equals(actions[TGUIAction.TMLTD_ASSOC].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_ASSOCIATION_NAV); - } else if (command.equals(actions[TGUIAction.TMLTD_CHANNEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_CHANNEL_OPERATOR); - } else if (command.equals(actions[TGUIAction.TMLTD_REQ].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_REQUEST_OPERATOR); - } else if (command.equals(actions[TGUIAction.TMLTD_EVENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_EVENT_OPERATOR); - } else if (command.equals(actions[TGUIAction.TMLTD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_COMPOSITION_OPERATOR); - } else if (command.equals(actions[TGUIAction.TMLTD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.TMLCTD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.TMLAD_WRITE_CHANNEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WRITE_CHANNEL); - } else if (command.equals(actions[TGUIAction.TMLAD_SEND_REQUEST].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_REQUEST); - } else if (command.equals(actions[TGUIAction.TMLAD_READ_REQUEST_ARG].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_REQUEST_ARG); - } else if (command.equals(actions[TGUIAction.TMLAD_SEND_EVENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_EVENT); - } else if (command.equals(actions[TGUIAction.TMLAD_WAIT_EVENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WAIT_EVENT); - } else if (command.equals(actions[TGUIAction.TMLAD_NOTIFIED_EVENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_NOTIFIED_EVENT); - } else if (command.equals(actions[TGUIAction.TMLAD_READ_CHANNEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_CHANNEL); - } else if (command.equals(actions[TGUIAction.TMLAD_ACTION_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_ACTION_STATE); - } else if (command.equals(actions[TGUIAction.TMLAD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_CHOICE); - } else if (command.equals(actions[TGUIAction.TMLAD_EXECI].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI); - } else if (command.equals(actions[TGUIAction.TMLAD_EXECI_INTERVAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI_INTERVAL); - } else if (command.equals(actions[TGUIAction.TMLAD_EXECC].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC); - } else if (command.equals(actions[TGUIAction.TMLAD_EXECC_INTERVAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC_INTERVAL); - } else if (command.equals(actions[TGUIAction.TMLAD_DELAY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_DELAY); - } else if (command.equals(actions[TGUIAction.TMLAD_INTERVAL_DELAY].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_INTERVAL_DELAY); - } else if (command.equals(actions[TGUIAction.TMLAD_FOR_LOOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_LOOP); - } else if (command.equals(actions[TGUIAction.TMLAD_FOR_STATIC_LOOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_STATIC_LOOP); - } else if (command.equals(actions[TGUIAction.TMLAD_FOR_EVER_LOOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_EVER_LOOP); - } else if (command.equals(actions[TGUIAction.TMLAD_SEQUENCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEQUENCE); - } else if (command.equals(actions[TGUIAction.TMLAD_UNORDERED_SEQUENCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_UNORDERED_SEQUENCE); - } else if (command.equals(actions[TGUIAction.TMLAD_SELECT_EVT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SELECT_EVT); - } else if (command.equals(actions[TGUIAction.TMLAD_RANDOM].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_RANDOM); - } else if (command.equals(actions[TGUIAction.TMLCTD_CCOMPONENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CCOMPONENT); - } else if (command.equals(actions[TGUIAction.TMLCTD_CREMOTECOMPONENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CREMOTECOMPONENT); - } else if (command.equals(actions[TGUIAction.TMLCTD_PCOMPONENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_PCOMPONENT); - } else if (command.equals(actions[TGUIAction.TMLCTD_RCOMPONENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_RCOMPONENT); - } else if (command.equals(actions[TGUIAction.TMLCTD_CPORT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CPORT); - } else if (command.equals(actions[TGUIAction.TMLCTD_FORK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_FORK); - } else if (command.equals(actions[TGUIAction.TMLCTD_JOIN].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_JOIN); - } else if (command.equals(actions[TGUIAction.TMLCTD_COPORT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_COPORT); - } else if (command.equals(actions[TGUIAction.TMLCTD_PORT_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PORT_TMLC); - - } else if (command.equals(actions[TGUIAction.TMLARCHI_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.TMLARCHI_LINK].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_TMLARCHI); - } else if (command.equals(actions[TGUIAction.TMLARCHI_CPUNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPUNODE); - } else if (command.equals(actions[TGUIAction.TMLARCHI_BUSNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BUSNODE); - } else if (command.equals(actions[TGUIAction.TMLARCHI_CPNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPNODE); - } else if (command.equals(actions[TGUIAction.TMLARCHI_BRIDGENODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BRIDGENODE); - } else if (command.equals(actions[TGUIAction.TMLARCHI_HWANODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_HWANODE); - } else if (command.equals(actions[TGUIAction.TMLARCHI_MEMORYNODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_MEMORYNODE); - } else if (command.equals(actions[TGUIAction.TMLARCHI_DMANODE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_DMANODE); - } else if (command.equals(actions[TGUIAction.TMLARCHI_ARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_ARTIFACT); - } else if (command.equals(actions[TGUIAction.TMLARCHI_COMMUNICATION_ARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_COMMUNICATION_ARTIFACT); - } else if (command.equals(actions[TGUIAction.TMLARCHI_PORT_ARTIFACT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_PORT_ARTIFACT); - - - - // Communication patterns - } else if (command.equals(actions[TGUIAction.TMLCP_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.TMLCP_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLCP); - } else if (command.equals(actions[TGUIAction.TMLCP_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_CHOICE); - } else if (command.equals(actions[TGUIAction.TMLCP_FORK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FORK); - } else if (command.equals(actions[TGUIAction.TMLCP_JOIN].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JOIN); - } else if (command.equals(actions[TGUIAction.TMLCP_REF_CP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_CP); - } else if (command.equals(actions[TGUIAction.TMLCP_REF_SD].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_SD); - } else if (command.equals(actions[TGUIAction.TMLCP_START].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE); - } else if (command.equals(actions[TGUIAction.TMLCP_STOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_STOP_STATE); - } else if (command.equals(actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION); - } else if (command.equals(actions[TGUIAction.TMLSD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.TMLSD_MESSAGE_ASYNC].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_TMLSD); - } else if (command.equals(actions[TGUIAction.TMLSD_STORAGE_INSTANCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_STORAGE_INSTANCE); - } else if (command.equals(actions[TGUIAction.TMLSD_CONTROLLER_INSTANCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_CONTROLLER_INSTANCE); - } else if (command.equals(actions[TGUIAction.TMLSD_TRANSFER_INSTANCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_TRANSFER_INSTANCE); - } else if (command.equals(actions[TGUIAction.TMLSD_ACTION_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_ACTION_STATE); - - - // Attack Tree Diagrams - } else if (command.equals(actions[TGUIAction.ATD_BLOCK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_BLOCK); - } else if (command.equals(actions[TGUIAction.ATD_ATTACK].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_ATTACK); - } else if (command.equals(actions[TGUIAction.ATD_CONSTRAINT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_CONSTRAINT); - } else if (command.equals(actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_COMPOSITION_CONNECTOR); - } else if (command.equals(actions[TGUIAction.ATD_ATTACK_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_ATTACK_CONNECTOR); - - // TURTLE-OS - } else if (command.equals(actions[TGUIAction.TOS_TCLASS].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_TCLASS); - } else if (command.equals(actions[TGUIAction.TOS_CONNECTOR_ATTRIBUTE].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ATTRIBUTE); - } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION); - } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION_NAVIGATION].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION_NAVIGATION); - } else if (command.equals(actions[TGUIAction.TOS_CALL_OPERATOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_CALL_OPERATOR); - } else if (command.equals(actions[TGUIAction.TOS_EVT_OPERATOR].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_EVT_OPERATOR); - } else if (command.equals(actions[TGUIAction.TOSAD_ACTION_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_ACTION_STATE); - } else if (command.equals(actions[TGUIAction.TOSAD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_CHOICE); - } else if (command.equals(actions[TGUIAction.TOSAD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOSAD_CONNECTOR); - } else if (command.equals(actions[TGUIAction.TOSAD_INT_TIME_INTERVAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_INT_TIME_INTERVAL); - } else if (command.equals(actions[TGUIAction.TOSAD_JUNCTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_JUNCTION); - } else if (command.equals(actions[TGUIAction.TOSAD_START_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_START_STATE); - } else if (command.equals(actions[TGUIAction.TOSAD_STOP_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.TOSAD_TIME_INTERVAL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_TIME_INTERVAL); - - - // Ontologies - } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_DIAGRAM].getActionCommand())) { - generateOntologyForCurrentDiagram(); - } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_SET_OF_DIAGRAMS].getActionCommand())) { - generateOntologyForCurrentSetOfDiagrams(); - } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_ALL_DIAGRAMS].getActionCommand())) { - generateOntologyForAllDiagrams(); - - // Requirement diagrams - } else if (command.equals(actions[TGUIAction.TREQ_REQUIREMENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_REQUIREMENT); - } else if (command.equals(actions[TGUIAction.TREQ_OBSERVER].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_OBSERVER); - } else if (command.equals(actions[TGUIAction.TREQ_EBRDD].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_EBRDD); - } else if (command.equals(actions[TGUIAction.TREQ_DERIVE].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DERIVE_REQ); - } else if (command.equals(actions[TGUIAction.TREQ_COPY].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COPY_REQ); - } else if (command.equals(actions[TGUIAction.TREQ_COMPOSITION].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMPOSITION_REQ); - } else if (command.equals(actions[TGUIAction.TREQ_VERIFY].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_VERIFY_REQ); - } else if (command.equals(actions[TGUIAction.PROSMD_START].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_START_STATE); - } else if (command.equals(actions[TGUIAction.PROSMD_SENDMSG].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SENDMSG); - } else if (command.equals(actions[TGUIAction.PROSMD_GETMSG].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_GETMSG); - } else if (command.equals(actions[TGUIAction.PROSMD_CHOICE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_CHOICE); - } else if (command.equals(actions[TGUIAction.PROSMD_STOP].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STOP_STATE); - } else if (command.equals(actions[TGUIAction.PROSMD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROSMD); - } else if (command.equals(actions[TGUIAction.PROSMD_JUNCTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_JUNCTION); - } else if (command.equals(actions[TGUIAction.PROSMD_SUBMACHINE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SUBMACHINE); - } else if (command.equals(actions[TGUIAction.PROSMD_ACTION].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_ACTION); - } else if (command.equals(actions[TGUIAction.PROSMD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.PROSMD_PARALLEL].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_PARALLEL); - } else if (command.equals(actions[TGUIAction.PROSMD_STATE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STATE); - } else if (command.equals(actions[TGUIAction.PROCSD_COMPONENT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_COMPONENT); - //Delegate ports removed, by Solange - /* - } else if (command.equals(actions[TGUIAction.PROCSD_DELEGATE_PORT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_DELEGATE_PORT); - */ - } else if (command.equals(actions[TGUIAction.PROCSD_IN_PORT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_IN_PORT); - } else if (command.equals(actions[TGUIAction.PROCSD_OUT_PORT].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_OUT_PORT); - } else if (command.equals(actions[TGUIAction.PROCSD_EDIT].getActionCommand())) { - actionOnButton(TGComponentManager.EDIT, -1); - } else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD); - } - else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_PORT_INTERFACE].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD_PORT_INTERFACE);} - else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_DELEGATE].getActionCommand())) { - actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DELEGATE_PROCSD); - } else if (command.equals(actions[TGUIAction.PROCSD_INTERFCE].getActionCommand())) { - actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_INTERFACE); - // Command for the action created by Solange. Window appears. - } else if (command.equals(actions[TGUIAction.PRUEBA_1].getActionCommand())) { - JOptionPane.showMessageDialog(frame, "In Port: Color CYAN\nOut Port: Color LIGHT GRAY", "Help color of the ports", JOptionPane.INFORMATION_MESSAGE); - } else if (command.endsWith(".dot")) { - viewAutomata(command); - } - } - - private class PopupListener extends MouseAdapter /* popup menus onto tabs */ { - private MainGUI mgui; - private JPopupMenu menu; - - private JMenuItem rename, remove, moveRight, moveLeft, newDesign, newAnalysis, newDeployment, newRequirement, newTMLDesign, newTMLComponentDesign, newTMLArchi, newProactiveDesign, newTURTLEOSDesign, - newNCDesign, sort, clone, newAttackTree, newAVATARBD, newAVATARRequirement, newMAD, newTMLCP, newTMLMethodo, newAvatarMethodo, newAVATARDD; - private JMenuItem newAVATARAnalysis; - - public PopupListener(MainGUI _mgui) { - mgui = _mgui; - createMenu(); - } - - public void mousePressed(MouseEvent e) { - checkForPopup(e); - } - public void mouseReleased(MouseEvent e) { - checkForPopup(e); - } - public void mouseClicked(MouseEvent e) { - checkForPopup(e); - } - - private void checkForPopup(MouseEvent e) { - if(e.isPopupTrigger()) { - Component c = e.getComponent(); - //TraceManager.addDev("e =" + e + " Component=" + c); - updateMenu(mgui.getCurrentSelectedIndex()); - menu.show(c, e.getX(), e.getY()); - } + for(RunningInfo ri: runningIDs) { + if (ri.id == id.intValue()) { + runningIDs.remove(ri); + //TraceManager.addDev("Running id " + i + " removed"); + return; } + } + getCurrentTDiagramPanel().repaint(); + } - private void createMenu() { - rename = createMenuItem("Rename"); - remove = createMenuItem("Remove"); - moveLeft = createMenuItem("Move to the left"); - moveRight = createMenuItem("Move to the right"); - sort = createMenuItem("Sort"); - clone = createMenuItem("Clone"); - newAnalysis = createMenuItem("New TURTLE Analysis"); - newDesign = createMenuItem("New TURTLE Design"); - newDeployment = createMenuItem("New TURTLE Deployment"); - newAttackTree = createMenuItem("New AVATAR Attack Tree"); - newRequirement = createMenuItem("New TURTLE Requirement Diagram"); - newTMLMethodo = createMenuItem("New DIPLODOCUS Methodology"); - - newTMLDesign = createMenuItem("New DIPLODOCUS Design"); - newTMLComponentDesign = createMenuItem("New Component-based DIPLODOCUS Design"); - newTMLArchi = createMenuItem("New DIPLODOCUS Architecture"); - newTMLCP = createMenuItem("New DIPLODOCUS Communication Pattern"); - newProactiveDesign = createMenuItem("New Proactive Design"); - newTURTLEOSDesign = createMenuItem("New TURTLE-OS Design"); - newNCDesign = createMenuItem("New Network Calculus Design"); - newMAD = createMenuItem("New AVATAR Modeling Assumptions Diagram"); - newAVATARRequirement = createMenuItem("New AVATAR Requirement Diagrams"); - newAVATARAnalysis = createMenuItem("New AVATAR Analysis"); - newAVATARBD = createMenuItem("New AVATAR Design"); - newAVATARDD = createMenuItem("New AVATAR Deployment Diagram"); - newAvatarMethodo = createMenuItem("New AVATAR Methodology"); - - menu = new JPopupMenu("Views"); - menu.add(moveLeft); - menu.add(moveRight); - - menu.addSeparator(); - - menu.add(rename); - menu.add(remove); - - menu.addSeparator(); +public synchronized void removeLoadId(int _id) { + if (loadIDs == null) { + return ; + } - menu.add(sort); + for(LoadInfo li: loadIDs) { + if (li.id == _id) { + loadIDs.remove(li); + //TraceManager.addDev("Running id " + i + " removed"); + return; + } + } + getCurrentTDiagramPanel().repaint(); + } + +public void toggleGates() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){ + //TraceManager.addDev("Toggle gates"); + TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp; + tdcp.setGatesVisible(!tdcp.areGatesVisible()); + tdcp.checkAllMySize(); + tdcp.repaint(); + changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} + +public void toggleSynchro() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){ + //TraceManager.addDev("Toggle synchro"); + TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp; + tdcp.setSynchroVisible(!tdcp.areSynchroVisible()); + tdcp.checkAllMySize(); + tdcp.repaint(); + changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} + +public void toggleJava() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if ((tdp != null) && (tdp instanceof TActivityDiagramPanel)){ + //TraceManager.addDev("Toggle synchro"); + TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp; + tadp.setJavaVisible(!tadp.isJavaVisible()); + tadp.checkAllMySize(); + tadp.repaint(); + changeMade(tadp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} + +public void toggleInternalComment() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null) { + tdp.setInternalCommentVisible((tdp.getInternalCommentVisible() + 1) % 3); + tdp.checkAllMySize(); + tdp.repaint(); + changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} - menu.addSeparator(); +public void toggleAttr() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if (tdp != null){ + //TraceManager.addDev("Toggle attributes"); + tdp.setAttributes((tdp.getAttributeState() + 1) % 3); + tdp.checkAllMySize(); + tdp.repaint(); + changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} - menu.add(clone); +public void toggleChannels() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){ + //TraceManager.addDev("Toggle attributes"); + TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; + tmltdp.setChannelsVisible(!tmltdp.areChannelsVisible()); + tmltdp.checkAllMySize(); + tmltdp.repaint(); + changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} + +public void toggleEvents() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){ + //TraceManager.addDev("Toggle attributes"); + TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; + tmltdp.setEventsVisible(!tmltdp.areEventsVisible()); + tmltdp.checkAllMySize(); + tmltdp.repaint(); + changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} + +public void toggleRequests() { + TDiagramPanel tdp = getCurrentTDiagramPanel(); + if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){ + //TraceManager.addDev("Toggle attributes"); + TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp; + tmltdp.setRequestsVisible(!tmltdp.areRequestsVisible()); + tmltdp.checkAllMySize(); + tmltdp.repaint(); + changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT); + } +} + +public boolean isAValidTabName(String name) { + return name.matches("((\\w)*(\\s)*)*"); +} + + + +public void windowClosing(WindowEvent e) { + //frame.setVisible(false); + quitApplication(); +} + +public void windowClosed(WindowEvent e) { +} + +public void windowOpened(WindowEvent e) { +} + +public void windowIconified(WindowEvent e) { +} + +public void windowDeiconified(WindowEvent e) { +} + +public void windowActivated(WindowEvent e) { +} + +public void windowDeactivated(WindowEvent e) { +} + + +// TGUIACtions Event listener + +public void keyTyped(KeyEvent e) { + TraceManager.addDev("KEY TYPED"); +} + +public void keyPressed(KeyEvent e) { + TraceManager.addDev("KEY PRESSED: "); +} + +public void keyReleased(KeyEvent e) { + TraceManager.addDev("KEY RELEASED: "); +} + +public void actionPerformed(ActionEvent evt) { + String command = evt.getActionCommand(); + //TraceManager.addDev("Command:" + command); + TDiagramPanel tdp1 = getCurrentTDiagramPanel(); + if (tdp1 != null) { + //TraceManager.addDev("Stop Adding connector in maingui"); + tdp1.stopAddingConnector(); + } + + + // Compare the action command to the known actions. + if (command.equals(actions[TGUIAction.ACT_NEW].getActionCommand())) { + newProject(); + } else if (command.equals(actions[TGUIAction.ACT_NEW_DESIGN].getActionCommand())) { + newDesign(); + } else if (command.equals(actions[TGUIAction.ACT_NEW_ANALYSIS].getActionCommand())) { + newAnalysis(); + } else if (command.equals(actions[TGUIAction.ACT_OPEN].getActionCommand())) { + openProject(); + } else if (command.equals(actions[TGUIAction.ACT_MERGE].getActionCommand())) { + mergeProject(); + } else if (command.equals(actions[TGUIAction.ACT_OPEN_LAST].getActionCommand())) { + openLastProject(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE].getActionCommand())) { + saveProject(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_AS].getActionCommand())) { + saveAsProject(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_TIF].getActionCommand())) { + saveTIF(); + } else if (command.equals(actions[TGUIAction.ACT_OPEN_TIF].getActionCommand())) { + openTIF(); + } else if (command.equals(actions[TGUIAction.ACT_OPEN_SD].getActionCommand())) { + openSD(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_LOTOS].getActionCommand())) { + saveLastLotos(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_DTA].getActionCommand())) { + saveLastDTA(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_RG].getActionCommand())) { + saveLastRG(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_TLSA].getActionCommand())) { + saveLastTLSA(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUT].getActionCommand())) { + saveLastRGAUT(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTPROJ].getActionCommand())) { + saveLastRGAUTProj(); + } else if (command.equals(actions[TGUIAction.ACT_SAVE_AUTMODIFIED].getActionCommand())) { + saveLastModifiedRG(); + } else if (command.equals(actions[TGUIAction.ACT_EXPORT_LIB].getActionCommand())) { + exportLibrary(); + } else if (command.equals(actions[TGUIAction.ACT_IMPORT_LIB].getActionCommand())) { + importLibrary(); + } else if (command.equals(actions[TGUIAction.ACT_QUIT].getActionCommand())) { + quitApplication(); + } else if (command.equals(actions[TGUIAction.ACT_CUT].getActionCommand())) { + cut(); + } else if (command.equals(actions[TGUIAction.ACT_COPY].getActionCommand())) { + copy(); + } else if (command.equals(actions[TGUIAction.ACT_PASTE].getActionCommand())) { + paste(); + } else if (command.equals(actions[TGUIAction.ACT_DELETE].getActionCommand())) { + delete(); + } else if (command.equals(actions[TGUIAction.ACT_ZOOM_MORE].getActionCommand())) { + zoomMore(); + } else if (command.equals(actions[TGUIAction.ACT_ZOOM_LESS].getActionCommand())) { + zoomLess(); + } else if (command.equals(actions[TGUIAction.ACT_BACKWARD].getActionCommand())) { + backward(); + } else if (command.equals(actions[TGUIAction.ACT_FORWARD].getActionCommand())) { + forward(); + } else if (command.equals(actions[TGUIAction.ACT_FIRST_DIAG].getActionCommand())) { + firstDiag(); + } else if (command.equals(actions[TGUIAction.ACT_BACK_DIAG].getActionCommand())) { + backDiag(); + } else if (command.equals(actions[TGUIAction.ACT_NEXT_DIAG].getActionCommand())) { + nextDiag(); + } else if (command.equals(actions[TGUIAction.ACT_LAST_DIAG].getActionCommand())) { + lastDiag(); + } else if (command.equals(actions[TGUIAction.ACT_ABOUT].getActionCommand())) { + aboutVersion(); + } + //@author: Huy TRUONG. + //open a external search box for ACT_EXTERNAL_SEARCH + else if (command.equals(actions[TGUIAction.ACT_EXTERNAL_SEARCH].getActionCommand())) { + showExternalSearch();} + else if (command.equals(actions[TGUIAction.ACT_INTERNAL_SEARCH].getActionCommand())) { + doInternalSearch(); + //-- - menu.addSeparator(); + } else if (command.equals(actions[TGUIAction.ACT_TTOOL_CONFIGURATION].getActionCommand())) { + showTToolConfiguration(); + } else if (command.equals(actions[TGUIAction.ACT_TURTLE_WEBSITE].getActionCommand())) { + aboutTURTLE(); + } else if (command.equals(actions[TGUIAction.ACT_TURTLE_DOCUMENTATION].getActionCommand())) { + helpTURTLE(); + } else if (command.equals(actions[TGUIAction.ACT_DIPLODOCUS_DOCUMENTATION].getActionCommand())) { + helpDIPLODOCUS(); + } else if (command.equals(actions[TGUIAction.ACT_MODEL_CHECKING].getActionCommand())) { + modelChecking(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_RTLOTOS].getActionCommand())) { + generateRTLOTOS(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_LOTOS].getActionCommand())) { + generateLOTOS(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_AUT].getActionCommand())) { + generateAUT(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_AUTS].getActionCommand())) { + generateAUTS(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_UPPAAL].getActionCommand())) { + generateUPPAAL(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_PROVERIF].getActionCommand())) { + generateProVerif(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_JAVA].getActionCommand())) { + generateJava(); + } else if (command.equals(actions[TGUIAction.ACT_SIMU_JAVA].getActionCommand())) { + simuJava(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_SYSTEMC].getActionCommand())) { + generateSystemC(); + } else if (command.equals(actions[TGUIAction.ACT_SIMU_SYSTEMC].getActionCommand())) { + interactiveSimulationSystemC(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_TMLTXT].getActionCommand())) { + generateTMLTxt(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_CCODE].getActionCommand())) { + generateCcode(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_DESIGN].getActionCommand())) { + generateDesign(); + } else if (command.equals(actions[TGUIAction.ACT_CHECKCODE].getActionCommand())) { + checkCode(); + } else if (command.equals(actions[TGUIAction.ACT_SIMULATION].getActionCommand())) { + simulation(); + } else if (command.equals(actions[TGUIAction.ACT_VALIDATION].getActionCommand())) { + formalValidation(); + } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_LOTOS_RG].getActionCommand())) { + oneClickLOTOSRG(); + } else if (command.equals(actions[TGUIAction.ACT_ONECLICK_RTLOTOS_RG].getActionCommand())) { + oneClickRTLOTOSRG(); + } else if (command.equals(actions[TGUIAction.ACT_PROJECTION].getActionCommand())) { + projection(); + } else if (command.equals(actions[TGUIAction.ACT_GRAPH_MODIFICATION].getActionCommand())) { + modifyGraph(); + } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION].getActionCommand())) { + bisimulation(); + } else if (command.equals(actions[TGUIAction.ACT_BISIMULATION_CADP].getActionCommand())) { + bisimulationCADP(); + } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_AUT].getActionCommand())) { + seekDeadlockAUT(); + } else if (command.equals(actions[TGUIAction.ACT_DEADLOCK_SEEKER_SAVED_AUT].getActionCommand())) { + seekDeadlockSavedAUT(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUT].getActionCommand())) { + statAUT(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTDIPLODOCUS].getActionCommand())) { + statAUTDiplodocus(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_AUTPROJ].getActionCommand())) { + statAUTProj(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_STAT_SAVED_AUT].getActionCommand())) { + statSavedAUT(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUT].getActionCommand())) { + pmAUT(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_AUTPROJ].getActionCommand())) { + pmAUTProj(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_PM_SAVED_AUT].getActionCommand())) { + pmSavedAUT(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_RTLOTOS].getActionCommand())) { + showFormalSpecification(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_JAVA].getActionCommand())) { + showJavaCode(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES].getActionCommand())) { + showBirdEyesView(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_BIRDEYES_EMB].getActionCommand())) { + showEmbeddedBirdEyesView(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_WAVE].getActionCommand())) { + showWave(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_SUGGESTED_DESIGN].getActionCommand())) { + showSuggestedDesign(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM].getActionCommand())) { + showSimulationTrace(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_SIM_CHRONO].getActionCommand())) { + showSimulationTraceChrono(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_DTADOT].getActionCommand())) { + showDTA(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGDOT].getActionCommand())) { + showRG(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_TLSADOT].getActionCommand())) { + showTLSA(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTDOT].getActionCommand())) { + showRGAut(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_RGAUTPROJDOT].getActionCommand())) { + showRGAutProj(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].getActionCommand())) { + showModifiedAUTDOT(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_RG_DIPLODOCUS].getActionCommand())) { + showRGDiplodocus(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_LOT].getActionCommand())) { + showSavedRTLOTOS(); + } else if (command.equals(actions[TGUIAction.ACT_VIEW_SAVED_DOT].getActionCommand())) { + showGGraph(); + } else if (command.equals(actions[TGUIAction.ACT_SCREEN_CAPTURE].getActionCommand())) { + screenCapture(); + } else if (command.equals(actions[TGUIAction.ACT_TTOOL_WINDOW_CAPTURE].getActionCommand())) { + windowCapture(); + } else if (command.equals(actions[TGUIAction.ACT_DIAGRAM_CAPTURE].getActionCommand())) { + diagramCapture(); + } else if (command.equals(actions[TGUIAction.ACT_SVG_DIAGRAM_CAPTURE].getActionCommand())) { + svgDiagramCapture(); + } else if (command.equals(actions[TGUIAction.ACT_ALL_DIAGRAM_CAPTURE].getActionCommand())) { + allDiagramCapture(); + } else if (command.equals(actions[TGUIAction.ACT_SELECTED_CAPTURE].getActionCommand())) { + selectedCapture(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC].getActionCommand())) { + generateDocumentation(); + } else if (command.equals(actions[TGUIAction.ACT_GEN_DOC_REQ].getActionCommand())) { + generateDocumentationReq(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTRIBUTES].getActionCommand())) { + toggleAttributes(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_DIPLO_ID].getActionCommand())) { + toggleDiploIDs(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_TEPE_ID].getActionCommand())) { + toggleTEPEIDs(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_AVATAR_ID].getActionCommand())) { + toggleAVATARIDs(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_GATES].getActionCommand())) { + toggleGates(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_SYNCHRO].getActionCommand())) { + toggleSynchro(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_CHANNELS].getActionCommand())) { + toggleChannels(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_EVENTS].getActionCommand())) { + toggleEvents(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_REQUESTS].getActionCommand())) { + toggleRequests(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_JAVA].getActionCommand())) { + toggleJava(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_INTERNAL_COMMENT].getActionCommand())) { + toggleInternalComment(); + } else if (command.equals(actions[TGUIAction.ACT_TOGGLE_ATTR].getActionCommand())) { + toggleAttr(); + } else if (command.equals(actions[TGUIAction.ACT_ENHANCE].getActionCommand())) { + enhanceDiagram(); + } else if (command.equals(actions[TGUIAction.ACT_NC].getActionCommand())) { + NC(); + } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_1].getActionCommand())) { + executeUserCommand(ConfigurationTTool.ExternalCommand1Host, ConfigurationTTool.ExternalCommand1); + } else if (command.equals(actions[TGUIAction.EXTERNAL_ACTION_2].getActionCommand())) { + executeUserCommand(ConfigurationTTool.ExternalCommand2Host, ConfigurationTTool.ExternalCommand2); + } else if (command.equals(actions[TGUIAction.CONNECTOR_COMMENT].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMMENT); + } else if (command.equals(actions[TGUIAction.TCD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.UML_NOTE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UML_NOTE); + + // AVATAR actions + } else if (command.equals(actions[TGUIAction.ACT_AVATAR_SIM].getActionCommand())) { + avatarSimulation(); + } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_UPPAAL].getActionCommand())) { + avatarUPPAALVerification(); + } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_PROVERIF].getActionCommand())) { + avatarProVerifVerification(); + } else if (command.equals(actions[TGUIAction.ACT_AVATAR_FV_STATICANALYSIS].getActionCommand())) { + avatarStaticAnalysis(); + } else if (command.equals(actions[TGUIAction.ACT_AVATAR_EXECUTABLE_GENERATION].getActionCommand())) { + avatarExecutableCodeGeneration(); + + // AVATAR BD + } else if (command.equals(actions[TGUIAction.ABD_BLOCK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_BLOCK); + } else if (command.equals(actions[TGUIAction.ABD_CRYPTOBLOCK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_CRYPTOBLOCK); + } else if (command.equals(actions[TGUIAction.ABD_DATATYPE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARBD_DATATYPE); + } else if (command.equals(actions[TGUIAction.ABD_COMPOSITION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_COMPOSITION_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ABD_PORT_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARBD_PORT_CONNECTOR); + + // AVATAR SMD + } else if (command.equals(actions[TGUIAction.ASMD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.ASMD_START].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_START_STATE); + } else if (command.equals(actions[TGUIAction.ASMD_STOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.ASMD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARSMD_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ASMD_SEND_SIGNAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SEND_SIGNAL); + } else if (command.equals(actions[TGUIAction.ASMD_RECEIVE_SIGNAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RECEIVE_SIGNAL); + } else if (command.equals(actions[TGUIAction.ASMD_PARALLEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_PARALLEL); + } else if (command.equals(actions[TGUIAction.ASMD_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_STATE); + } else if (command.equals(actions[TGUIAction.ASMD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_CHOICE); + } else if (command.equals(actions[TGUIAction.ASMD_RANDOM].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RANDOM); + } else if (command.equals(actions[TGUIAction.ASMD_SET_TIMER].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_SET_TIMER); + } else if (command.equals(actions[TGUIAction.ASMD_RESET_TIMER].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_RESET_TIMER); + } else if (command.equals(actions[TGUIAction.ASMD_EXPIRE_TIMER].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARSMD_EXPIRE_TIMER); + + // AVATAR MAD + } else if (command.equals(actions[TGUIAction.AMAD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.AMAD_ASSUMPTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ASSUMPTION); + } else if (command.equals(actions[TGUIAction.AMAD_DIAGRAM_REFERENCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_DIAGRAM_REFERENCE); + } else if (command.equals(actions[TGUIAction.AMAD_ELEMENT_REFERENCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARMAD_ELEMENT_REFERENCE); + } else if (command.equals(actions[TGUIAction.AMAD_COMPOSITION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_COMPOSITION_CONNECTOR); + } else if (command.equals(actions[TGUIAction.AMAD_VERSIONING_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_VERSIONING_CONNECTOR); + } else if (command.equals(actions[TGUIAction.AMAD_IMPACT_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_IMPACT_CONNECTOR); + } else if (command.equals(actions[TGUIAction.AMAD_MEET_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARMAD_MEET_CONNECTOR); + + // AVATAR RD + } else if (command.equals(actions[TGUIAction.ARD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.ARD_REQUIREMENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_REQUIREMENT); + } else if (command.equals(actions[TGUIAction.ARD_PROPERTY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AVATARRD_PROPERTY); + } else if (command.equals(actions[TGUIAction.ARD_DERIVE_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_DERIVE_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ARD_REFINE_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_REFINE_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ARD_VERIFY_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_VERIFY_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ARD_COPY_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COPY_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ARD_COMPOSITION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AVATARRD_COMPOSITION_CONNECTOR); + + // AVATAR PD + } else if (command.equals(actions[TGUIAction.APD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.APD_BLOCK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BLOCK); + } else if (command.equals(actions[TGUIAction.APD_LOGICAL_CONSTRAINT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_LOGICAL_CONSTRAINT); + } else if (command.equals(actions[TGUIAction.APD_TEMPORAL_CONSTRAINT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_TEMPORAL_CONSTRAINT); + } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE); + } else if (command.equals(actions[TGUIAction.APD_SIGNAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_SIGNAL); + } else if (command.equals(actions[TGUIAction.APD_ALIAS].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ALIAS); + } else if (command.equals(actions[TGUIAction.APD_BOOLEQ].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_BOOLEQ); + } else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_SETTING].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_ATTRIBUTE_SETTING); + } else if (command.equals(actions[TGUIAction.APD_PROPERTY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY); + } else if (command.equals(actions[TGUIAction.APD_PROPERTY_RELATION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.APD_PROPERTY_RELATION); + } + + else if (command.equals(actions[TGUIAction.APD_ATTRIBUTE_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_ATTRIBUTE_CONNECTOR); + } else if (command.equals(actions[TGUIAction.APD_SIGNAL_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_SIGNAL_CONNECTOR); + } else if (command.equals(actions[TGUIAction.APD_PROPERTY_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_PROPERTY_CONNECTOR); + } else if (command.equals(actions[TGUIAction.APD_COMPOSITION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.APD_COMPOSITION_CONNECTOR); + + // AVATAR CD + } else if (command.equals(actions[TGUIAction.ACD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.ACD_BLOCK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_BLOCK); + } else if (command.equals(actions[TGUIAction.ACD_ACTOR_STICKMAN].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_STICKMAN); + } else if (command.equals(actions[TGUIAction.ACD_ACTOR_BOX].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ACD_ACTOR_BOX); + + } else if (command.equals(actions[TGUIAction.ACD_ASSOCIATION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_ASSOCIATION_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ACD_COMPOSITION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ACD_COMPOSITION_CONNECTOR); + + // AVATAR AD + } else if (command.equals(actions[TGUIAction.AAD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.AAD_ASSOCIATION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.AAD_ASSOCIATION_CONNECTOR); + } else if (command.equals(actions[TGUIAction.AAD_START_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_START_STATE); + } else if (command.equals(actions[TGUIAction.AAD_STOP_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.AAD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_CHOICE); + } else if (command.equals(actions[TGUIAction.AAD_JUNCTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_JUNCTION); + } else if (command.equals(actions[TGUIAction.AAD_PARALLEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARALLEL); + } else if (command.equals(actions[TGUIAction.AAD_ACTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTION); + } else if (command.equals(actions[TGUIAction.AAD_ACTIVITY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACTIVITY); + } else if (command.equals(actions[TGUIAction.AAD_STOP_FLOW].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_STOP_FLOW); + } else if (command.equals(actions[TGUIAction.AAD_SEND_SIGNAL_ACTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_SEND_SIGNAL_ACTION); + } else if (command.equals(actions[TGUIAction.AAD_ACCEPT_EVENT_ACTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_ACCEPT_EVENT_ACTION); + } else if (command.equals(actions[TGUIAction.AAD_PARTITION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.AAD_PARTITION); + } else if (command.equals(actions[TGUIAction.AAD_ALIGN_PARTITION].getActionCommand())) { + alignPartitions(); - if (!avatarOnly) { + // Avatar DD + } else if (command.equals(actions[TGUIAction.ADD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.ADD_LINK].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ADD_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ADD_CPUNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CPUNODE); + } else if (command.equals(actions[TGUIAction.ADD_BUSNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BUSNODE); + } else if (command.equals(actions[TGUIAction.ADD_BRIDGENODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_BRIDGENODE); + } else if (command.equals(actions[TGUIAction.ADD_TTYNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TTYNODE); + } else if (command.equals(actions[TGUIAction.ADD_RAMNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_RAMNODE); + } else if (command.equals(actions[TGUIAction.ADD_ROMNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ROMNODE); + } else if (command.equals(actions[TGUIAction.ADD_DMANODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_DMANODE); + } else if (command.equals(actions[TGUIAction.ADD_ICUNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ICUNODE); + } else if (command.equals(actions[TGUIAction.ADD_COPROMWMRNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_COPROMWMRNODE); + } else if (command.equals(actions[TGUIAction.ADD_TIMERNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_TIMERNODE); + } else if (command.equals(actions[TGUIAction.ADD_BLOCKARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_ARTIFACT); + } else if (command.equals(actions[TGUIAction.ADD_CHANNELARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ADD_CHANNELARTIFACT); + + } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION); + } else if (command.equals(actions[TGUIAction.TCD_CONNECTOR_ATTRIBUTE].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ATTRIBUTE); + } else if (command.equals(actions[TGUIAction.TCD_ASSOCIATION_NAVIGATION].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ASSOCIATION_NAVIGATION); + } else if (command.equals(actions[TGUIAction.TCD_NEW_TCLASS].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TCLASS); + } else if (command.equals(actions[TGUIAction.TCD_NEW_TOBJECT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TOBJECT); + } else if (command.equals(actions[TGUIAction.TCD_NEW_TDATA].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_TDATA); + } else if (command.equals(actions[TGUIAction.TCD_PARALLEL_OPERATOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PARALLEL_OPERATOR); + } else if (command.equals(actions[TGUIAction.TCD_SYNCHRO_OPERATOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SYNCHRO_OPERATOR); + } else if (command.equals(actions[TGUIAction.TCD_INVOCATION_OPERATOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_INVOCATION_OPERATOR); + } else if (command.equals(actions[TGUIAction.TCD_SEQUENCE_OPERATOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_SEQUENCE_OPERATOR); + } else if (command.equals(actions[TGUIAction.TCD_PREEMPTION_OPERATOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TCD_PREEMPTION_OPERATOR); + } else if (command.equals(actions[TGUIAction.AD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.AD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_AD_DIAGRAM); + } else if (command.equals(actions[TGUIAction.AD_ACTION_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ACTION_STATE); + } else if (command.equals(actions[TGUIAction.AD_ARRAY_GET].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_GET); + } else if (command.equals(actions[TGUIAction.AD_ARRAY_SET].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_ARRAY_SET); + } else if (command.equals(actions[TGUIAction.AD_PARALLEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PARALLEL); + } else if (command.equals(actions[TGUIAction.AD_SEQUENCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_SEQUENCE); + } else if (command.equals(actions[TGUIAction.AD_PREEMPTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_PREEMPTION); + } else if (command.equals(actions[TGUIAction.AD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_CHOICE); + } else if (command.equals(actions[TGUIAction.AD_START].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_START_STATE); + } else if (command.equals(actions[TGUIAction.AD_STOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.AD_JUNCTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_JUNCTION); + } else if (command.equals(actions[TGUIAction.AD_DETERMINISTIC_DELAY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DETERMINISTIC_DELAY); + } else if (command.equals(actions[TGUIAction.AD_NON_DETERMINISTIC_DELAY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_NON_DETERMINISTIC_DELAY); + } else if (command.equals(actions[TGUIAction.AD_DELAY_NON_DETERMINISTIC_DELAY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_DELAY_NON_DETERMINISTIC_DELAY); + } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER); + } else if (command.equals(actions[TGUIAction.AD_TIME_LIMITED_OFFER_WITH_LATENCY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_LIMITED_OFFER_WITH_LATENCY); + } else if (command.equals(actions[TGUIAction.AD_TIME_CAPTURE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TAD_TIME_CAPTURE); + } else if (command.equals(actions[TGUIAction.IOD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.IOD_CONNECTOR].getActionCommand())) { + //TraceManager.addDev("Connector interaction"); + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INTERACTION); + } else if (command.equals(actions[TGUIAction.IOD_START].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_START_STATE); + } else if (command.equals(actions[TGUIAction.IOD_STOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.IOD_PARALLEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PARALLEL); + } else if (command.equals(actions[TGUIAction.IOD_PREEMPTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_PREEMPTION); + } else if (command.equals(actions[TGUIAction.IOD_SEQUENCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_SEQUENCE); + } else if (command.equals(actions[TGUIAction.IOD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_CHOICE); + } else if (command.equals(actions[TGUIAction.IOD_JUNCTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_JUNCTION); + } else if (command.equals(actions[TGUIAction.IOD_REF_SD].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_SD); + } else if (command.equals(actions[TGUIAction.IOD_REF_IOD].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.IOD_REF_IOD); + } else if (command.equals(actions[TGUIAction.SD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.SD_INSTANCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_INSTANCE); + } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_SYNC].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_SYNC_SD); + } else if (command.equals(actions[TGUIAction.SD_CONNECTOR_MESSAGE_ASYNC].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_SD); + } else if (command.equals(actions[TGUIAction.SD_ABSOLUTE_TIME_CONSTRAINT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ABSOLUTE_TIME_CONSTRAINT); + } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_RELATIVE_TIME_CONSTRAINT); + } else if (command.equals(actions[TGUIAction.SD_RELATIVE_TIME_CONSTRAINT_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_RELATIVE_TIME_SD); + } else if (command.equals(actions[TGUIAction.SD_ACTION_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_ACTION_STATE); + } else if (command.equals(actions[TGUIAction.SD_GUARD].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_GUARD); + } else if (command.equals(actions[TGUIAction.SD_TIME_INTERVAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIME_INTERVAL); + } else if (command.equals(actions[TGUIAction.SD_TIMER_SETTING].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_SETTING); + } else if (command.equals(actions[TGUIAction.SD_TIMER_EXPIRATION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_EXPIRATION); + } else if (command.equals(actions[TGUIAction.SD_TIMER_CANCELLATION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_TIMER_CANCELLATION); + } else if (command.equals(actions[TGUIAction.SD_COREGION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.SD_COREGION); + } else if (command.equals(actions[TGUIAction.SD_ALIGN_INSTANCES].getActionCommand())) { + alignInstances(); + } else if (command.equals(actions[TGUIAction.UCD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.UCD_ACTOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTOR); + } else if (command.equals(actions[TGUIAction.UCD_ACTORBOX].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_ACTORBOX); + } else if (command.equals(actions[TGUIAction.UCD_USECASE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_USECASE); + } else if (command.equals(actions[TGUIAction.UCD_BORDER].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.UCD_BORDER); + } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_ACTOR_UC].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_ACTOR_UCD); + } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_INCLUDE].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_INCLUDE_UCD); + } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_EXTEND].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EXTEND_UCD); + } else if (command.equals(actions[TGUIAction.UCD_CONNECTOR_SPECIA].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_SPECIA_UCD); + } else if (command.equals(actions[TGUIAction.TDD_LINK].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_DD); + } else if (command.equals(actions[TGUIAction.TDD_NODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_NODE); + } else if (command.equals(actions[TGUIAction.TDD_ARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TDD_ARTIFACT); + } else if (command.equals(actions[TGUIAction.NCDD_LINK].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_NC); + } else if (command.equals(actions[TGUIAction.NCDD_EQNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_EQNODE); + } else if (command.equals(actions[TGUIAction.NCDD_SWITCHNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_SWITCHNODE); + } else if (command.equals(actions[TGUIAction.NCDD_TRAFFIC_ARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_TRAFFIC_ARTIFACT); + } else if (command.equals(actions[TGUIAction.NCDD_ROUTE_ARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.NCDD_ROUTE_ARTIFACT); + } else if (command.equals(actions[TGUIAction.TMLTD_TASK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_TASK); + } else if (command.equals(actions[TGUIAction.EBRDD_START].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_START_STATE); + } else if (command.equals(actions[TGUIAction.EBRDD_STOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD); + } else if (command.equals(actions[TGUIAction.EBRDD_CONNECTOR_ERC].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_EBRDD_ERC); + } else if (command.equals(actions[TGUIAction.EBRDD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_CHOICE); + } else if (command.equals(actions[TGUIAction.EBRDD_ERC].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERC); + } else if (command.equals(actions[TGUIAction.EBRDD_ESO].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ESO); + } else if (command.equals(actions[TGUIAction.EBRDD_ERB].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ERB); + } else if (command.equals(actions[TGUIAction.EBRDD_SEQUENCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_SEQUENCE); + } else if (command.equals(actions[TGUIAction.EBRDD_ACTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_ACTION); + } else if (command.equals(actions[TGUIAction.EBRDD_FOR_LOOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_FOR_LOOP); + } else if (command.equals(actions[TGUIAction.EBRDD_VARIABLE_DECLARATION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.EBRDD_VARIABLE_DECLARATION); + } else if (command.equals(actions[TGUIAction.TMLAD_START].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_START_STATE); + } else if (command.equals(actions[TGUIAction.TMLAD_STOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.TMLAD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLAD); + } else if (command.equals(actions[TGUIAction.TMLTD_ASSOC].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_ASSOCIATION_NAV); + } else if (command.equals(actions[TGUIAction.TMLTD_CHANNEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_CHANNEL_OPERATOR); + } else if (command.equals(actions[TGUIAction.TMLTD_REQ].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_REQUEST_OPERATOR); + } else if (command.equals(actions[TGUIAction.TMLTD_EVENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLTD_EVENT_OPERATOR); + } else if (command.equals(actions[TGUIAction.TMLTD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TML_COMPOSITION_OPERATOR); + } else if (command.equals(actions[TGUIAction.TMLTD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.TMLCTD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.TMLAD_WRITE_CHANNEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WRITE_CHANNEL); + } else if (command.equals(actions[TGUIAction.TMLAD_SEND_REQUEST].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_REQUEST); + } else if (command.equals(actions[TGUIAction.TMLAD_READ_REQUEST_ARG].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_REQUEST_ARG); + } else if (command.equals(actions[TGUIAction.TMLAD_SEND_EVENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEND_EVENT); + } else if (command.equals(actions[TGUIAction.TMLAD_WAIT_EVENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_WAIT_EVENT); + } else if (command.equals(actions[TGUIAction.TMLAD_NOTIFIED_EVENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_NOTIFIED_EVENT); + } else if (command.equals(actions[TGUIAction.TMLAD_READ_CHANNEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_READ_CHANNEL); + } else if (command.equals(actions[TGUIAction.TMLAD_ACTION_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_ACTION_STATE); + } else if (command.equals(actions[TGUIAction.TMLAD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_CHOICE); + } else if (command.equals(actions[TGUIAction.TMLAD_EXECI].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI); + } else if (command.equals(actions[TGUIAction.TMLAD_EXECI_INTERVAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECI_INTERVAL); + } else if (command.equals(actions[TGUIAction.TMLAD_EXECC].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC); + } else if (command.equals(actions[TGUIAction.TMLAD_EXECC_INTERVAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_EXECC_INTERVAL); + } else if (command.equals(actions[TGUIAction.TMLAD_DELAY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_DELAY); + } else if (command.equals(actions[TGUIAction.TMLAD_INTERVAL_DELAY].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_INTERVAL_DELAY); + } else if (command.equals(actions[TGUIAction.TMLAD_FOR_LOOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_LOOP); + } else if (command.equals(actions[TGUIAction.TMLAD_FOR_STATIC_LOOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_STATIC_LOOP); + } else if (command.equals(actions[TGUIAction.TMLAD_FOR_EVER_LOOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_FOR_EVER_LOOP); + } else if (command.equals(actions[TGUIAction.TMLAD_SEQUENCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SEQUENCE); + } else if (command.equals(actions[TGUIAction.TMLAD_UNORDERED_SEQUENCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_UNORDERED_SEQUENCE); + } else if (command.equals(actions[TGUIAction.TMLAD_SELECT_EVT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_SELECT_EVT); + } else if (command.equals(actions[TGUIAction.TMLAD_RANDOM].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLAD_RANDOM); + } else if (command.equals(actions[TGUIAction.TMLCTD_CCOMPONENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CCOMPONENT); + } else if (command.equals(actions[TGUIAction.TMLCTD_CREMOTECOMPONENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CREMOTECOMPONENT); + } else if (command.equals(actions[TGUIAction.TMLCTD_PCOMPONENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_PCOMPONENT); + } else if (command.equals(actions[TGUIAction.TMLCTD_RCOMPONENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_RCOMPONENT); + } else if (command.equals(actions[TGUIAction.TMLCTD_CPORT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_CPORT); + } else if (command.equals(actions[TGUIAction.TMLCTD_FORK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_FORK); + } else if (command.equals(actions[TGUIAction.TMLCTD_JOIN].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_JOIN); + } else if (command.equals(actions[TGUIAction.TMLCTD_COPORT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCTD_COPORT); + } else if (command.equals(actions[TGUIAction.TMLCTD_PORT_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PORT_TMLC); + + } else if (command.equals(actions[TGUIAction.TMLARCHI_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.TMLARCHI_LINK].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_NODE_TMLARCHI); + } else if (command.equals(actions[TGUIAction.TMLARCHI_CPUNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPUNODE); + } else if (command.equals(actions[TGUIAction.TMLARCHI_BUSNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BUSNODE); + } else if (command.equals(actions[TGUIAction.TMLARCHI_CPNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_CPNODE); + } else if (command.equals(actions[TGUIAction.TMLARCHI_BRIDGENODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_BRIDGENODE); + } else if (command.equals(actions[TGUIAction.TMLARCHI_HWANODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_HWANODE); + } else if (command.equals(actions[TGUIAction.TMLARCHI_MEMORYNODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_MEMORYNODE); + } else if (command.equals(actions[TGUIAction.TMLARCHI_DMANODE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_DMANODE); + } else if (command.equals(actions[TGUIAction.TMLARCHI_ARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_ARTIFACT); + } else if (command.equals(actions[TGUIAction.TMLARCHI_COMMUNICATION_ARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_COMMUNICATION_ARTIFACT); + } else if (command.equals(actions[TGUIAction.TMLARCHI_PORT_ARTIFACT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLARCHI_PORT_ARTIFACT); + + + + // Communication patterns + } else if (command.equals(actions[TGUIAction.TMLCP_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.TMLCP_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_TMLCP); + } else if (command.equals(actions[TGUIAction.TMLCP_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_CHOICE); + } else if (command.equals(actions[TGUIAction.TMLCP_FORK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FORK); + } else if (command.equals(actions[TGUIAction.TMLCP_JOIN].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JOIN); + } else if (command.equals(actions[TGUIAction.TMLCP_REF_CP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_CP); + } else if (command.equals(actions[TGUIAction.TMLCP_REF_SD].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_REF_SD); + } else if (command.equals(actions[TGUIAction.TMLCP_START].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE); + } else if (command.equals(actions[TGUIAction.TMLCP_STOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_STOP_STATE); + } else if (command.equals(actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION); + } else if (command.equals(actions[TGUIAction.TMLSD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.TMLSD_MESSAGE_ASYNC].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_MESSAGE_ASYNC_TMLSD); + } else if (command.equals(actions[TGUIAction.TMLSD_STORAGE_INSTANCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_STORAGE_INSTANCE); + } else if (command.equals(actions[TGUIAction.TMLSD_CONTROLLER_INSTANCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_CONTROLLER_INSTANCE); + } else if (command.equals(actions[TGUIAction.TMLSD_TRANSFER_INSTANCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_TRANSFER_INSTANCE); + } else if (command.equals(actions[TGUIAction.TMLSD_ACTION_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLSD_ACTION_STATE); + + + // Attack Tree Diagrams + } else if (command.equals(actions[TGUIAction.ATD_BLOCK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_BLOCK); + } else if (command.equals(actions[TGUIAction.ATD_ATTACK].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_ATTACK); + } else if (command.equals(actions[TGUIAction.ATD_CONSTRAINT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ATD_CONSTRAINT); + } else if (command.equals(actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_COMPOSITION_CONNECTOR); + } else if (command.equals(actions[TGUIAction.ATD_ATTACK_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.ATD_ATTACK_CONNECTOR); + + // TURTLE-OS + } else if (command.equals(actions[TGUIAction.TOS_TCLASS].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_TCLASS); + } else if (command.equals(actions[TGUIAction.TOS_CONNECTOR_ATTRIBUTE].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ATTRIBUTE); + } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION); + } else if (command.equals(actions[TGUIAction.TOS_ASSOCIATION_NAVIGATION].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOS_CONNECTOR_ASSOCIATION_NAVIGATION); + } else if (command.equals(actions[TGUIAction.TOS_CALL_OPERATOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_CALL_OPERATOR); + } else if (command.equals(actions[TGUIAction.TOS_EVT_OPERATOR].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSCD_EVT_OPERATOR); + } else if (command.equals(actions[TGUIAction.TOSAD_ACTION_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_ACTION_STATE); + } else if (command.equals(actions[TGUIAction.TOSAD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_CHOICE); + } else if (command.equals(actions[TGUIAction.TOSAD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.TOSAD_CONNECTOR); + } else if (command.equals(actions[TGUIAction.TOSAD_INT_TIME_INTERVAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_INT_TIME_INTERVAL); + } else if (command.equals(actions[TGUIAction.TOSAD_JUNCTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_JUNCTION); + } else if (command.equals(actions[TGUIAction.TOSAD_START_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_START_STATE); + } else if (command.equals(actions[TGUIAction.TOSAD_STOP_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.TOSAD_TIME_INTERVAL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TOSAD_TIME_INTERVAL); + + + // Ontologies + } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_DIAGRAM].getActionCommand())) { + generateOntologyForCurrentDiagram(); + } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_SET_OF_DIAGRAMS].getActionCommand())) { + generateOntologyForCurrentSetOfDiagrams(); + } else if (command.equals(actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_ALL_DIAGRAMS].getActionCommand())) { + generateOntologyForAllDiagrams(); + + // Requirement diagrams + } else if (command.equals(actions[TGUIAction.TREQ_REQUIREMENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_REQUIREMENT); + } else if (command.equals(actions[TGUIAction.TREQ_OBSERVER].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_OBSERVER); + } else if (command.equals(actions[TGUIAction.TREQ_EBRDD].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TREQ_EBRDD); + } else if (command.equals(actions[TGUIAction.TREQ_DERIVE].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DERIVE_REQ); + } else if (command.equals(actions[TGUIAction.TREQ_COPY].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COPY_REQ); + } else if (command.equals(actions[TGUIAction.TREQ_COMPOSITION].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_COMPOSITION_REQ); + } else if (command.equals(actions[TGUIAction.TREQ_VERIFY].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_VERIFY_REQ); + } else if (command.equals(actions[TGUIAction.PROSMD_START].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_START_STATE); + } else if (command.equals(actions[TGUIAction.PROSMD_SENDMSG].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SENDMSG); + } else if (command.equals(actions[TGUIAction.PROSMD_GETMSG].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_GETMSG); + } else if (command.equals(actions[TGUIAction.PROSMD_CHOICE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_CHOICE); + } else if (command.equals(actions[TGUIAction.PROSMD_STOP].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STOP_STATE); + } else if (command.equals(actions[TGUIAction.PROSMD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROSMD); + } else if (command.equals(actions[TGUIAction.PROSMD_JUNCTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_JUNCTION); + } else if (command.equals(actions[TGUIAction.PROSMD_SUBMACHINE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_SUBMACHINE); + } else if (command.equals(actions[TGUIAction.PROSMD_ACTION].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_ACTION); + } else if (command.equals(actions[TGUIAction.PROSMD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.PROSMD_PARALLEL].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_PARALLEL); + } else if (command.equals(actions[TGUIAction.PROSMD_STATE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROSMD_STATE); + } else if (command.equals(actions[TGUIAction.PROCSD_COMPONENT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_COMPONENT); + //Delegate ports removed, by Solange + /* + } else if (command.equals(actions[TGUIAction.PROCSD_DELEGATE_PORT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_DELEGATE_PORT); + */ + } else if (command.equals(actions[TGUIAction.PROCSD_IN_PORT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_IN_PORT); + } else if (command.equals(actions[TGUIAction.PROCSD_OUT_PORT].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_OUT_PORT); + } else if (command.equals(actions[TGUIAction.PROCSD_EDIT].getActionCommand())) { + actionOnButton(TGComponentManager.EDIT, -1); + } else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD); + } + else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_PORT_INTERFACE].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_PROCSD_PORT_INTERFACE);} + else if (command.equals(actions[TGUIAction.PROCSD_CONNECTOR_DELEGATE].getActionCommand())) { + actionOnButton(TGComponentManager.CONNECTOR, TGComponentManager.CONNECTOR_DELEGATE_PROCSD); + } else if (command.equals(actions[TGUIAction.PROCSD_INTERFCE].getActionCommand())) { + actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.PROCSD_INTERFACE); + // Command for the action created by Solange. Window appears. + } else if (command.equals(actions[TGUIAction.PRUEBA_1].getActionCommand())) { + JOptionPane.showMessageDialog(frame, "In Port: Color CYAN\nOut Port: Color LIGHT GRAY", "Help color of the ports", JOptionPane.INFORMATION_MESSAGE); + } else if (command.endsWith(".dot")) { + viewAutomata(command); + } +} + +private class PopupListener extends MouseAdapter /* popup menus onto tabs */ { + private MainGUI mgui; + private JPopupMenu menu; + + private JMenuItem rename, remove, moveRight, moveLeft, newDesign, newAnalysis, newDeployment, newRequirement, newTMLDesign, newTMLComponentDesign, newTMLArchi, newProactiveDesign, newTURTLEOSDesign, + newNCDesign, sort, clone, newAttackTree, newAVATARBD, newAVATARRequirement, newMAD, newTMLCP, newTMLMethodo, newAvatarMethodo, newAVATARDD; + private JMenuItem newAVATARAnalysis; + + public PopupListener(MainGUI _mgui) { + mgui = _mgui; + createMenu(); + } + + public void mousePressed(MouseEvent e) { + checkForPopup(e); + } + public void mouseReleased(MouseEvent e) { + checkForPopup(e); + } + public void mouseClicked(MouseEvent e) { + checkForPopup(e); + } + + private void checkForPopup(MouseEvent e) { + if(e.isPopupTrigger()) { + Component c = e.getComponent(); + //TraceManager.addDev("e =" + e + " Component=" + c); + updateMenu(mgui.getCurrentSelectedIndex()); + menu.show(c, e.getX(), e.getY()); + } + } + + private void createMenu() { + rename = createMenuItem("Rename"); + remove = createMenuItem("Remove"); + moveLeft = createMenuItem("Move to the left"); + moveRight = createMenuItem("Move to the right"); + sort = createMenuItem("Sort"); + clone = createMenuItem("Clone"); + newAnalysis = createMenuItem("New TURTLE Analysis"); + newDesign = createMenuItem("New TURTLE Design"); + newDeployment = createMenuItem("New TURTLE Deployment"); + newAttackTree = createMenuItem("New AVATAR Attack Tree"); + newRequirement = createMenuItem("New TURTLE Requirement Diagram"); + newTMLMethodo = createMenuItem("New DIPLODOCUS Methodology"); + + newTMLDesign = createMenuItem("New DIPLODOCUS Design"); + newTMLComponentDesign = createMenuItem("New Component-based DIPLODOCUS Design"); + newTMLArchi = createMenuItem("New DIPLODOCUS Architecture"); + newTMLCP = createMenuItem("New DIPLODOCUS Communication Pattern"); + newProactiveDesign = createMenuItem("New Proactive Design"); + newTURTLEOSDesign = createMenuItem("New TURTLE-OS Design"); + newNCDesign = createMenuItem("New Network Calculus Design"); + newMAD = createMenuItem("New AVATAR Modeling Assumptions Diagram"); + newAVATARRequirement = createMenuItem("New AVATAR Requirement Diagrams"); + newAVATARAnalysis = createMenuItem("New AVATAR Analysis"); + newAVATARBD = createMenuItem("New AVATAR Design"); + newAVATARDD = createMenuItem("New AVATAR Deployment Diagram"); + newAvatarMethodo = createMenuItem("New AVATAR Methodology"); + + menu = new JPopupMenu("Views"); + menu.add(moveLeft); + menu.add(moveRight); + + menu.addSeparator(); + + menu.add(rename); + menu.add(remove); + + menu.addSeparator(); + + menu.add(sort); + + menu.addSeparator(); + + menu.add(clone); + + menu.addSeparator(); + + if (!avatarOnly) { menu.add(newRequirement); menu.add(newAnalysis); @@ -8498,156 +8521,156 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Pe menu.addSeparator(); menu.add(newNCDesign); } - } + } - if (avatarOn) { - menu.addSeparator(); - menu.add(newAvatarMethodo); - menu.add(newAttackTree); - menu.add(newMAD); - menu.add(newAVATARRequirement); - menu.add(newAVATARAnalysis); - menu.add(newAVATARBD); - if (experimentalOn) { - menu.add(newAVATARDD); - } + if (avatarOn) { + menu.addSeparator(); + menu.add(newAvatarMethodo); + menu.add(newAttackTree); + menu.add(newMAD); + menu.add(newAVATARRequirement); + menu.add(newAVATARAnalysis); + menu.add(newAVATARBD); + if (experimentalOn) { + menu.add(newAVATARDD); } - } + } - private JMenuItem createMenuItem(String s) { - JMenuItem item = new JMenuItem(s); - item.setActionCommand(s); - item.addActionListener(listener); - return item; - } - private void updateMenu(int index) { - //TraceManager.addDev("UpdateMenu index=" + index); - if (index < 1) { - moveLeft.setEnabled(false); - } else { - moveLeft.setEnabled(true); - } + private JMenuItem createMenuItem(String s) { + JMenuItem item = new JMenuItem(s); + item.setActionCommand(s); + item.addActionListener(listener); + return item; + } - if (index + 1 < mgui.tabs.size()) { - moveRight.setEnabled(true); - } else { - moveRight.setEnabled(false); - } + private void updateMenu(int index) { + //TraceManager.addDev("UpdateMenu index=" + index); + if (index < 1) { + moveLeft.setEnabled(false); + } else { + moveLeft.setEnabled(true); + } - if (index < 0) { - rename.setEnabled(false); - remove.setEnabled(false); - clone.setEnabled(false); - } else { - rename.setEnabled(true); - remove.setEnabled(true); - clone.setEnabled(true); - } + if (index + 1 < mgui.tabs.size()) { + moveRight.setEnabled(true); + } else { + moveRight.setEnabled(false); + } - if (mgui.mainTabbedPane.getTabCount() < 2) { - sort.setEnabled(false); - } else { - sort.setEnabled(true); - } + if (index < 0) { + rename.setEnabled(false); + remove.setEnabled(false); + clone.setEnabled(false); + } else { + rename.setEnabled(true); + remove.setEnabled(true); + clone.setEnabled(true); } - private Action listener = new AbstractAction() { - - public void actionPerformed(ActionEvent e) { - JMenuItem item = (JMenuItem)e.getSource(); - String ac = item.getActionCommand(); - if(ac.equals("Rename")) { - mgui.requestRenameTab(mainTabbedPane.getSelectedIndex()); - } else if (ac.equals("Remove")) { - mgui.requestRemoveTab(mainTabbedPane.getSelectedIndex()); - } else if (ac.equals("Move to the left")) { - mgui.requestMoveLeftTab(mainTabbedPane.getSelectedIndex()); - } else if (ac.equals("Move to the right")) { - mgui.requestMoveRightTab(mainTabbedPane.getSelectedIndex()); - } else if (ac.equals("Sort")) { - GraphicLib.sortJTabbedPane(mgui.mainTabbedPane, mgui.tabs, 0, mgui.mainTabbedPane.getTabCount()); - mgui.changeMade(null, -1); - } else if (ac.equals("Clone")) { - mgui.cloneTab(mainTabbedPane.getSelectedIndex()); - } else if (ac.equals("New TURTLE Analysis")) { - mgui.newAnalysis(); - } else if (ac.equals("New TURTLE Design")) { - mgui.newDesign(); - } else if (ac.equals("New TURTLE Deployment")) { - mgui.newDeployment(); - } else if (e.getSource() == newAttackTree) { - mgui.newAttackTree(); - } else if (ac.equals("New TURTLE Requirement Diagram")) { - mgui.newRequirement(); - } else if (e.getSource() == newTMLMethodo) { - mgui.newDiplodocusMethodology(); - } else if (e.getSource() == newAvatarMethodo) { - mgui.newAvatarMethodology(); - } else if (ac.equals("New DIPLODOCUS Design")) { - mgui.newTMLDesign(); - } else if (ac.equals("New Component-based DIPLODOCUS Design")) { - mgui.newTMLComponentDesign(); - } else if (e.getSource() == newTMLCP) { - mgui.newTMLCP(); - } else if (ac.equals("New DIPLODOCUS Architecture")) { - mgui.newTMLArchi(); - } else if (ac.equals("New Proactive Design")) { - mgui.newProactiveDesign(); - } else if (ac.equals("New TURTLE-OS Design")) { - mgui.newTURTLEOSDesign(); - } else if (e.getSource() == newNCDesign) { - mgui.newNCDesign(); - } else if (e.getSource() == newAVATARBD) { - mgui.newAvatarBD(); - } else if (e.getSource() == newAVATARDD) { - mgui.newADD(); - } else if (e.getSource() == newAVATARRequirement) { - mgui.newAvatarRequirement(); - } else if (e.getSource() == newMAD) { - mgui.newAvatarMADs(); - } else if (e.getSource() == newAVATARAnalysis) { - mgui.newAvatarAnalysis(); - } + if (mgui.mainTabbedPane.getTabCount() < 2) { + sort.setEnabled(false); + } else { + sort.setEnabled(true); + } + } + + private Action listener = new AbstractAction() { + + public void actionPerformed(ActionEvent e) { + JMenuItem item = (JMenuItem)e.getSource(); + String ac = item.getActionCommand(); + if(ac.equals("Rename")) { + mgui.requestRenameTab(mainTabbedPane.getSelectedIndex()); + } else if (ac.equals("Remove")) { + mgui.requestRemoveTab(mainTabbedPane.getSelectedIndex()); + } else if (ac.equals("Move to the left")) { + mgui.requestMoveLeftTab(mainTabbedPane.getSelectedIndex()); + } else if (ac.equals("Move to the right")) { + mgui.requestMoveRightTab(mainTabbedPane.getSelectedIndex()); + } else if (ac.equals("Sort")) { + GraphicLib.sortJTabbedPane(mgui.mainTabbedPane, mgui.tabs, 0, mgui.mainTabbedPane.getTabCount()); + mgui.changeMade(null, -1); + } else if (ac.equals("Clone")) { + mgui.cloneTab(mainTabbedPane.getSelectedIndex()); + } else if (ac.equals("New TURTLE Analysis")) { + mgui.newAnalysis(); + } else if (ac.equals("New TURTLE Design")) { + mgui.newDesign(); + } else if (ac.equals("New TURTLE Deployment")) { + mgui.newDeployment(); + } else if (e.getSource() == newAttackTree) { + mgui.newAttackTree(); + } else if (ac.equals("New TURTLE Requirement Diagram")) { + mgui.newRequirement(); + } else if (e.getSource() == newTMLMethodo) { + mgui.newDiplodocusMethodology(); + } else if (e.getSource() == newAvatarMethodo) { + mgui.newAvatarMethodology(); + } else if (ac.equals("New DIPLODOCUS Design")) { + mgui.newTMLDesign(); + } else if (ac.equals("New Component-based DIPLODOCUS Design")) { + mgui.newTMLComponentDesign(); + } else if (e.getSource() == newTMLCP) { + mgui.newTMLCP(); + } else if (ac.equals("New DIPLODOCUS Architecture")) { + mgui.newTMLArchi(); + } else if (ac.equals("New Proactive Design")) { + mgui.newProactiveDesign(); + } else if (ac.equals("New TURTLE-OS Design")) { + mgui.newTURTLEOSDesign(); + } else if (e.getSource() == newNCDesign) { + mgui.newNCDesign(); + } else if (e.getSource() == newAVATARBD) { + mgui.newAvatarBD(); + } else if (e.getSource() == newAVATARDD) { + mgui.newADD(); + } else if (e.getSource() == newAVATARRequirement) { + mgui.newAvatarRequirement(); + } else if (e.getSource() == newMAD) { + mgui.newAvatarMADs(); + } else if (e.getSource() == newAVATARAnalysis) { + mgui.newAvatarAnalysis(); } - }; + } + }; - } +} - /** - * This adapter is constructed to handle mouse over component events. - */ - private class MouseHandler extends MouseAdapter { +/** + * This adapter is constructed to handle mouse over component events. + */ +private class MouseHandler extends MouseAdapter { - private JLabel label; + private JLabel label; - /** - * ctor for the adapter. - * @param label the JLabel which will recieve value of the - * Action.LONG_DESCRIPTION key. - */ - public MouseHandler(JLabel label) { - setLabel(label); - } + /** + * ctor for the adapter. + * @param label the JLabel which will recieve value of the + * Action.LONG_DESCRIPTION key. + */ + public MouseHandler(JLabel label) { + setLabel(label); + } - public void setLabel(JLabel label) { - this.label = label; - } + public void setLabel(JLabel label) { + this.label = label; + } - public void mouseEntered(MouseEvent evt) { - if (evt.getSource() instanceof AbstractButton) { - AbstractButton button = (AbstractButton)evt.getSource(); - Action action = button.getAction(); - if (action != null) { - String message = (String)action.getValue(Action.LONG_DESCRIPTION); - label.setText(message); - } + public void mouseEntered(MouseEvent evt) { + if (evt.getSource() instanceof AbstractButton) { + AbstractButton button = (AbstractButton)evt.getSource(); + Action action = button.getAction(); + if (action != null) { + String message = (String)action.getValue(Action.LONG_DESCRIPTION); + label.setText(message); } } } +} } // Class MainGUI diff --git a/src/ui/TURTLEPanel.java b/src/ui/TURTLEPanel.java index ebd90b966bd857f132777b5043c626fda8943680..74d1ea9243d08931de536975399474d63d23d644 100755 --- a/src/ui/TURTLEPanel.java +++ b/src/ui/TURTLEPanel.java @@ -63,44 +63,44 @@ public abstract class TURTLEPanel implements GenericTree { public Vector<TDiagramPanel> panels; protected ChangeListener cl; protected TDiagramPanel tdp; - + public TURTLEPanel(MainGUI _mgui) { mgui = _mgui; toolbars = new Vector(); panels = new Vector(); } - + public abstract void init(); public abstract String saveHeaderInXml(); public abstract String saveTailInXml(); - + public TDiagramPanel panelAt(int index) { return (TDiagramPanel)(panels.elementAt(index)); } - + public boolean hasTDiagramPanel(TDiagramPanel _tdp) { - for(int i=0; i<panels.size(); i++) { - if (panels.get(i) == _tdp) { - return true; - } - } - - return false; - } - - public void getAllCheckableTGComponent(ArrayList<TGComponent> _list) { - for(int i=0; i<panels.size(); i++) { - panelAt(i).getAllCheckableTGComponent(_list); - } - } - + for(int i=0; i<panels.size(); i++) { + if (panels.get(i) == _tdp) { + return true; + } + } + + return false; + } + + public void getAllCheckableTGComponent(ArrayList<TGComponent> _list) { + for(int i=0; i<panels.size(); i++) { + panelAt(i).getAllCheckableTGComponent(_list); + } + } + public void removeElementAt(int index) { panels.removeElementAt(index); toolbars.removeElementAt(index); } - + public StringBuffer saveInXML() { - + TDiagramPanel tdp; StringBuffer sb = new StringBuffer(); sb.append(saveHeaderInXml()); @@ -118,39 +118,39 @@ public abstract class TURTLEPanel implements GenericTree { sb.append(saveTailInXml()); return sb; } - + public StringBuffer saveInXML(int indexOfDiagram) { - + TDiagramPanel tdp; StringBuffer sb = new StringBuffer(); sb.append(saveHeaderInXml()); StringBuffer s; - + tdp = (TDiagramPanel)(panels.elementAt(indexOfDiagram)); s = tdp.saveInXML(); if (s == null) { - System.out.println("Null diagram"); - return null; + System.out.println("Null diagram"); + return null; } sb.append(s); sb.append("\n\n"); - + sb.append(saveTailInXml()); return sb; } - + public String toString() { return "TURTLE Modeling"; } - + public int getChildCount() { return panels.size(); } - + public Object getChild(int index) { return panels.elementAt(index); } - + public int getIndexOfChild(Object child) { int index = panels.indexOf(child); if (index > -1) { @@ -159,10 +159,10 @@ public abstract class TURTLEPanel implements GenericTree { return panels.size(); } - public Vector<TDiagramPanel> getPanels() { - return panels; - } - + public Vector<TDiagramPanel> getPanels() { + return panels; + } + public boolean nameInUse(String s) { for(int i = 0; i<tabbedPane.getTabCount(); i++) { if (tabbedPane.getTitleAt(i).compareTo(s) == 0) { @@ -171,12 +171,12 @@ public abstract class TURTLEPanel implements GenericTree { } return false; } - + public String generateNameIfInUse(String s) { if (!nameInUse(s)) { return s; } - + String tmp; for(int i=0; i<100000; i++) { tmp = s + "_" + i; @@ -184,19 +184,19 @@ public abstract class TURTLEPanel implements GenericTree { return tmp; } } - return null; + return null; } - + public void requestRemoveTab(int index) { if (index >= panels.size()) { return; } - + panels.removeElementAt(index); tabbedPane.remove(index); mgui.changeMade(null, -1); } - + public void requestMoveRightTab(int index) { //System.out.println("Move right"); if (index > panels.size()-2) { @@ -205,7 +205,7 @@ public abstract class TURTLEPanel implements GenericTree { requestMoveTabFromTo(index, index+1); mgui.changeMade(null, -1); } - + public void requestMoveLeftTab(int index) { //System.out.println("Move left"); if (index < 1) { @@ -214,9 +214,9 @@ public abstract class TURTLEPanel implements GenericTree { requestMoveTabFromTo(index, index-1); mgui.changeMade(null, -1); } - + public void requestMoveTabFromTo(int src, int dst) { - + // Get all the properties Component comp = tabbedPane.getComponentAt(src); String label = tabbedPane.getTitleAt(src); @@ -228,13 +228,13 @@ public abstract class TURTLEPanel implements GenericTree { int mnemonicLoc = tabbedPane.getDisplayedMnemonicIndexAt(src); Color fg = tabbedPane.getForegroundAt(src); Color bg = tabbedPane.getBackgroundAt(src); - + // Remove the tab tabbedPane.remove(src); - + // Add a new tab tabbedPane.insertTab(label, icon, comp, tooltip, dst); - + // Restore all properties tabbedPane.setDisabledIconAt(dst, iconDis); tabbedPane.setEnabledAt(dst, enabled); @@ -242,14 +242,14 @@ public abstract class TURTLEPanel implements GenericTree { tabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc); tabbedPane.setForegroundAt(dst, fg); tabbedPane.setBackgroundAt(dst, bg); - + Object o = panels.elementAt(src); panels.removeElementAt(src); panels.insertElementAt((TDiagramPanel)o, dst); - + tabbedPane.setSelectedIndex(dst); } - + public void requestRenameTab(int index) { String s = (String)JOptionPane.showInputDialog(mgui.frame, "TTool modeling:", "Name=", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, tabbedPane.getTitleAt(index)); if ((s != null) && (s.length() > 0)){ @@ -261,101 +261,101 @@ public abstract class TURTLEPanel implements GenericTree { } } } - + public boolean removeEnabled(int index) { return false; } - + public boolean renameEnabled(int index) { return false; } - + public boolean isUCDEnabled() { return false; } - - public boolean isSDEnabled() { + + public boolean isSDEnabled() { return false; } - + public boolean isReqEnabled() { return false; } - + public boolean isProSMDEnabled() { return false; } - - public boolean isATDEnabled() { + + public boolean isATDEnabled() { return false; } - - public boolean isAvatarRDEnabled() { + + public boolean isAvatarRDEnabled() { return false; } - - public boolean isAvatarPDEnabled() { + + public boolean isAvatarPDEnabled() { return false; } - + public boolean isAvatarCDEnabled() { return false; } - + public boolean isAvatarADEnabled() { return false; } - + public boolean isAvatarMADEnabled() { return false; } - - public boolean isDiplodocusMethodologyEnabled() { + + public boolean isDiplodocusMethodologyEnabled() { return false; } - - public MainGUI getMainGUI() { - return mgui; - } - - public void resetAllDIPLOIDs() { - for(int i=0; i<panels.size(); i++) { - panelAt(i).resetAllDIPLOIDs(); - } - } - - public void searchForText(String text, Vector<Object> elements) { - if (panelAt(0) != null) { - String s = saveHeaderInXml().toLowerCase(); - if (s.indexOf(text) >= 0) { - elements.add(this); - /*CheckingError ce = new CheckingError(CheckingError.INFO, "Diagram"); - ce.setTDiagramPanel(this.panelAt(0)); - elements.add(ce);*/ - } - } - - - for(TDiagramPanel tdp: panels) { - tdp.searchForText(text, elements); - } - } - - public boolean supportUppaalFormalVerification() { - return false; - } - - public boolean supportLotosFormalVerification() { - return false; - } - - public boolean supportCPPSimulation() { - return false; - } - - public boolean supportTMLGeneration() { - return false; - } - - + + public MainGUI getMainGUI() { + return mgui; + } + + public void resetAllDIPLOIDs() { + for(int i=0; i<panels.size(); i++) { + panelAt(i).resetAllDIPLOIDs(); + } + } + + public void searchForText(String text, Vector<Object> elements) { + if (panelAt(0) != null) { + String s = saveHeaderInXml().toLowerCase(); + if (s.indexOf(text) >= 0) { + elements.add(this); + /*CheckingError ce = new CheckingError(CheckingError.INFO, "Diagram"); + ce.setTDiagramPanel(this.panelAt(0)); + elements.add(ce);*/ + } + } + + + for(TDiagramPanel tdp: panels) { + tdp.searchForText(text, elements); + } + } + + public boolean supportUppaalFormalVerification() { + return false; + } + + public boolean supportLotosFormalVerification() { + return false; + } + + public boolean supportCPPSimulation() { + return false; + } + + public boolean supportTMLGeneration() { + return false; + } + + } diff --git a/src/ui/atd/AttackTreeDiagramToolbar.java b/src/ui/atd/AttackTreeDiagramToolbar.java index 4bb0a97248f4342df3c219adeac76dec5d06b48d..2343a48afd859a06e9890ec2f8610ed5845f31ee 100755 --- a/src/ui/atd/AttackTreeDiagramToolbar.java +++ b/src/ui/atd/AttackTreeDiagramToolbar.java @@ -1,48 +1,48 @@ /**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille -ludovic.apvrille AT enst.fr - -This software is a computer program whose purpose is to allow the -edition of TURTLE analysis, design and deployment diagrams, to -allow the generation of RT-LOTOS or Java code from this diagram, -and at last to allow the analysis of formal validation traces -obtained from external tools, e.g. RTL from LAAS-CNRS and CADP -from INRIA Rhone-Alpes. - -This software is governed by the CeCILL license under French law and -abiding by the rules of distribution of free software. You can use, -modify and/ or redistribute the software under the terms of the CeCILL -license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". - -As a counterpart to the access to the source code and rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors have only limited -liability. - -In this respect, the user's attention is drawn to the risks associated -with loading, using, modifying and/or developing or reproducing the -software by the user in light of its specific status of free software, -that may mean that it is complicated to manipulate, and that also -therefore means that it is reserved for developers and experienced -professionals having in-depth computer knowledge. Users are therefore -encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. - -The fact that you are presently reading this means that you have had -knowledge of the CeCILL license and that you accept its terms. - -/** - * Class AttackTreeDiagramToolBar - * Implements the toolbar to be used in conjunction with the panel of an attack tree diagram - * Creation: 03/11/2009 - * @version 1.0 03/11/2009 - * @author Ludovic APVRILLE - * @see TClassDiagramPanel - */ + ludovic.apvrille AT enst.fr + + This software is a computer program whose purpose is to allow the + edition of TURTLE analysis, design and deployment diagrams, to + allow the generation of RT-LOTOS or Java code from this diagram, + and at last to allow the analysis of formal validation traces + obtained from external tools, e.g. RTL from LAAS-CNRS and CADP + from INRIA Rhone-Alpes. + + This software is governed by the CeCILL license under French law and + abiding by the rules of distribution of free software. You can use, + modify and/ or redistribute the software under the terms of the CeCILL + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info". + + As a counterpart to the access to the source code and rights to copy, + modify and redistribute granted by the license, users are provided only + with a limited warranty and the software's author, the holder of the + economic rights, and the successive licensors have only limited + liability. + + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + + The fact that you are presently reading this means that you have had + knowledge of the CeCILL license and that you accept its terms. + + /** + * Class AttackTreeDiagramToolBar + * Implements the toolbar to be used in conjunction with the panel of an attack tree diagram + * Creation: 03/11/2009 + * @version 1.0 03/11/2009 + * @author Ludovic APVRILLE + * @see TClassDiagramPanel + */ package ui.atd; @@ -53,85 +53,81 @@ import javax.swing.*; import ui.*; public class AttackTreeDiagramToolbar extends TToolBar { - + public AttackTreeDiagramToolbar(MainGUI _mgui) { super(_mgui); - + } - + protected void setActive(boolean b) { - mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(b); - mgui.actions[TGUIAction.ACT_ZOOM_LESS].setEnabled(b); - - mgui.actions[TGUIAction.ACT_SHOW_ZOOM].setEnabled(b); - mgui.updateZoomInfo(); - + mgui.actions[TGUIAction.ACT_ZOOM_MORE].setEnabled(b); + mgui.actions[TGUIAction.ACT_ZOOM_LESS].setEnabled(b); + + mgui.actions[TGUIAction.ACT_SHOW_ZOOM].setEnabled(b); + mgui.updateZoomInfo(); + mgui.actions[TGUIAction.IOD_EDIT].setEnabled(b); mgui.actions[TGUIAction.UML_NOTE].setEnabled(b); mgui.actions[TGUIAction.CONNECTOR_COMMENT].setEnabled(b); - - mgui.actions[TGUIAction.ATD_BLOCK].setEnabled(b); - mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].setEnabled(b); - + + mgui.actions[TGUIAction.ATD_BLOCK].setEnabled(b); + mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR].setEnabled(b); + mgui.actions[TGUIAction.ATD_ATTACK].setEnabled(b); - - mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR].setEnabled(b); - - mgui.actions[TGUIAction.ATD_CONSTRAINT].setEnabled(b); - - mgui.actions[TGUIAction.ACT_TOGGLE_ATTR].setEnabled(b); - + + mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR].setEnabled(b); + + mgui.actions[TGUIAction.ATD_CONSTRAINT].setEnabled(b); + + mgui.actions[TGUIAction.ACT_TOGGLE_ATTR].setEnabled(b); + mgui.actions[TGUIAction.ACT_MODEL_CHECKING].setEnabled(b); + } - + protected void setButtons() { JButton button; - + button = this.add(mgui.actions[TGUIAction.IOD_EDIT]); button.addMouseListener(mgui.mouseHandler); - + this.addSeparator(); - + button = this.add(mgui.actions[TGUIAction.UML_NOTE]); button.addMouseListener(mgui.mouseHandler); - + button = this.add(mgui.actions[TGUIAction.CONNECTOR_COMMENT]); button.addMouseListener(mgui.mouseHandler); - + this.addSeparator(); - + button = this.add(mgui.actions[TGUIAction.ATD_BLOCK]); button.addMouseListener(mgui.mouseHandler); - - button = this.add(mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR]); + + button = this.add(mgui.actions[TGUIAction.ATD_COMPOSITION_CONNECTOR]); button.addMouseListener(mgui.mouseHandler); - + this.addSeparator(); - + button = this.add(mgui.actions[TGUIAction.ATD_ATTACK]); button.addMouseListener(mgui.mouseHandler); - + this.addSeparator(); - - button = this.add(mgui.actions[TGUIAction.ATD_CONSTRAINT]); - button.addMouseListener(mgui.mouseHandler); - - this.addSeparator(); - - button = this.add(mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR]); + + button = this.add(mgui.actions[TGUIAction.ATD_CONSTRAINT]); button.addMouseListener(mgui.mouseHandler); - - this.addSeparator(); - this.addSeparator(); - - button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_ATTR]); + + this.addSeparator(); + + button = this.add(mgui.actions[TGUIAction.ATD_ATTACK_CONNECTOR]); button.addMouseListener(mgui.mouseHandler); - - - } - -} // Class + this.addSeparator(); + this.addSeparator(); + button = this.add(mgui.actions[TGUIAction.ACT_TOGGLE_ATTR]); + button.addMouseListener(mgui.mouseHandler); + } +} // Class