From c0760ff590c63cb89839e2ce81e633b1cabdc987 Mon Sep 17 00:00:00 2001 From: maysam zoor <maysam_zoor@hotmail.com> Date: Mon, 23 Mar 2020 22:24:48 +0100 Subject: [PATCH] add progress bar --- .../DirectedGraphTranslator.java | 310 +++++++++++++++--- .../JFrameCompareLatencyDetail.java | 271 +++++++++++---- .../JFrameLatencyDetailedAnalysis.java | 59 +++- .../latencyDetailedAnalysisMain.java | 127 +++---- .../CompareLatencyInSimulationTraces.java | 84 +++-- 5 files changed, 633 insertions(+), 218 deletions(-) diff --git a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java index 09674e578c..f454ef771a 100644 --- a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java +++ b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java @@ -66,7 +66,9 @@ import javax.swing.DefaultListModel; import javax.swing.JApplet; import javax.swing.JFrame; import javax.swing.JList; +import javax.swing.JProgressBar; import javax.swing.JScrollPane; +import javax.swing.SwingUtilities; import org.apache.commons.math3.geometry.spherical.twod.Vertex; import org.apache.derby.tools.sysinfo; @@ -157,11 +159,13 @@ public class DirectedGraphTranslator extends JApplet { // private TMLArchiPanel tmlap; // USed to retrieve the currently opened // architecture panel // private TMLMapping<TGComponent> tmap; - private TMLComponentDesignPanel tmlcdp; + // private TMLComponentDesignPanel tmlcdp; private TMLTask task, task1, task2; protected TMLActivity activity; + int nodeNbProgressBar = 0; + int nodeNb = 0; // List<HwNode> path; @@ -180,7 +184,8 @@ public class DirectedGraphTranslator extends JApplet { } private static final Dimension DEFAULT_SIZE = new Dimension(530, 320); - private final List<TMLComponentDesignPanel> cpanels; + private List<TMLComponentDesignPanel> cpanels; + private final List<HwLink> links; private final TMLMapping<TGComponent> tmap; private final HashMap<String, String> addedEdges = new HashMap<String, String>(); @@ -247,18 +252,37 @@ public class DirectedGraphTranslator extends JApplet { Vector<SimulationTransaction> relatedsimTraces = new Vector<SimulationTransaction>(); Vector<SimulationTransaction> delayDueTosimTraces = new Vector<SimulationTransaction>(); + JFrameLatencyDetailedAnalysis frameLatencyDetailedAnalysis; + JFrameCompareLatencyDetail frameCompareLatencyDetail; + int callingFrame; + int nbOfNodes = 0; + HashMap<String, ArrayList<ArrayList<Integer>>> runnableTimePerDevice = new HashMap<String, ArrayList<ArrayList<Integer>>>(); @SuppressWarnings("deprecation") - public DirectedGraphTranslator(TMLMapping<TGComponent> tmap1, List<TMLComponentDesignPanel> cpanels1) { + public DirectedGraphTranslator(JFrameLatencyDetailedAnalysis jFrameLatencyDetailedAnalysis, JFrameCompareLatencyDetail jframeCompareLatencyDetail, + TMLMapping<TGComponent> tmap1, List<TMLComponentDesignPanel> cpanels1, int i) { tmap = tmap1; - cpanels = cpanels1; + setCpanels(cpanels1); links = tmap.getTMLArchitecture().getHwLinks(); - tmlcdp = cpanels.get(0); + // tmlcdp = getCpanels().get(0); + + callingFrame = i; + + if (callingFrame == 0) + + { + frameLatencyDetailedAnalysis = jFrameLatencyDetailedAnalysis; + } else if (callingFrame == 1) { + frameCompareLatencyDetail = jframeCompareLatencyDetail; + // frameCompareLatencyDetail.pack(); + // frameCompareLatencyDetail.revalidate(); + // frameCompareLatencyDetail.repaint(); + } DrawDirectedGraph(); /* @@ -287,6 +311,118 @@ public class DirectedGraphTranslator extends JApplet { // The main function to add the vertices and edges according to the model private void DrawDirectedGraph() { + nodeNbProgressBar = 0; + + nodeNbProgressBar = tmap.getArch().getBUSs().size() + tmap.getArch().getHwBridge().size() + tmap.getArch().getHwA().size() + + tmap.getArch().getMemories().size() + tmap.getArch().getCPUs().size(); + + for (HwA node : tmap.getArch().getHwA()) { + + if (tmap.getLisMappedTasks(node).size() > 0) { + + nodeNbProgressBar = tmap.getLisMappedTasks(node).size() + nodeNbProgressBar; + + for (TMLTask task : tmap.getLisMappedTasks(node)) { + + nodeNbProgressBar = task.getActivityDiagram().nElements() + nodeNbProgressBar; + + } + + } + + } + + for (HwNode node : tmap.getArch().getCPUs()) { + + if (tmap.getLisMappedTasks(node).size() > 0) { + + nodeNbProgressBar = tmap.getLisMappedTasks(node).size() + nodeNbProgressBar; + + for (TMLTask task : tmap.getLisMappedTasks(node)) { + + nodeNbProgressBar = task.getActivityDiagram().nElements() + nodeNbProgressBar; + + } + + } + } + + HashSet<String> mappedcomm = new HashSet<String>(); + + for (HwNode node : tmap.getArch().getBUSs()) { + + if (tmap.getLisMappedChannels(node).size() > 0) { + for (TMLElement entry : tmap.getLisMappedChannels(node)) { + + if (!mappedcomm.contains(entry.getName())) { + mappedcomm.add(entry.getName()); + nodeNbProgressBar++; + + } + + } + } + + } + + for (HwNode node : tmap.getArch().getHwBridge()) { + + if (tmap.getLisMappedChannels(node).size() > 0) { + + for (TMLElement entry : tmap.getLisMappedChannels(node)) { + if (!mappedcomm.contains(entry.getName())) { + mappedcomm.add(entry.getName()); + nodeNbProgressBar++; + + } + + } + } + + } + + for (HwNode node : tmap.getArch().getMemories()) { + + if (tmap.getLisMappedChannels(node).size() > 0) { + for (TMLElement entry : tmap.getLisMappedChannels(node)) { + if (!mappedcomm.contains(entry.getName())) { + mappedcomm.add(entry.getName()); + nodeNbProgressBar++; + + } + + } + + } + + } + + for (TMLChannel ch : tmap.getTMLModeling().getChannels()) { + + if (!mappedcomm.contains(ch.getName())) { + mappedcomm.add(ch.getName()); + + nodeNbProgressBar++; + + } + + } + + if (callingFrame == 0) + + { + frameLatencyDetailedAnalysis.pbar.setMaximum(nodeNbProgressBar); + frameLatencyDetailedAnalysis.pbar.setMinimum(0); + + } + if (callingFrame == 1) + + { + frameCompareLatencyDetail.pbar.setMaximum(nodeNbProgressBar); + frameCompareLatencyDetail.pbar.setMinimum(0); + } + + nbOfNodes = 0; HashMap<String, HashSet<String>> cpuTasks; HashMap<String, HashSet<TMLElement>> buschannel = new HashMap<String, HashSet<TMLElement>>(); @@ -300,7 +436,12 @@ public class DirectedGraphTranslator extends JApplet { for (HwNode node : tmap.getArch().getBUSs()) { - g.addVertex(node.getName()); + if (!g.containsVertex(node.getName())) { + g.addVertex(node.getName()); + + updatemainBar("getBUSs"); + + } if (tmap.getLisMappedChannels(node).size() > 0) { buschannel.put(node.getName(), tmap.getLisMappedChannels(node)); @@ -311,7 +452,12 @@ public class DirectedGraphTranslator extends JApplet { for (HwNode node : tmap.getArch().getHwBridge()) { - g.addVertex(node.getName()); + if (!g.containsVertex(node.getName())) { + g.addVertex(node.getName()); + + updatemainBar("getHwBridge"); + + } if (tmap.getLisMappedChannels(node).size() > 0) { bridgechannel.put(node.getName(), tmap.getLisMappedChannels(node)); @@ -322,7 +468,10 @@ public class DirectedGraphTranslator extends JApplet { for (HwA node : tmap.getArch().getHwA()) { + cpuTask = new HashMap<String, HashSet<TMLTask>>(); + if (tmap.getLisMappedTasks(node).size() > 0) { + cpuTask.put(node.getName(), tmap.getLisMappedTasks(node)); } @@ -338,7 +487,12 @@ public class DirectedGraphTranslator extends JApplet { for (HwNode node : tmap.getArch().getMemories()) { - g.addVertex(node.getName()); + if (!g.containsVertex(node.getName())) { + g.addVertex(node.getName()); + + updatemainBar("getMemories"); + + } if (tmap.getLisMappedChannels(node).size() > 0) { memorychannel.put(node.getName(), tmap.getLisMappedChannels(node)); @@ -354,7 +508,14 @@ public class DirectedGraphTranslator extends JApplet { for (TMLElement busCh : busChList) { String ChannelName = busCh.getName(); - g.addVertex(ChannelName); + + if (!g.containsVertex(ChannelName)) { + g.addVertex(ChannelName); + + updatemainBar("ChannelName"); + + } + g.addEdge(busName, ChannelName); TMLChannel tmlch = (TMLChannel) busCh; @@ -373,7 +534,13 @@ public class DirectedGraphTranslator extends JApplet { for (TMLElement busCh : busChList) { String ChannelName = busCh.getName(); - g.addVertex(ChannelName); + if (!g.containsVertex(ChannelName)) { + g.addVertex(ChannelName); + + updatemainBar("ChannelName"); + + } + g.addEdge(busName, ChannelName); } @@ -386,7 +553,13 @@ public class DirectedGraphTranslator extends JApplet { for (TMLElement busCh : busChList) { String ChannelName = busCh.getName(); - g.addVertex(ChannelName); + if (!g.containsVertex(ChannelName)) { + g.addVertex(ChannelName); + + updatemainBar("ChannelName"); + + } + g.addEdge(busName, ChannelName); } @@ -399,6 +572,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.vertexSet().contains(ch.getName())) { g.addVertex(ch.getName()); + updatemainBar(ch.getName()); } if (!pathNodes.isEmpty()) { @@ -427,7 +601,9 @@ public class DirectedGraphTranslator extends JApplet { SummaryCommMapping = tmap.getSummaryCommMapping(); for (HwNode node : tmap.getArch().getCPUs()) { + cpuTask = new HashMap<String, HashSet<TMLTask>>(); if (tmap.getLisMappedTasks(node).size() > 0) { + cpuTask.put(node.getName(), tmap.getLisMappedTasks(node)); } @@ -510,6 +686,22 @@ public class DirectedGraphTranslator extends JApplet { // draw the vertices and edges for the tasks mapped to the CPUs + private void updatemainBar(String string) { + + nbOfNodes++; + + if (callingFrame == 0) + + { + frameLatencyDetailedAnalysis.updateBar(nbOfNodes); + } else if (callingFrame == 1) { + + frameCompareLatencyDetail.updateBar(nbOfNodes); + + } + + } + public HashMap<String, HashSet<String>> getCPUTaskMap(HashMap<String, HashSet<TMLTask>> cpuTask) { HashMap<String, HashSet<String>> cpuTaskMap = new HashMap<String, HashSet<String>>(); @@ -600,14 +792,14 @@ public class DirectedGraphTranslator extends JApplet { for (TMLTask task : value) { - for (TMLComponentDesignPanel dpPanel : cpanels) { - String[] taskpanel = task.getName().split("__"); - - if (dpPanel.getNameOfTab().equals(taskpanel[0])) { - tmlcdp = dpPanel; - } - - } + /* + * for (TMLComponentDesignPanel dpPanel : getCpanels()) { String[] taskpanel = + * task.getName().split("__"); + * + * if (dpPanel.getNameOfTab().equals(taskpanel[0])) { tmlcdp = dpPanel; } + * + * } + */ // get the names and params of send events per task and their corresponding wait // events for (TMLSendEvent sendEvent : task.getSendEvents()) { @@ -697,8 +889,15 @@ public class DirectedGraphTranslator extends JApplet { } // add the name of the task as a vertex - g.addVertex(key); - g.addVertex(task.getName()); + + if (!g.vertexSet().contains(key)) { + g.addVertex(key); + updatemainBar(key); + } + if (!g.vertexSet().contains(task.getName())) { + g.addVertex(task.getName()); + updatemainBar(task.getName()); + } g.addEdge(key, task.getName()); @@ -747,6 +946,8 @@ public class DirectedGraphTranslator extends JApplet { } + updatemainBar(eventName); + if (currentElement.getNexts().size() > 1) { for (TMLActivityElement ae : currentElement.getNexts()) { multiNexts.add(ae); @@ -767,6 +968,7 @@ public class DirectedGraphTranslator extends JApplet { + activity.getPrevious(currentElement).getID(); g.addVertex(taskEndName); + // allTasks.add(taskEndName); if (!(activity.getPrevious(currentElement).getReferenceObject() instanceof TMLADSequence)) { @@ -1961,33 +2163,30 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : transFile1) { Boolean onPath = false; - // if (Integer.valueOf(st.startTime) >= times1.get(i) && Integer.valueOf(st.startTime) < times2.get(i)) { + // if (Integer.valueOf(st.startTime) >= times1.get(i) && + // Integer.valueOf(st.startTime) < times2.get(i)) { - - - - if (!(Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) < times1.get(i)) - && !(Integer.valueOf(st.startTime) > times2.get(i) && Integer.valueOf(st.endTime) > times2.get(i))) { + if (!(Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) < times1.get(i)) + && !(Integer.valueOf(st.startTime) > times2.get(i) && Integer.valueOf(st.endTime) > times2.get(i))) { - - // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) < maxTime) { + // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) + // < maxTime) { - if (Integer.valueOf(st.endTime) > times2.get(i)) { - st.endTime = times2.get(i).toString(); - st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(st.startTime)).toString(); - } - - - if (Integer.valueOf(st.startTime) < times1.get(i)) { - st.startTime = Integer.valueOf(times1.get(i)).toString(); - st.length = Integer.valueOf(Integer.valueOf(st.endTime)-Integer.valueOf(times1.get(i))).toString(); - } - - if (Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) > times2.get(i)) { - st.startTime = Integer.valueOf(times1.get(i)).toString(); - st.endTime = times2.get(i).toString(); - st.length = Integer.valueOf(Integer.valueOf(times2.get(i))-Integer.valueOf(times1.get(i))).toString(); - } + if (Integer.valueOf(st.endTime) > times2.get(i)) { + st.endTime = times2.get(i).toString(); + st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(st.startTime)).toString(); + } + + if (Integer.valueOf(st.startTime) < times1.get(i)) { + st.startTime = Integer.valueOf(times1.get(i)).toString(); + st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(times1.get(i))).toString(); + } + + if (Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) > times2.get(i)) { + st.startTime = Integer.valueOf(times1.get(i)).toString(); + st.endTime = times2.get(i).toString(); + st.length = Integer.valueOf(Integer.valueOf(times2.get(i)) - Integer.valueOf(times1.get(i))).toString(); + } String taskname = ""; @@ -2219,27 +2418,24 @@ public class DirectedGraphTranslator extends JApplet { if (!(Integer.valueOf(st.startTime) < minTime && Integer.valueOf(st.endTime) < minTime) && !(Integer.valueOf(st.startTime) > maxTime && Integer.valueOf(st.endTime) > maxTime)) { - - // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) < maxTime) { + // if (Integer.valueOf(st.startTime) >= minTime && Integer.valueOf(st.startTime) + // < maxTime) { if (Integer.valueOf(st.endTime) > maxTime) { st.endTime = Integer.valueOf(maxTime).toString(); st.length = Integer.valueOf(Integer.valueOf(maxTime) - Integer.valueOf(st.startTime)).toString(); } - + if (Integer.valueOf(st.startTime) < minTime) { st.startTime = Integer.valueOf(minTime).toString(); - st.length = Integer.valueOf(Integer.valueOf(st.endTime)-Integer.valueOf(minTime)).toString(); + st.length = Integer.valueOf(Integer.valueOf(st.endTime) - Integer.valueOf(minTime)).toString(); } - + if (Integer.valueOf(st.startTime) < minTime && Integer.valueOf(st.endTime) > maxTime) { st.startTime = Integer.valueOf(minTime).toString(); st.endTime = Integer.valueOf(maxTime).toString(); st.length = Integer.valueOf(Integer.valueOf(maxTime) - Integer.valueOf(minTime)).toString(); } - - - String taskname = ""; @@ -2527,4 +2723,12 @@ public class DirectedGraphTranslator extends JApplet { } + public List<TMLComponentDesignPanel> getCpanels() { + return cpanels; + } + + public void setCpanels(List<TMLComponentDesignPanel> cpanels) { + this.cpanels = cpanels; + } + } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java index 85dfd22c64..496e996d21 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java @@ -7,7 +7,6 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; -import java.awt.GridLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -25,35 +24,32 @@ import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.border.LineBorder; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; import javax.swing.filechooser.FileNameExtensionFilter; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import javax.xml.xpath.XPathExpressionException; -import org.jgrapht.io.ExportException; import org.xml.sax.SAXException; import common.ConfigurationTTool; import myutil.GraphicLib; import myutil.ScrolledJTextArea; -import myutil.TraceManager; import tmltranslator.TMLMapping; import ui.ColorManager; import ui.MainGUI; import ui.SimulationTrace; import ui.TGComponent; import ui.TMLComponentDesignPanel; -import ui.interactivesimulation.JFrameCompareSimulationTraces; import ui.interactivesimulation.SimulationTransaction; import ui.interactivesimulation.SimulationTransactionParser; @@ -62,9 +58,8 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener protected JButton buttonClose, buttonShowDGraph1, buttonShowDGraph2, buttonDetailedAnalysis, buttonCompareInDetails; public LatencyDetailedAnalysisActions[] actions; private DirectedGraphTranslator dgraph1, dgraph2; - - private JPanel loadxml, commandTab, jp05, graphAnalysisResult, jp03, jp04, loadmodel; + private JPanel loadxml, commandTab, jp05, graphAnalysisResult, jp03, jp04, loadmodel, progressBarpanel; protected JTextArea jta; protected JScrollPane jsp; private JTabbedPane resultTab; @@ -88,6 +83,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener private File file1, file2; private JFileChooser fc, fc2; private boolean visible; + public Thread t, t1; private Object[][] tableData2MinMax, tableData1MinMax, tableData2, tableData = null; @@ -95,25 +91,33 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener private MainGUI mainGUI; private latencyDetailedAnalysisMain latencyDetailedAnalysisMain; - //private DirectedGraphTranslator dgraph; - public JFrameCompareLatencyDetail(latencyDetailedAnalysisMain latencyDetailedAnaly, MainGUI mgui , final DirectedGraphTranslator graph1, final Vector<String> checkedTransactionsFile1, - final SimulationTrace selectedST1, boolean b) { + private JFrameLatencyDetailedAnalysis jFrameLatencyDetailedAnalysis; + private JFrameCompareLatencyDetail jFrameCompareLatencyDetail; + + JProgressBar pbar; + JLabel pBarLabel; + TMLMapping<TGComponent> map; + List<TMLComponentDesignPanel> cpanels; + public DirectedGraphTranslator dgraph; + + // private DirectedGraphTranslator dgraph; + public JFrameCompareLatencyDetail(latencyDetailedAnalysisMain latencyDetailedAnaly, MainGUI mgui, final Vector<String> checkedTransactionsFile1, + TMLMapping<TGComponent> map1, List<TMLComponentDesignPanel> cpanels1, final SimulationTrace selectedST1, boolean b) { super("Latency Detailed Comparision"); this.setVisible(b); - dgraph1 = graph1; - mainGUI=mgui; - latencyDetailedAnalysisMain=latencyDetailedAnaly; + + mainGUI = mgui; + map = map1; + cpanels = cpanels1; + latencyDetailedAnalysisMain = latencyDetailedAnaly; // dgraph2 = graph2; file1 = new File(selectedST1.getFullPath()); // file2 = new File(selectedST2.getFullPath()); - visible=b; + visible = b; setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - // System.out.println(graph1.getTmap()); - // System.out.println(graph2.getTmap()); - initActions(); GridBagLayout gridbagmain = new GridBagLayout(); @@ -142,7 +146,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener jp.add(buttonDetailedAnalysis); jp.add(buttonCompareInDetails); - buttonShowDGraph1.setEnabled(true); + buttonShowDGraph1.setEnabled(false); buttonShowDGraph2.setEnabled(false); buttonDetailedAnalysis.setEnabled(false); buttonCompareInDetails.setEnabled(false); @@ -188,7 +192,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener browse = new JButton("Browse"); browse.addActionListener(this); - + browse.setEnabled(false); c02.gridx = 2; c02.gridy = 0; c02.weightx = 1; @@ -271,6 +275,41 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener loadxml.add(tasksDropDownCombo4, c01); + gridbag01 = new GridBagLayout(); + c01 = new GridBagConstraints(); + progressBarpanel = new JPanel(gridbag01); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 0; + c01.gridy = 0; + // c01.fill = GridBagConstraints.BOTH; + + pBarLabel = new JLabel("Progress of Graph Generation", JLabel.LEFT); + progressBarpanel.add(pBarLabel, c01); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 1; + c01.gridy = 0; + + pbar = new JProgressBar(); + pbar.setForeground(Color.GREEN); + + progressBarpanel.add(pbar, c01); + + mainConstraint.gridheight = 1; + mainConstraint.gridx = 0; + mainConstraint.gridy = 5; + mainConstraint.ipady = 40; + mainConstraint.fill = GridBagConstraints.HORIZONTAL; + + framePanel.add(progressBarpanel, mainConstraint); + graphAnalysisResult = new JPanel(new BorderLayout()); graphAnalysisResult.setBorder(new javax.swing.border.TitledBorder("Latency Detailed Analysis ")); mainConstraint.gridheight = 1; @@ -279,7 +318,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener mainConstraint.weighty = 1.0; mainConstraint.weightx = 1.0; mainConstraint.gridx = 0; - mainConstraint.gridy = 3; + mainConstraint.gridy = 4; mainConstraint.ipady = 200; mainConstraint.gridwidth = 1; // end row // mainConstraint.gridwidth = GridBagConstraints.REMAINDER; // end row @@ -386,7 +425,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener mainConstraint.ipady = 200; mainConstraint.gridx = 0; - mainConstraint.gridy = 4; + mainConstraint.gridy = 6; mainConstraint.fill = GridBagConstraints.HORIZONTAL; @@ -402,7 +441,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener jta.setEditable(false); jta.setMargin(new Insets(10, 10, 10, 10)); jta.setTabSize(3); - jta.append("Click on \"Connect to simulator\" to start the remote simulator and connect to it\n"); + jta.append("Generating the corresponding Directed Graph \nPlease wait...\n"); Font f = new Font("Courrier", Font.BOLD, 12); jta.setFont(f); jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); @@ -420,6 +459,35 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener this.pack(); this.setVisible(b); + + t = new Thread() { + public void run() { + generateDirectedGraph(map, cpanels); + + } + + }; + + t.start(); + } + + private void generateDirectedGraph(TMLMapping<TGComponent> map, List<TMLComponentDesignPanel> cpanels) { + try { + dgraph = new DirectedGraphTranslator(jFrameLatencyDetailedAnalysis, this, map, cpanels, 1); + dgraph1 = dgraph; + jta.append("A Directed Graph with " + dgraph.getGraphsize() + " vertices" + dgraph.getGraphEdgeSet() + "Edges was generated.\n"); + // buttonSaveDGraph.setEnabled(true); + buttonShowDGraph1.setEnabled(true); + jta.append("Browse the second simulation trace to generate the second graph \n"); + browse.setEnabled(true); + + } catch (Exception e) { + jta.append("An Error has Accord \n"); + jta.append(e.getMessage() + "\n"); + // buttonSaveDGraph.setEnabled(false); + buttonShowDGraph1.setEnabled(false); + } + } private void initActions() { @@ -432,6 +500,63 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener } + private void generateDirectedGraph2(TMLMapping<TGComponent> map, List<TMLComponentDesignPanel> cpanels) { + // TODO Auto-generated method stub + try { + dgraph = null; + + jFrameCompareLatencyDetail = this; + + t1 = new Thread() { + public void run() { + dgraph = new DirectedGraphTranslator(jFrameLatencyDetailedAnalysis, jFrameCompareLatencyDetail, map, cpanels, 1); + + } + + }; + + t1.start(); + + while (t1.getState() != Thread.State.TERMINATED) { + + } + + if (t1.getState() == Thread.State.TERMINATED) { + + dgraph2 = dgraph; + + } + String[] checkTransactionStrTable = new String[checkedTransactionsFile2.size()]; + int idx = 0; + for (String str : checkedTransactionsFile2) { + checkTransactionStrTable[idx] = str; + idx++; + } + + ComboBoxModel<String> aModel = new DefaultComboBoxModel<String>(checkTransactionStrTable); + ComboBoxModel<String> aModel1 = new DefaultComboBoxModel<String>(checkTransactionStrTable); + + tasksDropDownCombo3.setModel(aModel); + tasksDropDownCombo4.setModel(aModel1); + + buttonShowDGraph2.setEnabled(true); + buttonDetailedAnalysis.setEnabled(true); + buttonCompareInDetails.setEnabled(true); + + this.pack(); + this.revalidate(); + this.repaint(); + + jta.append("A Directed Graph with " + dgraph.getGraphsize() + " vertices" + dgraph.getGraphEdgeSet() + "Edges was generated.\n"); + + } catch (Exception e) { + jta.append("An Error has Accord \n"); + jta.append(e.getMessage() + "\n"); + // buttonSaveDGraph.setEnabled(false); + buttonShowDGraph2.setEnabled(false); + } + } + @Override public void actionPerformed(ActionEvent evt) { // TODO Auto-generated method stub @@ -443,7 +568,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener Thread t1 = new Thread() { public void run() { dgraph1.showGraph(dgraph1); - // System.out.println(dgraph1.getGraphsize()); + } }; @@ -453,7 +578,6 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener Thread t2 = new Thread() { public void run() { dgraph2.showGraph(dgraph2); - // System.out.println(dgraph2.getGraphsize()); } }; @@ -465,7 +589,10 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener dispose(); setVisible(false); } else if (evt.getSource() == browse) { - + + pBarLabel.setText("Progress of Graph 2 Generation"); + + updateBar(0); if (ConfigurationTTool.SystemCCodeDirectory.length() > 0) { fc = new JFileChooser(ConfigurationTTool.SystemCCodeDirectory); } else { @@ -475,7 +602,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml"); fc.setFileFilter(filter); int returnVal = fc.showOpenDialog(mainGUI.frame); - + if (returnVal == JFileChooser.APPROVE_OPTION) { File filefc = fc.getSelectedFile(); // file2.setText(file.getPath()); @@ -488,54 +615,48 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener if (STfile2 instanceof SimulationTrace) { + file2 = new File(STfile2.getFullPath()); + try { - file2 = new File(STfile2.getFullPath()); latencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, STfile2, false, true, 2); } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } - while (latencyDetailedAnalysisMain.dgraph.getGraphsize() == 0) { + checkedTransactionsFile2 = latencyDetailedAnalysisMain.checkedTransactionsFile; + map = latencyDetailedAnalysisMain.map1; + cpanels = latencyDetailedAnalysisMain.getCpanels1(); - } + this.toFront(); + this.requestFocus(); - if (latencyDetailedAnalysisMain.dgraph.getGraphsize() > 0) { - dgraph2 = latencyDetailedAnalysisMain.dgraph; - checkedTransactionsFile2 = latencyDetailedAnalysisMain.checkedTransactionsFile; - - - - String [] checkTransactionStrTable = new String [checkedTransactionsFile2.size()]; - int idx =0 ; - for(String str : checkedTransactionsFile2) { - checkTransactionStrTable[idx]= str; - idx++; - } - - - ComboBoxModel<String> aModel=new DefaultComboBoxModel<String>(checkTransactionStrTable); - ComboBoxModel<String> aModel1=new DefaultComboBoxModel<String>(checkTransactionStrTable); - - tasksDropDownCombo3.setModel(aModel); - tasksDropDownCombo4.setModel(aModel1); - latencyDetailedAnalysisMain.mainGUI_compare2.closeTurtleModeling(); - - - buttonShowDGraph2.setEnabled(true); - buttonDetailedAnalysis.setEnabled(true); - buttonCompareInDetails.setEnabled(true); - - this.pack(); - this.revalidate(); - this.repaint(); + this.pack(); + this.revalidate(); + this.repaint(); + Thread t3 = new Thread() { + public void run() { + generateDirectedGraph2(map, cpanels); + } - } + }; + + t3.start(); } + } } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_DETAILED_ANALYSIS].getActionCommand())) { - jta.append("the Latency Between: \n " + tasksDropDownCombo1.getSelectedItem() + " and \n" + tasksDropDownCombo2.getSelectedItem() - + " is studied \n"); + jta.append("Simulation Trace 1 : the Latency Between: \n " + tasksDropDownCombo1.getSelectedItem() + " and \n" + + tasksDropDownCombo2.getSelectedItem() + " is studied \n"); + + jta.append("Simulation Trace 2 : the Latency Between: \n " + tasksDropDownCombo3.getSelectedItem() + " and \n" + + tasksDropDownCombo4.getSelectedItem() + " is studied \n"); + + // pBarLabel.setText("Generating Detailed Latency"); + // pbar.setIndeterminate(true); + // pbar.setMinimum(0); + // pbar.setMaximum(1); + updateBar(0); Thread t = new Thread() { public void run() { @@ -548,12 +669,26 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener Vector<SimulationTransaction> transFile1, transFile2; transFile1 = parseFile(file1); transFile2 = parseFile(file2); + latencyDetailedAnalysis(task1, task2, task3, task4, transFile1, transFile2, true); + } }; t.start(); + while (t.getState() != Thread.State.TERMINATED) { + + } + + if (t.getState() == Thread.State.TERMINATED) { + + // pbar.setIndeterminate(false); + + updateBar(1); + + } + } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_COMPARE_IN_DETAILS].getActionCommand())) { jta.append("the Latency Between: \n " + tasksDropDownCombo1.getSelectedItem() + " and \n" + tasksDropDownCombo2.getSelectedItem() + " is studied \n"); @@ -753,12 +888,12 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener if (selectedIndex == 0) { - jta.append(row1 + ": " + row2 + "\n"); + jta.append("the latency for row : " + row1 + ": and row: " + row2 + " will be studied\n"); new JFrameLatencyComparedDetailedPopup(dgraph1, dgraph2, row1, row2, true); } else if (selectedIndex == 1) { - jta.append(row3 + ": " + row4 + "\n"); + jta.append("the latency for row : " + row3 + ": and row: " + row4 + " will be studied\n"); new JFrameLatencyComparedDetailedPopup(dgraph1, dgraph2, row3, row4, false); @@ -789,7 +924,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener public Object[][] getTableData() { return tableData; } - + public DirectedGraphTranslator getDgraph2() { return dgraph2; } @@ -798,4 +933,10 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener this.dgraph2 = dgraph2; } + public void updateBar(int newValue) { + + pbar.setValue(newValue); + + } + } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java index 560dc1b37d..561442b27b 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java @@ -39,6 +39,7 @@ package ui.simulationtraceanalysis; import java.awt.BorderLayout; +import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font; @@ -68,6 +69,7 @@ import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; @@ -122,7 +124,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe protected JTextArea jta; protected JScrollPane jsp; private JTabbedPane commandTab, resultTab;/* , resultTabDetailed; */ - private JPanel loadxml, commands, jp01, jp02, /* activities, */ graphAnalysisResult, jp03, jp04, jp05; // ,graphAnalysisResultDetailed; + private JPanel loadxml, commands, jp01, jp02, /* activities, */ graphAnalysisResult, jp03, jp04, jp05, progressBarpanel; // ,graphAnalysisResultDetailed; protected JButton buttonClose, buttonShowDGraph, buttonSaveDGraph, buttonBrowse, buttonDetailedAnalysis; public Vector<String> checkedTransactions = new Vector<String>(); @@ -159,6 +161,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe private Thread t; // @SuppressWarnings("deprecation") + + JProgressBar pbar; + JFrameCompareLatencyDetail jframeCompareLatencyDetail; + public JFrameLatencyDetailedAnalysis(TMLMapping<TGComponent> tmap, List<TMLComponentDesignPanel> cpanels, SimulationTrace selectedST) { super("Latency Detailed Analysis"); initActions(); @@ -203,6 +209,41 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe framePanel.add(jp, mainConstraint); + GridBagLayout gridbag01 = new GridBagLayout(); + GridBagConstraints c01 = new GridBagConstraints(); + progressBarpanel = new JPanel(gridbag01); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 0; + c01.gridy = 0; + // c01.fill = GridBagConstraints.BOTH; + + JLabel pBarLabel = new JLabel("Progress of Graph Generation", JLabel.LEFT); + progressBarpanel.add(pBarLabel, c01); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 1; + c01.gridy = 0; + + pbar = new JProgressBar(); + pbar.setForeground(Color.GREEN); + + progressBarpanel.add(pbar, c01); + + mainConstraint.gridheight = 1; + mainConstraint.gridx = 0; + mainConstraint.gridy = 3; + mainConstraint.ipady = 40; + mainConstraint.fill = GridBagConstraints.HORIZONTAL; + + framePanel.add(progressBarpanel, mainConstraint); + // mainpanel.add(jp, BorderLayout.NORTH); // GridBagLayout gridbag02 = new GridBagLayout(); @@ -242,21 +283,24 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe framePanel.add(graphAnalysisResult, mainConstraint); // mainTop.add(commands, c02); + // mainConstraint.gridwidth = GridBagConstraints.REMAINDER; // end row + // mainConstraint.fill = GridBagConstraints.BOTH; + jp05 = new JPanel(new BorderLayout()); // mainpanel.add(split, BorderLayout.SOUTH); mainConstraint.weighty = 00; mainConstraint.ipady = 100; mainConstraint.gridx = 0; - mainConstraint.gridy = 3; + mainConstraint.gridy = 4; mainConstraint.fill = GridBagConstraints.HORIZONTAL; framePanel.add(jp05, mainConstraint); commandTab = GraphicLib.createTabbedPaneRegular();// new JTabbedPane(); - GridBagLayout gridbag01 = new GridBagLayout(); - GridBagConstraints c01 = new GridBagConstraints(); + gridbag01 = new GridBagLayout(); + c01 = new GridBagConstraints(); loadxml = new JPanel(gridbag01); commandTab.addTab("load XML", null, loadxml, "load XML"); @@ -461,6 +505,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe t = new Thread() { public void run() { generateDirectedGraph(tmap, cpanels); + } }; @@ -468,6 +513,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } + public void updateBar(int newValue) { + pbar.setValue(newValue); + } + public DirectedGraphTranslator getDgraph() { return dgraph; } @@ -479,7 +528,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe private void generateDirectedGraph(TMLMapping<TGComponent> tmap, List<TMLComponentDesignPanel> cpanels) { try { - dgraph = new DirectedGraphTranslator(tmap, cpanels); + dgraph = new DirectedGraphTranslator(this, jframeCompareLatencyDetail, tmap, cpanels, 0); jta.append("A Directed Graph with " + dgraph.getGraphsize() + " vertices" + dgraph.getGraphEdgeSet() + "Edges was generated.\n"); // buttonSaveDGraph.setEnabled(true); buttonShowDGraph.setEnabled(true); diff --git a/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java b/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java index d66d661bac..fb843b2f5e 100644 --- a/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java +++ b/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java @@ -38,15 +38,18 @@ import ui.window.JDialogToChosePanel; public class latencyDetailedAnalysisMain { - public DirectedGraphTranslator dgraph; + // public DirectedGraphTranslator dgraph; private Vector<String> checkedTransactionsFile1 = new Vector<String>(); public Vector<String> checkedTransactionsFile2 = new Vector<String>(); public Vector<String> checkedTransactionsFile = new Vector<String>(); public MainGUI mainGUI_compare2, mainGUI_compare; private JFrameLatencyDetailedAnalysis latencyDetailedAnalysis; + JFrameCompareLatencyDetail cld; private Thread t, t1; + public TMLMapping<TGComponent> map1; + public List<TMLComponentDesignPanel> cpanels1; public latencyDetailedAnalysisMain(int callerId, MainGUI mainGUI, SimulationTrace selectedST, boolean b, boolean compare, int j) { @@ -106,6 +109,7 @@ public class latencyDetailedAnalysisMain { TMLArchiPanel tmlap = (TMLArchiPanel) tp; TMLMapping<TGComponent> map = mainGUI_compare.gtm.getTMLMapping(); + for (TGComponent component : tmlap.tmlap.getComponentList()) { tmlNodesToValidate.add(component); } @@ -140,7 +144,11 @@ public class latencyDetailedAnalysisMain { } } if (compare) { - dgraph = new DirectedGraphTranslator(map, cpanels); + + map1 = map; + setCpanels1(cpanels); + // dgraph = new DirectedGraphTranslator(latencyDetailedAnalysis,cld,map, + // cpanels,1); for (TGComponent tgc1 : map.getTMLModeling().getCheckedComps().keySet()) { String compName = map.getTMLModeling().getCheckedComps().get(tgc1); @@ -165,7 +173,11 @@ public class latencyDetailedAnalysisMain { cpanels = new ArrayList<TMLComponentDesignPanel>(); cpanels.add(tmlcdp); if (compare) { - dgraph = new DirectedGraphTranslator(map, cpanels); + // dgraph = new DirectedGraphTranslator(latencyDetailedAnalysis,cld,map, + // cpanels,1); + + map1 = map; + setCpanels1(cpanels); for (TGComponent tgc : map.getTMLModeling().getCheckedComps().keySet()) { String compName = map.getTMLModeling().getCheckedComps().get(tgc); @@ -216,59 +228,48 @@ public class latencyDetailedAnalysisMain { e1.printStackTrace(); } - while (dgraph.getGraphsize() == 0) { - - } - - if (dgraph.getGraphsize() > 0) { - dgraph1 = dgraph; - dgraph = null; - - JFileChooser fc; - - JFrameCompareLatencyDetail cld = new JFrameCompareLatencyDetail(this, mainGUI, dgraph1, checkedTransactionsFile1, selectedST, true); - - /* - * if (ConfigurationTTool.SystemCCodeDirectory.length() > 0) { fc = new - * JFileChooser(ConfigurationTTool.SystemCCodeDirectory); } else { fc = new - * JFileChooser(); } - * - * FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", - * "xml"); fc.setFileFilter(filter); - * - * int returnVal = fc.showOpenDialog(mainGUI.frame); - * - * if (returnVal == JFileChooser.APPROVE_OPTION) { File filefc = - * fc.getSelectedFile(); // file2.setText(file.getPath()); - * - * // Object obj = filefc; - * - * checkedTransactionsFile = new Vector<String>(); SimulationTrace file2 = new - * SimulationTrace(filefc.getName(), 6, filefc.getAbsolutePath()); - * - * if (file2 instanceof SimulationTrace) { - * - * try { latencyDetailedAnalysisForXML(mainGUI, file2, false, true, 2); } catch - * (XPathExpressionException | ParserConfigurationException | SAXException | - * IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } - * - * while (dgraph.getGraphsize() == 0) { - * - * } - * - * if (dgraph.getGraphsize() > 0) { dgraph2 = dgraph; checkedTransactionsFile2 = - * checkedTransactionsFile; JFrameCompareLatencyDetail cld = new - * JFrameCompareLatencyDetail(dgraph1, dgraph2, checkedTransactionsFile1, - * checkedTransactionsFile2, selectedST, file2, true); - * - * mainGUI_compare2.closeTurtleModeling(); - * - * } } - * - * } - */ + cld = new JFrameCompareLatencyDetail(this, mainGUI, checkedTransactionsFile1, map1, cpanels1, selectedST, true); + + /* + * if (ConfigurationTTool.SystemCCodeDirectory.length() > 0) { fc = new + * JFileChooser(ConfigurationTTool.SystemCCodeDirectory); } else { fc = new + * JFileChooser(); } + * + * FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", + * "xml"); fc.setFileFilter(filter); + * + * int returnVal = fc.showOpenDialog(mainGUI.frame); + * + * if (returnVal == JFileChooser.APPROVE_OPTION) { File filefc = + * fc.getSelectedFile(); // file2.setText(file.getPath()); + * + * // Object obj = filefc; + * + * checkedTransactionsFile = new Vector<String>(); SimulationTrace file2 = new + * SimulationTrace(filefc.getName(), 6, filefc.getAbsolutePath()); + * + * if (file2 instanceof SimulationTrace) { + * + * try { latencyDetailedAnalysisForXML(mainGUI, file2, false, true, 2); } catch + * (XPathExpressionException | ParserConfigurationException | SAXException | + * IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } + * + * while (dgraph.getGraphsize() == 0) { + * + * } + * + * if (dgraph.getGraphsize() > 0) { dgraph2 = dgraph; checkedTransactionsFile2 = + * checkedTransactionsFile; JFrameCompareLatencyDetail cld = new + * JFrameCompareLatencyDetail(dgraph1, dgraph2, checkedTransactionsFile1, + * checkedTransactionsFile2, selectedST, file2, true); + * + * mainGUI_compare2.closeTurtleModeling(); + * + * } } + * + * } + */ - } } public void latencyDetailedAnalysisForXML(MainGUI mainGUI, SimulationTrace selectedST, boolean b, boolean compare, int j) @@ -463,14 +464,6 @@ public class latencyDetailedAnalysisMain { } - public DirectedGraphTranslator getDgraph() { - return dgraph; - } - - public void setDgraph(DirectedGraphTranslator dgraph) { - this.dgraph = dgraph; - } - public Vector<String> getCheckedTransactionsFile() { return checkedTransactionsFile; } @@ -501,4 +494,12 @@ public class latencyDetailedAnalysisMain { return t1; } + public List<TMLComponentDesignPanel> getCpanels1() { + return cpanels1; + } + + public void setCpanels1(List<TMLComponentDesignPanel> cpanels1) { + this.cpanels1 = cpanels1; + } + } diff --git a/ttool/src/test/java/ui/GraphLatencyAnalysis/CompareLatencyInSimulationTraces.java b/ttool/src/test/java/ui/GraphLatencyAnalysis/CompareLatencyInSimulationTraces.java index c554a08e55..94cdcc5bf6 100644 --- a/ttool/src/test/java/ui/GraphLatencyAnalysis/CompareLatencyInSimulationTraces.java +++ b/ttool/src/test/java/ui/GraphLatencyAnalysis/CompareLatencyInSimulationTraces.java @@ -19,6 +19,7 @@ import ui.TMLArchiPanel; import ui.interactivesimulation.SimulationTransaction; import ui.simulationtraceanalysis.DirectedGraphTranslator; import ui.simulationtraceanalysis.JFrameCompareLatencyDetail; +import ui.simulationtraceanalysis.JFrameLatencyDetailedAnalysis; import ui.simulationtraceanalysis.latencyDetailedAnalysisMain; public class CompareLatencyInSimulationTraces extends AbstractUITest { @@ -40,6 +41,7 @@ public class CompareLatencyInSimulationTraces extends AbstractUITest { private static String task1, task2, task3, task4; JFrameCompareLatencyDetail cld; private latencyDetailedAnalysisMain latencyDetailedAnalysisMain; + private JFrameLatencyDetailedAnalysis jFrameLatencyDetailedAnalysis; Vector<SimulationTransaction> transFile1, transFile2; SimulationTrace simT1, simT2; @@ -72,6 +74,16 @@ public class CompareLatencyInSimulationTraces extends AbstractUITest { try { latencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, simT1, false, true, 1); + + cld = new JFrameCompareLatencyDetail(latencyDetailedAnalysisMain, mainGUI, checkedTransactionsFile1, + latencyDetailedAnalysisMain.map1, latencyDetailedAnalysisMain.cpanels1, simT1, false); + + if (cld == null) { + System.out.println("NULL Panel"); + } else { + cld.setVisible(false); + } + } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -86,60 +98,68 @@ public class CompareLatencyInSimulationTraces extends AbstractUITest { } if (t.getState() == Thread.State.TERMINATED) { - while (latencyDetailedAnalysisMain.getDgraph().getGraphsize() == 0) { + while (cld.t.getState() != Thread.State.TERMINATED) { } + if (cld.t.getState() == Thread.State.TERMINATED) { - if (latencyDetailedAnalysisMain.getDgraph().getGraphsize() > 0) { - dgraph1 = latencyDetailedAnalysisMain.getDgraph(); - checkedTransactionsFile1 = latencyDetailedAnalysisMain.getCheckedTransactionsFile(); - latencyDetailedAnalysisMain.setDgraph(null); - - cld = new JFrameCompareLatencyDetail(latencyDetailedAnalysisMain, mainGUI, dgraph1, checkedTransactionsFile1, simT1, false); + while (cld.dgraph.getGraphsize() == 0) { - if (cld == null) { - System.out.println("NULL Panel"); - } else { - cld.setVisible(false); } - latencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); - simT2 = new SimulationTrace("graphTestSimulationTrace", 6, (getBaseResourcesDir() + simulationTracePathFile2)); + if (cld.dgraph.getGraphsize() > 0) { + dgraph1 = cld.dgraph; + checkedTransactionsFile1 = latencyDetailedAnalysisMain.getCheckedTransactionsFile(); + cld.dgraph = null; - Thread t1 = new Thread() { - public void run() { + latencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); + simT2 = new SimulationTrace("graphTestSimulationTrace", 6, (getBaseResourcesDir() + simulationTracePathFile2)); - try { + Thread t1 = new Thread() { + public void run() { + + try { + + latencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, simT2, false, true, 1); + + } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } - latencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, simT2, false, true, 1); - } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); } + }; + t1.start(); + + while (t1.getState() != Thread.State.TERMINATED) { } - }; - t1.start(); + if (t1.getState() == Thread.State.TERMINATED) { - while (t1.getState() != Thread.State.TERMINATED) { + t1 = new Thread() { + public void run() { + dgraph2 = new DirectedGraphTranslator(jFrameLatencyDetailedAnalysis, cld, latencyDetailedAnalysisMain.map1, + latencyDetailedAnalysisMain.getCpanels1(), 3); - } - if (t1.getState() == Thread.State.TERMINATED) { + } - while (latencyDetailedAnalysisMain.getDgraph().getGraphsize() == 0) { + }; - } + t1.start(); - if (latencyDetailedAnalysisMain.getDgraph().getGraphsize() > 0) { - dgraph2 = latencyDetailedAnalysisMain.getDgraph(); + while (t1.getState() != Thread.State.TERMINATED) { - checkedTransactionsFile2 = latencyDetailedAnalysisMain.getCheckedTransactionsFile(); + } - } + if (t1.getState() == Thread.State.TERMINATED) { + + checkedTransactionsFile2 = latencyDetailedAnalysisMain.getCheckedTransactionsFile(); + } + + } } } - } } -- GitLab