From ed5fe0ae5826a8b7bf6acbdcfb3edd7e20cae560 Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr> Date: Wed, 26 Sep 2018 10:58:04 +0200 Subject: [PATCH] Adding simulation traces for avatar simulations --- src/main/java/ui/GTURTLEModeling.java | 19 ++++++++++++++++- src/main/java/ui/SimulationTrace.java | 6 +++++- .../JFrameAvatarInteractiveSimulation.java | 21 ++++++++++++++++--- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java index c4a5307bf1..3f91f804a9 100644 --- a/src/main/java/ui/GTURTLEModeling.java +++ b/src/main/java/ui/GTURTLEModeling.java @@ -139,6 +139,7 @@ import java.util.List; // AVATAR // AVATAR +//Communication Pattern javaCC parser //Communication Pattern javaCC parser //import compiler.tmlCPparser.*; @@ -299,8 +300,24 @@ public class GTURTLEModeling { } public void addSimulationTrace(SimulationTrace newTrace) { - TraceManager.addDev("Adding new simulation trace " + newTrace); + //TraceManager.addDev("Adding new simulation trace " + newTrace); + if (newTrace.hasFile()) { + // We have to remove identical traces + LinkedList<SimulationTrace> ll = new LinkedList<>(); + for(SimulationTrace trace: simulationTraces) { + if (trace.hasFile()) { + if (trace.getFullPath().compareTo(newTrace.getFullPath()) == 0) { + ll.add(trace); + } + } + } + for(SimulationTrace trace: ll) { + simulationTraces.remove(trace); + } + } + simulationTraces.add(newTrace); + } public void removeSimulationTrace(SimulationTrace oldTrace) { diff --git a/src/main/java/ui/SimulationTrace.java b/src/main/java/ui/SimulationTrace.java index 07c46b87bf..1ec22620d2 100644 --- a/src/main/java/ui/SimulationTrace.java +++ b/src/main/java/ui/SimulationTrace.java @@ -47,7 +47,11 @@ public class SimulationTrace { public static final int TXT_DIPLO = 1; public static final int HTML_DIPLO = 2; - private static String[] TYPES = {"VCD DIPLO", "TXT DIPLO", "HTML DIPLO"}; + public static final int PNG_AVATAR = 3; + public static final int TXT_AVATAR = 4; + public static final int SVG_AVATAR = 5; + + private static String[] TYPES = {"VCD DIPLO", "TXT DIPLO", "HTML DIPLO", "PNG AVATAR", "TXT AVATAR", "SVG AVATAR"}; public SimulationTrace(String name, int type) { this(name, type, null); diff --git a/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java b/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java index 7e38b4192f..3095b7498f 100755 --- a/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java +++ b/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java @@ -1803,10 +1803,16 @@ public class JFrameAvatarInteractiveSimulation extends JFrame implements AvatarS return; } - JOptionPane.showMessageDialog(this, + /*JOptionPane.showMessageDialog(this, "Simulation trace was saved in " + fileName, "Error", - JOptionPane.INFORMATION_MESSAGE); + JOptionPane.INFORMATION_MESSAGE);*/ + + String shortFileName; + File f = new File(fileName); + shortFileName = f.getName(); + SimulationTrace st = new SimulationTrace(shortFileName, SimulationTrace.TXT_AVATAR, fileName); + mgui.addSimulationTrace(st); //ass.printExecutedTransactions(); } @@ -1853,6 +1859,12 @@ public class JFrameAvatarInteractiveSimulation extends JFrame implements AvatarS gen.saveInSVG(sdpanel, fileName); //newSVGSave(fileName); + String shortFileName; + File f = new File(fileName); + shortFileName = f.getName(); + SimulationTrace st = new SimulationTrace(shortFileName, SimulationTrace.SVG_AVATAR, fileName); + mgui.addSimulationTrace(st); + /*StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" standalone=\"no\"?>\n"); sb.append("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n"); @@ -1950,7 +1962,10 @@ public class JFrameAvatarInteractiveSimulation extends JFrame implements AvatarS file = new File(filePath); - mgui.writeImageCapture(bi, file, true); + mgui.writeImageCapture(bi, file, false); + + SimulationTrace st = new SimulationTrace(file.getName(), SimulationTrace.PNG_AVATAR, file.getAbsolutePath()); + mgui.addSimulationTrace(st); } public void deleteAsyncMsg() { -- GitLab