From d68a3752185b4ef3a23b772b4eb2661d9f41fd8f Mon Sep 17 00:00:00 2001 From: apvrille <ludovic.apvrille@eurecom.fr> Date: Tue, 26 Feb 2019 16:28:49 +0100 Subject: [PATCH] Adding DSE Z3 icon and button. Can be used only with experimental option on --- rundse/build.gradle | 1 + rundse/manifest.txt | 1 + src/main/java/ui/ActionPerformer.java | 4 ++++ src/main/java/ui/JToolBarMainTurtle.java | 9 ++++++++- src/main/java/ui/MainGUI.java | 9 +++++++++ src/main/java/ui/ModeManager.java | 4 ++++ src/main/java/ui/TGUIAction.java | 7 +++++-- src/main/java/ui/util/IconManager.java | 4 +++- src/main/resources/ui/util/dse_z3.png | Bin 0 -> 702 bytes tmltranslator/build.gradle | 1 + tmltranslator/manifest.txt | 1 + 11 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/ui/util/dse_z3.png diff --git a/rundse/build.gradle b/rundse/build.gradle index 49bc159bc6..ed941fa63f 100644 --- a/rundse/build.gradle +++ b/rundse/build.gradle @@ -24,6 +24,7 @@ dependencies { compileOnly name:'batik-dom' compileOnly name:'batik-util' compile name:'jautomata-core' + compile name:'com.microsoft.z3' } jar { diff --git a/rundse/manifest.txt b/rundse/manifest.txt index 18e66503cd..7ae7016992 100755 --- a/rundse/manifest.txt +++ b/rundse/manifest.txt @@ -1 +1,2 @@ Main-Class: RunDSE +Class-Path: com.microsoft.z3.jar diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java index 18d5b9846f..28bb9705c0 100644 --- a/src/main/java/ui/ActionPerformer.java +++ b/src/main/java/ui/ActionPerformer.java @@ -173,6 +173,10 @@ public class ActionPerformer { mgui.generateUPPAAL(); } else if (command.equals(mgui.actions[TGUIAction.ACT_DSE].getActionCommand())) { mgui.dse(); + } else if (command.equals(mgui.actions[TGUIAction.ACT_DSE_Z3].getActionCommand())) { + mgui.dseZ3(); + } else if (command.equals(mgui.actions[TGUIAction.ACT_DSE].getActionCommand())) { + mgui.dse(); } else if (command.equals(mgui.actions[TGUIAction.ACT_AVATAR_MODEL_CHECKER].getActionCommand())) { mgui.avatarModelChecker(); } else if (command.equals(mgui.actions[TGUIAction.ACT_GEN_JAVA].getActionCommand())) { diff --git a/src/main/java/ui/JToolBarMainTurtle.java b/src/main/java/ui/JToolBarMainTurtle.java index c926eb9a10..69dc3d24ac 100644 --- a/src/main/java/ui/JToolBarMainTurtle.java +++ b/src/main/java/ui/JToolBarMainTurtle.java @@ -64,7 +64,7 @@ public class JToolBarMainTurtle extends JToolBar implements ActionListener JButton avatarSimu, avatarFVUPPAAL, avatarFVProVerif, avatarFVStaticAnalysis, avatarCodeGeneration, avatarMC; // Other - JButton genrtlotos, genlotos, genuppaal, gendesign, dse; + JButton genrtlotos, genlotos, genuppaal, gendesign, dse, dseZ3; JButton checkcode, simulation, validation; JButton oneClickrtlotos, onclicklotos, gensystemc, simusystemc, gentml, genC, genjava, nc,externalSearch, internalSearch; @@ -166,6 +166,11 @@ public class JToolBarMainTurtle extends JToolBar implements ActionListener dse = add(mgui.actions[TGUIAction.ACT_DSE]); dse.addMouseListener(mgui.mouseHandler); + if (MainGUI.experimentalOn) { + dseZ3 = add(mgui.actions[TGUIAction.ACT_DSE_Z3]); + dseZ3.addMouseListener(mgui.mouseHandler); + } + addSeparator(); //if (MainGUI.experimentalOn) { @@ -318,6 +323,7 @@ public class JToolBarMainTurtle extends JToolBar implements ActionListener //TraceManager.addDev("Show avatar options with b = " + b); dse.setVisible(!b); + dseZ3.setVisible(!b); avatarSimu.setVisible(b); avatarFVUPPAAL.setVisible(b); @@ -395,6 +401,7 @@ public class JToolBarMainTurtle extends JToolBar implements ActionListener //TraceManager.addDev("Show diplodocus options with b = " + b); dse.setVisible(b); + dseZ3.setVisible(b); avatarSimu.setVisible(!b); avatarFVUPPAAL.setVisible(!b); avatarFVStaticAnalysis.setVisible(!b); diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java index 277aad5242..95e6711332 100644 --- a/src/main/java/ui/MainGUI.java +++ b/src/main/java/ui/MainGUI.java @@ -4793,6 +4793,15 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per dtree.toBeUpdated(); } + public void dseZ3() { + TraceManager.addDev("Design space exploration with Z3"); + /*JDialogDSE jdse = new JDialogDSE(frame, this, "Design Space Exploration", SpecConfigTTool.SystemCCodeDirectory, SpecConfigTTool.TMLCodeDirectory); + // jdse.setSize(600,800); + GraphicLib.centerOnParent(jdse, 700, 800); + jdse.setVisible(true); + dtree.toBeUpdated();*/ + } + public void avatarStaticAnalysis() { TraceManager.addDev("Avatar static analysis invariants"); JDialogInvariantAnalysis jgen = new JDialogInvariantAnalysis(frame, this, "Static analysis: invariants computation"); diff --git a/src/main/java/ui/ModeManager.java b/src/main/java/ui/ModeManager.java index d771aec826..37712ad69d 100644 --- a/src/main/java/ui/ModeManager.java +++ b/src/main/java/ui/ModeManager.java @@ -144,6 +144,7 @@ public class ModeManager { actions[TGUIAction.ACT_GEN_RTLOTOS].setEnabled(true); actions[TGUIAction.ACT_GEN_LOTOS].setEnabled(true); actions[TGUIAction.ACT_DSE].setEnabled(true); + actions[TGUIAction.ACT_DSE_Z3].setEnabled(true); if (mgui.getCurrentTURTLEPanel() instanceof TMLComponentDesignPanel) { actions[TGUIAction.ACT_GEN_UPPAAL].setEnabled(true); } else { @@ -228,6 +229,7 @@ public class ModeManager { actions[TGUIAction.ACT_GEN_RTLOTOS].setEnabled(false); actions[TGUIAction.ACT_GEN_LOTOS].setEnabled(false); actions[TGUIAction.ACT_DSE].setEnabled(false); + actions[TGUIAction.ACT_DSE_Z3].setEnabled(false); actions[TGUIAction.ACT_GEN_JAVA].setEnabled(false); actions[TGUIAction.ACT_SIMU_JAVA].setEnabled(false); actions[TGUIAction.ACT_GEN_DESIGN].setEnabled(false); @@ -252,6 +254,7 @@ public class ModeManager { actions[TGUIAction.ACT_GEN_RTLOTOS].setEnabled(false); actions[TGUIAction.ACT_GEN_LOTOS].setEnabled(false); actions[TGUIAction.ACT_DSE].setEnabled(false); + actions[TGUIAction.ACT_DSE_Z3].setEnabled(false); actions[TGUIAction.ACT_CHECKCODE].setEnabled(false); actions[TGUIAction.ACT_SIMULATION].setEnabled(false); actions[TGUIAction.ACT_VALIDATION].setEnabled(false); @@ -272,6 +275,7 @@ public class ModeManager { actions[TGUIAction.ACT_GEN_RTLOTOS].setEnabled(false); actions[TGUIAction.ACT_GEN_LOTOS].setEnabled(false); actions[TGUIAction.ACT_DSE].setEnabled(false); + actions[TGUIAction.ACT_DSE_Z3].setEnabled(false); actions[TGUIAction.ACT_GEN_JAVA].setEnabled(false); actions[TGUIAction.ACT_SIMU_JAVA].setEnabled(false); actions[TGUIAction.ACT_GEN_DESIGN].setEnabled(false); diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java index 2b4bfd066b..6defdce51b 100644 --- a/src/main/java/ui/TGUIAction.java +++ b/src/main/java/ui/TGUIAction.java @@ -649,6 +649,7 @@ public class TGUIAction extends AbstractAction { public static final int ACT_AVATAR_EXECUTABLE_GENERATION = 340; public static final int ACT_DSE = 434; + public static final int ACT_DSE_Z3 = 516; // Ontologies public static final int ACT_GENERATE_ONTOLOGIES_CURRENT_DIAGRAM = 367; @@ -667,7 +668,7 @@ public class TGUIAction extends AbstractAction { public static final int MOVE_ENABLED = 463; public static final int FIRST_DIAGRAM = 464; - public static final int NB_ACTION = 516; + public static final int NB_ACTION = 517; private static final TAction [] actions = new TAction[NB_ACTION]; @@ -866,7 +867,9 @@ public class TGUIAction extends AbstractAction { actions[ACT_VIEW_PM_AUT] = new TAction("viewpmaut-command", "Power Management Analysis (last AUT graph)", IconManager.imgic28, IconManager.imgic29, "Power Management Analysis (last AUT graph)", "Power Management Analysis on the last generated reachability graph generated in AUT (Aldebaran) format", 0); actions[ACT_VIEW_PM_AUTPROJ] = new TAction("viewpmautproj-command", "Power Management Analysis (last minimized AUT graph)", IconManager.imgic28, IconManager.imgic29, "Power Management Analysis (last minimized AUT graph)", "Power Management Analysis on the last minimized reachability graph in AUT (Aldebaran) format", 0); actions[ACT_VIEW_PM_SAVED_AUT] = new TAction("viewpmsavedautproj-command", "Power Management Analysis (saved AUT graph)", IconManager.imgic28, IconManager.imgic29, "Power Management Analysis (saved AUT graph)", "Power Management Analysis on a graph saved in AUT (Aldebaran) format", 0); - actions[ACT_DSE] = new TAction("auto-dse", "Automated Design Space Exploration", IconManager.imgic89, IconManager.imgic89, "Automated Design Space Exploration", "Find the optimal mapping and security additions automatically",0); + actions[ACT_DSE] = new TAction("auto-dse", "Automated Design Space Exploration", IconManager.imgic89, IconManager.imgic89, "Automated Design Space Exploration", "Find the optimal mapping with brute-force simulations",0); + actions[ACT_DSE_Z3] = new TAction("auto-dse-z3", "Automated Design Space Exploration with Z3", IconManager.imgic89_z3, IconManager.imgic89_z3, "Automated Design Space Exploration with Z3", "Find the optimal mapping with Z3",0); + // AVATAR actions[ACT_AVATAR_SIM] = new TAction("avatar-simu", "Interactive simulation", IconManager.imgic18, IconManager.imgic18, "Interactive simulation", "Interactive simulation of the AVATAR design under edition", '2'); actions[ACT_AVATAR_FV_UPPAAL] = new TAction("avatar-formal-verification-uppaal", "Safety formal verification with UPPAAL (Safety)", IconManager.imgic86, IconManager.imgic86, "Formal verification with UPPAAL (Safety)", "Formal verification with UPPAAL (Safety) of the AVATAR design under edition", '3'); diff --git a/src/main/java/ui/util/IconManager.java b/src/main/java/ui/util/IconManager.java index d856395884..0a0a2f1a82 100755 --- a/src/main/java/ui/util/IconManager.java +++ b/src/main/java/ui/util/IconManager.java @@ -71,7 +71,7 @@ public class IconManager { public static ImageIcon imgic50, imgic51, imgic52, imgic53, imgic54, imgic55, imgic56, imgic57, imgic58, imgic59; public static ImageIcon imgic60, imgic61, imgic62, imgic63, imgic64, imgic65, imgic66, imgic68; public static ImageIcon imgic70, imgic71, imgic72, imgic73, imgic75, imgic76, imgic77, imgic78, imgic79, imgic780; - public static ImageIcon imgic80, imgic82, imgic84, imgic86, imgic88, imgic89; + public static ImageIcon imgic80, imgic82, imgic84, imgic86, imgic88, imgic89, imgic89_z3; public static ImageIcon imgic90, imgic92, imgic94, imgic96, imgic98, imgic99; public static ImageIcon imgic142; @@ -295,6 +295,7 @@ public class IconManager { private static String icon86 = "avatarfvuppaal.png"; private static String icon88 = "avatarfvproverif.png"; private static String icon89 = "dse.png"; + private static String icon89_z3 = "dse_z3.png"; private static String icon90 = "genlotos.gif"; private static String icon92 = "genuppaal.gif"; private static String icon94 = "avatarcodegeneration.gif"; @@ -837,6 +838,7 @@ public class IconManager { imgic86 = getIcon(icon86); imgic88 = getIcon(icon88); imgic89 = getIcon(icon89); + imgic89_z3 = getIcon(icon89_z3); imgic90 = getIcon(icon90); imgic92 = getIcon(icon92); imgic94 = getIcon(icon94); diff --git a/src/main/resources/ui/util/dse_z3.png b/src/main/resources/ui/util/dse_z3.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6a70af8532cb69785839876f2f5e114a1e6ea1 GIT binary patch literal 702 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7*pj^6T^Rm@;DWu&Co?cG za29w(7Bet#3xhBt!>l<H3=9nHC7!;n?2nnG_&H2_!t@v!7?`|0T^vI!PPYcdX9OjR z{I7gpHht#Q?8S<$)tgiJ_ikC!zDU8OYQlmmw(L9GpLt(6JTHr-IwR)P(X;GR9e)-m zuI7!Z=4feaZK`~^>Pr&Oe;#3{FR3vG{`%j!?@r;X`A~T7eR<vf&$a9f0{zD;|EO=e zxn^zH>b-tTgFG3SP8V;|i9VB7tT_F2thC#`J9lhyHb(5rnDvam{jmO}mtP__M({8( zJpcT2*4wh`qgh+`3A=uLvw&^ZvYV`q8<<|OFfrcC+rIx{<v+z@Cx(v4JJc9HRoHB{ z>SuVfscL78TG@L`8)l{ho?#JjadylLSRWkv^=p@J=+(JCYR(KAGkvxtZM+da{d6g- zt(T6U1W#L-joklz@xFmm^cWsh-eXJHQhsC~8$(_7-neuXA<Y)2g{$trS7#96U<qUI zxo|yUlIWs~FQzQgSlZjm>$Ruq+=1lZM}El&G{iHUcw2TpL~AP3Y5zX?MMta8P5PAb z<b(nHe<zWnonA{9mF<o__55@Fv%LE?-yRx%-?w|SL)61}{qrXo6gP<Qu(3u?d%kV^ zc3Wl<w{Oqw^k(^eH@$J|R@JQxlc29vbFJq3MTLeI?Y`@6_0Xb$^S<iAs0ls13|p4} zSoy82inF2d?T_s)N*7g>f<mV<+_`u%*sA00UQUL<(s|!R?4LgU%+0{yIZ3GJPLA1S ztDB4s%mpF`Hr^BDnly2Rm48%i=<h8?rIHLiyFP8<n{{<<|BF+Lf1Q$IywDuI?DbO9 z<lax=FN-s3dTm=75A-VDFHtDJm}vL))4rDzFDF`k7jIM2>Uo@aJf4Apfx*+&&t;uc GLK6TVEIG{p literal 0 HcmV?d00001 diff --git a/tmltranslator/build.gradle b/tmltranslator/build.gradle index 4346731a97..e03e31b7e4 100644 --- a/tmltranslator/build.gradle +++ b/tmltranslator/build.gradle @@ -25,6 +25,7 @@ dependencies { compileOnly name:'batik-util' compile name: 'commons-math3-3.6.1' compile name: 'jautomata-core' + compile name: 'com.microsoft.z3' } jar { diff --git a/tmltranslator/manifest.txt b/tmltranslator/manifest.txt index 9c6dd6c3cc..d0d5ac1d61 100755 --- a/tmltranslator/manifest.txt +++ b/tmltranslator/manifest.txt @@ -1 +1,2 @@ Main-Class: TMLTranslator +Class-Path: com.microsoft.z3.jar -- GitLab