diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java index c4a5307bf1b0b783dc5655b65e2240cc1cbd0a68..3f91f804a973a14e20e7015fd3e6acdb31e276e3 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 07c46b87bfdf82d41c98543d4a10f4238b17104d..1ec22620d2271efaabdc6fb2b9229b86983fd74a 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 7e38b4192f9f4ff384f876a89ed090321687bed4..3095b7498f41cd4f4b80d91b1e550cdba80acd6f 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() {