diff --git a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java index 2aa0ce94f00c4ab5600c2e3ca28b39044a66e59f..a211a10cf4d89f76f4af96f659ca0851921d39a6 100644 --- a/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java +++ b/src/main/java/ui/simulationtraceanalysis/DirectedGraphTranslator.java @@ -40,6 +40,9 @@ package ui.simulationtraceanalysis; import com.mxgraph.layout.hierarchical.mxHierarchicalLayout; import com.mxgraph.swing.mxGraphComponent; + +import avatartranslator.AvatarStateMachineElement; + import org.jgrapht.Graph; import org.jgrapht.GraphPath; import org.jgrapht.Graphs; @@ -55,6 +58,8 @@ import ui.TGComponent; import ui.TGConnectingPoint; import ui.TGConnector; import ui.TMLComponentDesignPanel; +import ui.ad.TADComponentWithSubcomponents; +import ui.ad.TADComponentWithoutSubcomponents; import ui.interactivesimulation.SimulationTransaction; import ui.tmlad.*; import ui.tmlcompd.TMLCPrimitivePort; @@ -79,8 +84,6 @@ import java.util.Map.Entry; */ public class DirectedGraphTranslator extends JApplet { - - private TMLTask taskAc, task1, task2; private TMLActivity activity; @@ -145,7 +148,7 @@ public class DirectedGraphTranslator extends JApplet { private HashMap<Integer, List<String>> detailsOfMinMaxRow = new HashMap<Integer, List<String>>(); private HashMap<Integer, List<SimulationTransaction>> dataBydelayedTasksOfMinMAx = new HashMap<Integer, List<SimulationTransaction>>(); - private final JFrame frame = new JFrame("Directed Graph of the Mapping model"); + private final JFrame frame = new JFrame("The Sys-ML Model As Directed Graph"); private List<Integer> times1 = new ArrayList<Integer>(); private List<Integer> times2 = new ArrayList<Integer>(); @@ -305,7 +308,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.vertexSet().contains(getvertex(ch.getName()))) { vertex v2 = vertex(ch.getName(), ch.getID()); g.addVertex(v2); - + updatemainBar("v"); // gVertecies.add(vertex(ch.getName())); getvertex(ch.getName()).setType(vertex.TYPE_CHANNEL); getvertex(ch.getName()).setTaintFixedNumber(0); @@ -375,6 +378,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(ChannelName))) { g.addVertex(v); + updatemainBar("v"); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); @@ -403,6 +407,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(ChannelName))) { g.addVertex(v); + updatemainBar("v"); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); @@ -433,7 +438,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(v)) { g.addVertex(v); - + updatemainBar("v"); getvertex(ChannelName).setType(vertex.TYPE_CHANNEL); // gVertecies.add(vertex(ChannelName)); getvertex(ChannelName).setTaintFixedNumber(0); @@ -950,6 +955,7 @@ public class DirectedGraphTranslator extends JApplet { int id = ((TMLReadChannel) (currentElement)).getChannel(0).getID(); if (!g.containsVertex(getvertex(name))) { g.addVertex(vertex(name, id)); + updatemainBar("v"); } @@ -984,6 +990,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = getvertex(vName); if (!g.containsVertex(v)) { g.addVertex(vertex(vName, vid)); + updatemainBar("v"); } @@ -1013,7 +1020,7 @@ public class DirectedGraphTranslator extends JApplet { } else if (currentElement.getName().equals("stopOfFork") || currentElement.getName().equals("stop2OfFork") || currentElement.getName().equals("stopOfJoin")) { opCount++; - + // currentElement = currentElement.getNexts().firstElement(); continue; } else if (taskName.startsWith("JOINTASK_S_") && currentElement.getName().startsWith("ReadOfJoin")) { @@ -1022,6 +1029,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(vName))) { g.addVertex(vertex(vName, vid)); + updatemainBar("v"); } @@ -1054,6 +1062,7 @@ public class DirectedGraphTranslator extends JApplet { if (!g.containsVertex(getvertex(vName))) { g.addVertex(vertex(vName, vid)); + updatemainBar("v"); } @@ -1082,8 +1091,6 @@ public class DirectedGraphTranslator extends JApplet { } - updatemainBar(eventName); - if (currentElement.getNexts().size() > 1) { for (TMLActivityElement ae : currentElement.getNexts()) { multiNexts.add(ae); @@ -1105,7 +1112,7 @@ public class DirectedGraphTranslator extends JApplet { } // start activity is added as a vertex - if (currentElement.getReferenceObject() instanceof TMLADStartState) { + else if (currentElement.getReferenceObject() instanceof TMLADStartState) { addStartVertex(taskName); @@ -1114,37 +1121,11 @@ public class DirectedGraphTranslator extends JApplet { // the below activities are added as vertex with the required edges // these activities can be used to check later for latency - else if (currentElement.getReferenceObject() instanceof TMLADSendEvent - || currentElement.getReferenceObject() instanceof TMLADWaitEvent - || currentElement.getReferenceObject() instanceof TMLADForLoop - || currentElement.getReferenceObject() instanceof TMLADForStaticLoop - || currentElement.getReferenceObject() instanceof TMLADChoice - || currentElement.getReferenceObject() instanceof TMLADForEverLoop - || (currentElement.getReferenceObject() instanceof TMLADExecI && !currentElement.getValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADExecC && !currentElement.getValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADDelay - && !((TMLADDelay) currentElement.getReferenceObject()).getDelayValue().equals("0")) - || currentElement.getReferenceObject() instanceof TMLADSendRequest - || currentElement.getReferenceObject() instanceof TMLADReadRequestArg - || currentElement.getReferenceObject() instanceof TMLADActionState - || (currentElement.getReferenceObject() instanceof TMLADDelayInterval - && !((TMLADDelayInterval) currentElement.getReferenceObject()).getMinDelayValue().equals("0") - && !((TMLADDelayInterval) currentElement.getReferenceObject()).getMaxDelayValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADExecCInterval - && !((TMLADExecCInterval) currentElement.getReferenceObject()).getMinDelayValue().equals("0") - && !((TMLADExecCInterval) currentElement.getReferenceObject()).getMaxDelayValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADExecIInterval - && !((TMLADExecIInterval) currentElement.getReferenceObject()).getMinDelayValue().equals("0") - && !((TMLADExecIInterval) currentElement.getReferenceObject()).getMaxDelayValue().equals("0")) - || currentElement.getReferenceObject() instanceof TMLADNotifiedEvent - || currentElement.getReferenceObject() instanceof TMLADRandom - || currentElement.getReferenceObject() instanceof TMLADReadChannel - || currentElement.getReferenceObject() instanceof TMLADWriteChannel - || currentElement.getReferenceObject() instanceof TMLADSequence - || currentElement.getReferenceObject() instanceof TMLADUnorderedSequence - || currentElement.getReferenceObject() instanceof TMLADSelectEvt - || currentElement.getReferenceObject() instanceof TMLADDecrypt - || currentElement.getReferenceObject() instanceof TMLADEncrypt) { + else if (currentElement.getReferenceObject() instanceof TADComponentWithoutSubcomponents + || currentElement.getReferenceObject() instanceof TADComponentWithSubcomponents + || currentElement.getReferenceObject() instanceof TMLADActionState) + + { addcurrentElementVertex(taskName, taskStartName); @@ -1419,6 +1400,7 @@ public class DirectedGraphTranslator extends JApplet { vertex startv = vertex(taskStartName, currentElement.getID()); g.addVertex(startv); + updatemainBar("v"); // gVertecies.add(vertex(taskStartName)); getvertex(taskStartName).setType(vertex.TYPE_START); getvertex(taskStartName).setTaintFixedNumber(1); @@ -1439,30 +1421,31 @@ public class DirectedGraphTranslator extends JApplet { TMLCPrimitivePort sendingPortdetails = waitEvent.getEvent().port; TMLCPrimitivePort receivePortdetails = waitEvent.getEvent().port2; - if (!sendingPortdetails.isBlocking()) { + if (sendingPortdetails != null && !sendingPortdetails.isBlocking()) { warnings.add( "send event port:" + sendingPortdetails.getPortName() + " is non-blocking. Use tainting for an accurate latency analysis"); } - if (sendingPortdetails.isFinite()) { + if (sendingPortdetails != null && sendingPortdetails.isFinite()) { warnings.add("send event port:" + sendingPortdetails.getPortName() + " is Finite. Event lost is not supported in latency analysis "); } String receivePortparams = waitEvent.getAllParams(); // tmlcdp.tmlctdp.getAllPortsConnectedTo(portdetails); + if (sendingPortdetails != null && receivePortdetails != null) { + waitEvt.put("waitevent:" + receivePortdetails.getPortName() + "(" + receivePortparams + ")", new ArrayList<String>()); - waitEvt.put("waitevent:" + receivePortdetails.getPortName() + "(" + receivePortparams + ")", new ArrayList<String>()); + TMLTask originTasks = waitEvent.getEvent().getOriginTask(); - TMLTask originTasks = waitEvent.getEvent().getOriginTask(); + for (TMLSendEvent wait_sendEvent : originTasks.getSendEvents()) { - for (TMLSendEvent wait_sendEvent : originTasks.getSendEvents()) { + String sendingPortparams = wait_sendEvent.getAllParams(); - String sendingPortparams = wait_sendEvent.getAllParams(); + waitEvt.get("waitevent:" + receivePortdetails.getPortName() + "(" + receivePortparams + ")") + .add("sendevent:" + sendingPortdetails.getPortName() + "(" + sendingPortparams + ")"); - waitEvt.get("waitevent:" + receivePortdetails.getPortName() + "(" + receivePortparams + ")") - .add("sendevent:" + sendingPortdetails.getPortName() + "(" + sendingPortparams + ")"); + } } - } } @@ -1702,9 +1685,10 @@ public class DirectedGraphTranslator extends JApplet { String sendingPortparams = sendEvent.getAllParams(); TMLTask destinationTasks = sendEvent.getEvent().getDestinationTask(); + if (sendingPortdetails != null && receivePortdetails != null) { + sendEvt.put("sendevent:" + sendingPortdetails.getPortName() + "(" + sendingPortparams + ")", new ArrayList<String>()); - sendEvt.put("sendevent:" + sendingPortdetails.getPortName() + "(" + sendingPortparams + ")", new ArrayList<String>()); - + for (TMLWaitEvent wait_sendEvent : destinationTasks.getWaitEvents()) { String receivePortparams = wait_sendEvent.getAllParams(); @@ -1712,6 +1696,7 @@ public class DirectedGraphTranslator extends JApplet { .add("waitevent:" + receivePortdetails.getPortName() + "(" + receivePortparams + ")"); } + } } @@ -1813,44 +1798,64 @@ public class DirectedGraphTranslator extends JApplet { } - if (((activity.getPrevious(currentElement).getReferenceObject() instanceof TMLADExecI - || activity.getPrevious(currentElement).getReferenceObject() instanceof TMLADExecC) - && activity.getPrevious(currentElement).getValue().equals("0")) - || ((activity.getPrevious(currentElement).getReferenceObject() instanceof TMLADDelay) - && ((TMLADDelay) activity.getPrevious(currentElement).getReferenceObject()).getDelayValue().equals("0")) - - || ((activity.getPrevious(currentElement).getReferenceObject() instanceof TMLADDelayInterval) - && (((TMLADDelayInterval) activity.getPrevious(currentElement).getReferenceObject()).getMinDelayValue().equals("0") - && ((TMLADDelayInterval) activity.getPrevious(currentElement).getReferenceObject()).getMaxDelayValue().equals("0"))) - - || ((activity.getPrevious(currentElement).getReferenceObject() instanceof TMLADExecCInterval) - && (((TMLADExecCInterval) activity.getPrevious(currentElement).getReferenceObject()).getMinDelayValue().equals("0") - && ((TMLADExecCInterval) activity.getPrevious(currentElement).getReferenceObject()).getMaxDelayValue().equals("0")) - - || ((activity.getPrevious(currentElement).getReferenceObject() instanceof TMLADExecIInterval) - && (((TMLADExecIInterval) activity.getPrevious(currentElement).getReferenceObject()).getMinDelayValue().equals("0") - && ((TMLADExecIInterval) activity.getPrevious(currentElement).getReferenceObject()).getMaxDelayValue() - .equals("0"))))) - - { - - if (activity.getPrevious(activity.getPrevious(currentElement)).getReferenceObject() instanceof TMLADRandom) { - preEventName = taskName + "__" + activity.getPrevious(activity.getPrevious(currentElement)).getName() + "__" - + activity.getPrevious(activity.getPrevious(currentElement)).getID(); - preEventid = activity.getPrevious(activity.getPrevious(currentElement)).getID(); - - } else if (activity.getPrevious(activity.getPrevious(currentElement)).getReferenceObject() instanceof TMLADUnorderedSequence) { - preEventName = taskName + "__" + "unOrderedSequence" + "__" + activity.getPrevious(activity.getPrevious(currentElement)).getID(); - preEventid = activity.getPrevious(activity.getPrevious(currentElement)).getID(); - - } else { - preEventName = taskName + "__" + activity.getPrevious(activity.getPrevious(currentElement)).getReferenceObject().toString() + "__" - + activity.getPrevious(activity.getPrevious(currentElement)).getID(); - preEventid = activity.getPrevious(activity.getPrevious(currentElement)).getID(); - - } - - } + /* + * if (((activity.getPrevious(currentElement).getReferenceObject() instanceof + * TMLADExecI || activity.getPrevious(currentElement).getReferenceObject() + * instanceof TMLADExecC) && + * activity.getPrevious(currentElement).getValue().equals("0")) || + * ((activity.getPrevious(currentElement).getReferenceObject() instanceof + * TMLADDelay) && ((TMLADDelay) + * activity.getPrevious(currentElement).getReferenceObject()).getDelayValue(). + * equals("0")) + * + * || ((activity.getPrevious(currentElement).getReferenceObject() instanceof + * TMLADDelayInterval) && (((TMLADDelayInterval) + * activity.getPrevious(currentElement).getReferenceObject()).getMinDelayValue() + * .equals("0") && ((TMLADDelayInterval) + * activity.getPrevious(currentElement).getReferenceObject()).getMaxDelayValue() + * .equals("0"))) + * + * || ((activity.getPrevious(currentElement).getReferenceObject() instanceof + * TMLADExecCInterval) && (((TMLADExecCInterval) + * activity.getPrevious(currentElement).getReferenceObject()).getMinDelayValue() + * .equals("0") && ((TMLADExecCInterval) + * activity.getPrevious(currentElement).getReferenceObject()).getMaxDelayValue() + * .equals("0")) + * + * || ((activity.getPrevious(currentElement).getReferenceObject() instanceof + * TMLADExecIInterval) && (((TMLADExecIInterval) + * activity.getPrevious(currentElement).getReferenceObject()).getMinDelayValue() + * .equals("0") && ((TMLADExecIInterval) + * activity.getPrevious(currentElement).getReferenceObject()).getMaxDelayValue() + * .equals("0"))))) + * + * { + * + * if (activity.getPrevious(activity.getPrevious(currentElement)). + * getReferenceObject() instanceof TMLADRandom) { preEventName = taskName + "__" + * + activity.getPrevious(activity.getPrevious(currentElement)).getName() + "__" + * + activity.getPrevious(activity.getPrevious(currentElement)).getID(); + * preEventid = + * activity.getPrevious(activity.getPrevious(currentElement)).getID(); + * + * } else if (activity.getPrevious(activity.getPrevious(currentElement)). + * getReferenceObject() instanceof TMLADUnorderedSequence) { preEventName = + * taskName + "__" + "unOrderedSequence" + "__" + + * activity.getPrevious(activity.getPrevious(currentElement)).getID(); + * preEventid = + * activity.getPrevious(activity.getPrevious(currentElement)).getID(); + * + * } else { preEventName = taskName + "__" + + * activity.getPrevious(activity.getPrevious(currentElement)).getReferenceObject + * ().toString() + "__" + + * activity.getPrevious(activity.getPrevious(currentElement)).getID(); + * preEventid = + * activity.getPrevious(activity.getPrevious(currentElement)).getID(); + * + * } + * + * } + */ if (!nameIDTaskList.containsKey(currentElement.getID())) { nameIDTaskList.put(String.valueOf(currentElement.getID()), eventName); @@ -1863,6 +1868,7 @@ public class DirectedGraphTranslator extends JApplet { vertex preV = vertex(preEventName, preEventid); g.addVertex(v); + updatemainBar("v"); // gVertecies.add(vertex(eventName)); g.addEdge(preV, v); @@ -1872,6 +1878,7 @@ public class DirectedGraphTranslator extends JApplet { vertex v = vertex(eventName, eventid); g.addVertex(v); + updatemainBar("v"); // gVertecies.add(vertex(eventName)); g.addEdge(getvertex(taskStartName), getvertex(eventName)); opCount++; @@ -1882,21 +1889,11 @@ public class DirectedGraphTranslator extends JApplet { || currentElement.getReferenceObject() instanceof TMLADSendRequest || currentElement.getReferenceObject() instanceof TMLADNotifiedEvent || currentElement.getReferenceObject() instanceof TMLADReadChannel || currentElement.getReferenceObject() instanceof TMLADWriteChannel - || (currentElement.getReferenceObject() instanceof TMLADExecI && !currentElement.getValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADExecC && !currentElement.getValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADDelay - && !((TMLADDelay) currentElement.getReferenceObject()).getDelayValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADDelayInterval - && !((TMLADDelayInterval) currentElement.getReferenceObject()).getMinDelayValue().equals("0") - && !((TMLADDelayInterval) currentElement.getReferenceObject()).getMaxDelayValue().equals("0")) - - || (currentElement.getReferenceObject() instanceof TMLADExecCInterval - && !((TMLADExecCInterval) currentElement.getReferenceObject()).getMinDelayValue().equals("0") - && ((TMLADExecCInterval) currentElement.getReferenceObject()).getMaxDelayValue().equals("0")) - || (currentElement.getReferenceObject() instanceof TMLADExecIInterval - && !((TMLADExecIInterval) currentElement.getReferenceObject()).getMinDelayValue().equals("0") - && !((TMLADExecIInterval) currentElement.getReferenceObject()).getMaxDelayValue().equals("0")) - || currentElement.getReferenceObject() instanceof TMLADEncrypt || currentElement.getReferenceObject() instanceof TMLADDecrypt + || (currentElement.getReferenceObject() instanceof TMLADExecI) || (currentElement.getReferenceObject() instanceof TMLADExecC) + || (currentElement.getReferenceObject() instanceof TMLADDelay) || (currentElement.getReferenceObject() instanceof TMLADDelayInterval) + || (currentElement.getReferenceObject() instanceof TMLADExecCInterval) + || (currentElement.getReferenceObject() instanceof TMLADExecIInterval) || currentElement.getReferenceObject() instanceof TMLADEncrypt + || currentElement.getReferenceObject() instanceof TMLADDecrypt || currentElement.getReferenceObject() instanceof TMLADReadRequestArg) { allLatencyTasks.add(eventName); @@ -1907,7 +1904,7 @@ public class DirectedGraphTranslator extends JApplet { getvertex(eventName).setType(vertex.TYPE_CTRL); getvertex(eventName).setTaintFixedNumber(1); } else if (currentElement.getReferenceObject() instanceof TMLADSelectEvt) { - getvertex(eventName).setType(vertex.TYPE_CTRL); + getvertex(eventName).setType(vertex.TYPE_SELECT_EVT); getvertex(eventName).setTaintFixedNumber(1); } else if (currentElement.getReferenceObject() instanceof TMLADActionState) { @@ -2244,6 +2241,7 @@ public class DirectedGraphTranslator extends JApplet { vertex taskEndVertex = vertex(taskEndName, taskEndid); g.addVertex(taskEndVertex); + updatemainBar("v"); // gVertecies.add(vertex(taskEndName)); getvertex(eventName).setType(vertex.TYPE_END); getvertex(eventName).setTaintFixedNumber(1); @@ -3674,6 +3672,28 @@ public class DirectedGraphTranslator extends JApplet { for (SimulationTransaction st : transFile1) { + if (st.command.contains("SelectEvent params:") && getvertexFromID(Integer.valueOf(st.id)).getType() == 11) { + st.command = st.command.replace("SelectEvent params:", "Wait" + st.channelName); + + int selectID = Integer.valueOf(st.id); + + vertex selectV = getvertexFromID(Integer.valueOf(selectID)); + + String[] chName = st.channelName.toString().split("__"); + + int waitEvntName = chName.length; + + String waitEvnt = chName[waitEvntName - 1]; + + for (vertex nextV : Graphs.successorListOf(g, selectV)) { + + if (nextV.getName().contains(waitEvnt)) { + st.id = String.valueOf(nextV.getId()); + } + } + + } + if (st.id.equals(idTask1) && !times1.contains(Integer.valueOf(st.startTime))) { Task1Traces.add(st); task1DeviceName = st.deviceName; @@ -3682,7 +3702,7 @@ public class DirectedGraphTranslator extends JApplet { } - if (st.id.equals(idTask2) && !times2.contains(Integer.valueOf(st.startTime))) { + if (st.id.equals(idTask2) && !times2.contains(Integer.valueOf(st.endTime))) { Task2Traces.add(st); task2DeviceName = st.deviceName; times2.add(Integer.valueOf(st.endTime)); @@ -3717,18 +3737,39 @@ public class DirectedGraphTranslator extends JApplet { // 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 (st.command.contains("SelectEvent params:") && getvertexFromID(Integer.valueOf(st.id)).getType() == 11) { + st.command = st.command.replace("SelectEvent params:", "Wait" + st.channelName); + + int selectID = Integer.valueOf(st.id); + + vertex selectV = getvertexFromID(Integer.valueOf(selectID)); + + String[] chName = st.channelName.toString().split("__"); + + int waitEvntName = chName.length; + + String waitEvnt = chName[waitEvntName - 1]; + + for (vertex nextV : Graphs.successorListOf(g, selectV)) { + + if (nextV.getName().contains(waitEvnt)) { + st.id = String.valueOf(nextV.getId()); + } + } + } + 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)) { + if (Integer.valueOf(st.startTime) < times1.get(i) && Integer.valueOf(st.endTime) != 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(); } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java index f711904fa08284e92b786dad5de7cc34c1152f4c..805bab4bd88ab07c31d36206e2dd6b7b06df6470 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java @@ -35,6 +35,7 @@ import javax.swing.JTextField; import javax.swing.ListSelectionModel; import javax.swing.border.LineBorder; import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.table.DefaultTableModel; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; @@ -45,6 +46,7 @@ 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; @@ -317,7 +319,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener framePanel.add(progressBarpanel, mainConstraint); graphAnalysisResult = new JPanel(new BorderLayout()); - graphAnalysisResult.setBorder(new javax.swing.border.TitledBorder("Latency Detailed Analysis ")); + graphAnalysisResult.setBorder(new javax.swing.border.TitledBorder("Latency Analysis ")); mainConstraint.gridheight = 1; // .weighty =0.5; // mainConstraint.weightx = 0.5; @@ -346,7 +348,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener jp03 = new JPanel(new BorderLayout()); jp03.setLayout(gridbag01); - table11 = new JTable(dataDetailedByTask, columnNames); + DefaultTableModel tableModel1 = new DefaultTableModel(dataDetailedByTask, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table11 = new JTable(tableModel1); // table11.setBackground(Color.red); scrollPane11 = new JScrollPane(table11, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); // scrollPane11.setBackground(Color.red); @@ -362,7 +372,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener jp03.add(scrollPane11, c01); - table12 = new JTable(dataDetailedByTask, columnNames); + DefaultTableModel tableModel2 = new DefaultTableModel(dataDetailedByTask, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table12 = new JTable(tableModel2); // table12.setBackground(Color.blue); scrollPane12 = new JScrollPane(table12, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); // scrollPane11.setBackground(Color.blue); @@ -390,7 +408,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener dataDetailedMinMax = new Object[0][0]; - table21 = new JTable(dataDetailedMinMax, columnMinMaxNames); + DefaultTableModel tableModel3 = new DefaultTableModel(dataDetailedMinMax, columnMinMaxNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table21 = new JTable(tableModel3); scrollPane21 = new JScrollPane(table21, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane21.setVisible(b); c01.gridheight = 1; @@ -403,7 +429,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener jp04.add(scrollPane21, c01); - table22 = new JTable(dataDetailedMinMax, columnMinMaxNames); + DefaultTableModel tableModel4 = new DefaultTableModel(dataDetailedMinMax, columnMinMaxNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table22 = new JTable(tableModel4); // table12.setBackground(Color.blue); scrollPane22 = new JScrollPane(table22, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); @@ -420,7 +454,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener jp04.add(scrollPane22, c01); resultTab = GraphicLib.createTabbedPaneRegular();// new JTabbedPane(); - resultTab.addTab("Latency detailed By Tasks", null, jp03, "Latency detailed By Tasks "); + resultTab.addTab("Latency Values", null, jp03, "Latency detailed By Tasks "); resultTab.addTab("Min/Max Latency", null, jp04, "Min and Max Latency"); graphAnalysisResult.add(resultTab, BorderLayout.CENTER); @@ -485,11 +519,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener } buttonShowDGraph1.setEnabled(true); + if (pbar.getValue()==pbar.getMaximum()) { + updateBar(0); + + } 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("An error has occurred \n"); jta.append(e.getMessage() + "\n"); // buttonSaveDGraph.setEnabled(false); buttonShowDGraph1.setEnabled(false); @@ -540,7 +578,10 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener buttonShowDGraph2.setEnabled(true); buttonDetailedAnalysis.setEnabled(true); buttonCompareInDetails.setEnabled(true); - + if (pbar.getValue()==pbar.getMaximum()) { + updateBar(0); + + } this.pack(); this.revalidate(); this.repaint(); @@ -548,7 +589,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener jta.append("A Directed Graph with " + dgraph.getGraphsize() + " vertices and " + dgraph.getGraphEdgeSet() + " edges was generated.\n"); } catch (Exception e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); // buttonSaveDGraph.setEnabled(false); buttonShowDGraph2.setEnabled(false); @@ -579,59 +620,64 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener dispose(); setVisible(false); } else if (evt.getSource() == browse) { + try { + pBarLabel.setText("Progress of Graph 2 Generation"); + + updateBar(0); + if (ConfigurationTTool.SystemCCodeDirectory.length() > 0) { + fc = new JFileChooser(ConfigurationTTool.SystemCCodeDirectory); + } else { + fc = new JFileChooser(); + } - pBarLabel.setText("Progress of Graph 2 Generation"); - - updateBar(0); - 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); - 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(); - if (returnVal == JFileChooser.APPROVE_OPTION) { - File filefc = fc.getSelectedFile(); + latencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); + SimulationTrace STfile2 = new SimulationTrace(filefc.getName(), 6, filefc.getAbsolutePath()); + secondFile.setText(filefc.getAbsolutePath()); - latencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); - SimulationTrace STfile2 = new SimulationTrace(filefc.getName(), 6, filefc.getAbsolutePath()); - secondFile.setText(filefc.getAbsolutePath()); + if (STfile2 instanceof SimulationTrace) { - if (STfile2 instanceof SimulationTrace) { + file2 = new File(STfile2.getFullPath()); - file2 = new File(STfile2.getFullPath()); + try { + latencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, STfile2, false, true, 2); + } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } - try { - latencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, STfile2, false, true, 2); - } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + checkedTransactionsFile2 = latencyDetailedAnalysisMain.getCheckedTransactionsFile(); + map = latencyDetailedAnalysisMain.getMap1(); + cpanels = latencyDetailedAnalysisMain.getCpanels1(); - checkedTransactionsFile2 = latencyDetailedAnalysisMain.getCheckedTransactionsFile(); - map = latencyDetailedAnalysisMain.getMap1(); - cpanels = latencyDetailedAnalysisMain.getCpanels1(); + this.toFront(); + this.requestFocus(); - this.toFront(); - this.requestFocus(); + this.pack(); + this.revalidate(); + this.repaint(); - this.pack(); - this.revalidate(); - this.repaint(); + tc.setCld(this); + tc.setMap(map); + // tc.setCld(jFrameCompareLatencyDetail); + tc.setjFrameLDA(jFrameLatencyDetailedAnalysis); - tc.setCld(this); - tc.setMap(map); - // tc.setCld(jFrameCompareLatencyDetail); - tc.setjFrameLDA(jFrameLatencyDetailedAnalysis); + tc.start(15); + tc.run(); - tc.start(15); - tc.run(); + } } - + } catch (Exception e1) { + // TODO Auto-generated catch block + // e1.printStackTrace(); + TraceManager.addDev("Error: " + e1.getMessage()); } } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_LATENCY].getActionCommand())) { jta.append("Simulation Trace 1 : the Latency Between: \n " + tasksDropDownCombo1.getSelectedItem() + " and \n" @@ -687,7 +733,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener // jta.append("Refer to the generatd dialog to view the graph.\n"); } catch (Exception e) { - // jta.append("An Error has Accord \n"); + // jta.append("An Error has occurred \n"); // jta.append(e.getMessage() + "\n"); } @@ -724,7 +770,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener table11.removeAll(); - table11 = new JTable(tableData, columnNames); + DefaultTableModel tableModel1 = new DefaultTableModel(tableData, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table11 = new JTable(tableModel1); table11.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -734,7 +788,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener table12.removeAll(); - table12 = new JTable(tableData2, columnNames); + DefaultTableModel tableModel2 = new DefaultTableModel(tableData2, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table12 = new JTable(tableModel2); table12.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -744,7 +806,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener table21.removeAll(); - table21 = new JTable(tableData1MinMax, columnMinMaxNames); + DefaultTableModel tableModel3 = new DefaultTableModel(tableData1MinMax, columnMinMaxNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table21 = new JTable(tableModel3); table21.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -754,7 +824,15 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener table22.removeAll(); - table22 = new JTable(tableData2MinMax, columnMinMaxNames); + DefaultTableModel tableModel4 = new DefaultTableModel(tableData2MinMax, columnMinMaxNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table22 = new JTable(tableModel4); table22.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -789,6 +867,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener scrollPane11.repaint(); // scrollPane11.setVisible(true); + jta.append("Latency has been computed...Please refer to the tables in the Latency Analysis section for the results \n"); this.pack(); this.setVisible(b); diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java index 701a3ce1a345365f136db52ec8de1a03958751c9..e03b936b4bd9511768b149af8baaf95e75d28c88 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyComparedDetailedPopup.java @@ -158,6 +158,11 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM return Integer.class; } } + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } }; // taskNames = new JTable(dataDetailedByTask, columnByTaskNames); @@ -181,6 +186,11 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM framePanel.add(scrollPane11, c02); DefaultTableModel model12 = new DefaultTableModel(dataDetailedByTask2, columnByTaskNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } @Override public Class getColumnClass(int column) { switch (column) { @@ -242,6 +252,12 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM } DefaultTableModel model2 = new DefaultTableModel(dataHWDelayByTask, columnByHWNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + @Override public Class getColumnClass(int column) { switch (column) { @@ -279,6 +295,12 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM framePanel.add(scrollPane13, c02); DefaultTableModel model3 = new DefaultTableModel(dataHWDelayByTask2, columnByHWNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + @Override public Class getColumnClass(int column) { switch (column) { @@ -628,7 +650,17 @@ public class JFrameLatencyComparedDetailedPopup extends JFrame implements TableM } - JTable table = new JTable(dataDetailedByTask, columnNames); + DefaultTableModel tableModel = new DefaultTableModel(dataDetailedByTask, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + + + JTable table = new JTable(tableModel); table.setFillsViewportHeight(true); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java index f67b0e939bb64a0f43623feefc0ce1584db1e523..046f59d6b151710de66ca0d4631a3e994dd5c0fb 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java @@ -58,6 +58,7 @@ import java.io.FileReader; import java.io.IOException; import java.lang.Thread.State; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Vector; import java.util.Map.Entry; @@ -84,6 +85,7 @@ import javax.swing.event.ChangeListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.table.DefaultTableModel; //import javax.swing.table.DefaultTableModel; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; @@ -104,13 +106,19 @@ import common.SpecConfigTTool; import myutil.GraphicLib; import myutil.ScrolledJTextArea; import myutil.TraceManager; +import tmltranslator.TMLActivity; import tmltranslator.TMLMapping; +import tmltranslator.TMLTask; +import ui.CheckableLatency; import ui.ColorManager; import ui.SimulationTrace; import ui.TGComponent; +import ui.TGTextFieldWithHelp; import ui.TMLComponentDesignPanel; import ui.interactivesimulation.SimulationTransaction; import ui.interactivesimulation.SimulationTransactionParser; +import ui.tmlad.TMLADExecI; +import ui.tmlad.TMLActivityDiagramPanel; /** * Class JFrameLatencyDetailedAnalysis: this class opens the frame showing the @@ -129,9 +137,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe private JTabbedPane commandTab, resultTab;/* , resultTabDetailed; */ private JPanel loadxml, commands, jp01, jp02, /* activities, */ graphAnalysisResult, jp03, jp04, jp05, jp06, progressBarpanel, addRules; // ,graphAnalysisResultDetailed; private JButton buttonClose, buttonShowDGraph, buttonSaveDGraph, buttonBrowse, latencybutton, buttonCheckPath, addRulebutton, viewRulesbutton, - preciseAnalysisbutton; + preciseAnalysisbutton, showAllOp; private Vector<String> checkedTransactions = new Vector<String>(); + private Vector<String> allTasks = new Vector<String>(); private HashMap<String, Integer> checkedT = new HashMap<String, Integer>(); private JTextField saveDirName; @@ -144,6 +153,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe private JComboBox<String> tasksDropDownCombo5 = new JComboBox<String>(); + private JComboBox<String> tasksDropDownCombo6 = new JComboBox<String>(); + + private JComboBox<String> tasksDropDownCombo7 = new JComboBox<String>(); + private Vector<String> readChannelTransactions = new Vector<String>(); private Vector<String> writeChannelTransactions = new Vector<String>(); @@ -165,23 +178,29 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe private JTextField file1; private File file; private static Vector<SimulationTransaction> transFile1; - + private JLabel task2,taskL; private DirectedGraphTranslator dgraph; private JScrollPane scrollPane11, scrollPane12;// , scrollPane13; private LatencyAnalysisParallelAlgorithms tc; + private Boolean allop = false; + private TMLMapping<TGComponent> tmap1; + + public static final String[] helpStrings = { "considerrule.html", "taint.html", "addRule.html" }; // @SuppressWarnings("deprecation") private JProgressBar pbar; private JFrameCompareLatencyDetail jframeCompareLatencyDetail; private JCheckBox taintFirstOp, considerRules; + protected TGTextFieldWithHelp checkRuleHelp, taintHelp, ruleHelp; public JFrameLatencyDetailedAnalysis(TMLMapping<TGComponent> tmap, List<TMLComponentDesignPanel> cpanels, SimulationTrace selectedST, LatencyAnalysisParallelAlgorithms tc1) { super("Precise Latency Analysis"); initActions(); + tmap1 = tmap; fillCheckedTrans(tmap); tc = tc1; @@ -221,7 +240,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe jp.add(buttonClose); - latencybutton.setEnabled(true); + latencybutton.setEnabled(false); buttonShowDGraph.setEnabled(false); preciseAnalysisbutton.setEnabled(false); @@ -324,12 +343,23 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe c01.weightx = 1.0; c01.gridwidth = 1; c01.gridx = 0; - c01.gridy = 1; + c01.gridy = 2; // c01.fill = GridBagConstraints.BOTH; JLabel tasksLabel = new JLabel("Study Latency Between ", JLabel.LEFT); loadxml.add(tasksLabel, c01); + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 0; + c01.gridy = 1; + // c01.fill = GridBagConstraints.BOTH; + + taskL = new JLabel("Select Task 1 ", JLabel.LEFT); + loadxml.add(taskL, c01); + file1 = new JTextField(40); file1.setMinimumSize(new Dimension(300, 30)); file1.setText(selectedST.getFullPath()); @@ -350,6 +380,15 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe c01.gridwidth = 1; c01.gridx = 1; c01.gridy = 1; + tasksDropDownCombo6 = new JComboBox<String>(checkedTransactions); + loadxml.add(tasksDropDownCombo6, c01); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 1; + c01.gridy =2; tasksDropDownCombo1 = new JComboBox<String>(checkedTransactions); loadxml.add(tasksDropDownCombo1, c01); @@ -359,6 +398,16 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe c01.gridwidth = 1; c01.gridx = 2; c01.gridy = 1; + task2 = new JLabel("And task 2 ", JLabel.LEFT); + + loadxml.add(task2, c01); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 0.2; + c01.gridwidth = 1; + c01.gridx = 2; + c01.gridy = 2; JLabel op2 = new JLabel("And ", JLabel.LEFT); loadxml.add(op2, c01); @@ -367,12 +416,37 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe c01.weightx = 1.0; c01.gridwidth = 1; c01.gridx = 4; - c01.gridy = 1; + c01.gridy = 2; tasksDropDownCombo2 = new JComboBox<String>(checkedTransactions); loadxml.add(tasksDropDownCombo2, c01); + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 4; + c01.gridy = 1; + + tasksDropDownCombo7 = new JComboBox<String>(checkedTransactions); + + loadxml.add(tasksDropDownCombo7, c01); + + task2.setVisible(false); + taskL.setVisible(false); + tasksDropDownCombo6.setVisible(false); + tasksDropDownCombo7.setVisible(false); + + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 5; + c01.gridy = 2; + + showAllOp = new JButton(actions[LatencyDetailedAnalysisActions.ACT_SHOW_ALL_OP]); + loadxml.add(showAllOp, c01); /* * c01.gridheight = 1; c01.weighty = 1.0; c01.weightx = 1.0; c01.gridwidth = 1; * c01.gridx = 0; c01.gridy = 3; @@ -386,35 +460,57 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe c01.weightx = 1.0; c01.gridwidth = 1; c01.gridx = 0; - c01.gridy = 3; + c01.gridy = 4; considerRules = new JCheckBox("Consider Rules"); + loadxml.add(considerRules, c01); + checkRuleHelp = new TGTextFieldWithHelp("", 0); + checkRuleHelp.setEditable(false); + // loadxml.add(sliceTime, c01); + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 1; + c01.gridy = 4; + c01.anchor = GridBagConstraints.WEST; + checkRuleHelp.makeEndHelpButton(helpStrings[0], tc.getMainGUI(), tc.getMainGUI().getHelpManager(), loadxml, c01); c01.gridheight = 1; c01.weighty = 1.0; c01.weightx = 1.0; c01.gridwidth = 1; c01.gridx = 1; - c01.gridy = 3; + c01.gridy = 4; + c01.anchor = GridBagConstraints.EAST; taintFirstOp = new JCheckBox("Taint First Operator "); loadxml.add(taintFirstOp, c01); + taintHelp = new TGTextFieldWithHelp("", 0); + taintHelp.setEditable(false); + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 2; + c01.gridy = 4; + c01.anchor = GridBagConstraints.WEST; + taintHelp.makeEndHelpButton(helpStrings[1], tc.getMainGUI(), tc.getMainGUI().getHelpManager(), loadxml, c01); + c01.gridheight = 1; c01.weighty = 1.0; c01.weightx = 1.0; c01.gridwidth = 1; c01.gridx = 3; - c01.gridy = 3; + c01.gridy = 4; GridBagLayout gridbag05 = new GridBagLayout(); GridBagConstraints c05 = new GridBagConstraints(); // Save jp06 = new JPanel(gridbag05); - commandTab.addTab("Add Rules", null, jp06, "Add Rules"); - JLabel tasksRules = new JLabel("ADD Rule : ", JLabel.LEFT); c01.gridheight = 1; @@ -475,10 +571,26 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe c01.weightx = 1.0; c01.gridwidth = 1; c01.gridx = 4; - c01.gridy = 1; + c01.gridy = 2; jp06.add(viewRulesbutton, c01); + c01.gridheight = 1; + c01.weighty = 1.0; + c01.weightx = 1.0; + c01.gridwidth = 1; + c01.gridx = 0; + c01.gridy = 0; + + ruleHelp = new TGTextFieldWithHelp("", 0); + ruleHelp.setEditable(false); + + c01.anchor = GridBagConstraints.EAST; + ruleHelp.makeEndHelpButton(helpStrings[2], tc.getMainGUI(), tc.getMainGUI().getHelpManager(), jp06, c01); + + JScrollPane scrollPane = new JScrollPane(jp06); + + commandTab.addTab("Add Rules", null, scrollPane, "Add Rules"); GridBagLayout gridbag04 = new GridBagLayout(); GridBagConstraints c04 = new GridBagConstraints(); // Save @@ -528,7 +640,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe c04.weighty = 1.0; c04.weightx = 1.0; c04.gridx = 0; - c04.gridy = 1; + c04.gridy = 2; c04.gridwidth = GridBagConstraints.REMAINDER; // end row c04.fill = GridBagConstraints.HORIZONTAL; c04.gridheight = 1; @@ -551,8 +663,16 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe dataDetailedByTask = new Object[0][0]; jp03 = new JPanel(new BorderLayout()); + DefaultTableModel tableModel = new DefaultTableModel(dataDetailedByTask, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table11 = new JTable(tableModel); - table11 = new JTable(dataDetailedByTask, columnNames); scrollPane11 = new JScrollPane(table11, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane11.setVisible(true); jp03.add(scrollPane11, BorderLayout.CENTER); @@ -566,7 +686,16 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe dataDetailedMinMax = new Object[0][0]; jp04 = new JPanel(new BorderLayout()); - table12 = new JTable(dataDetailedMinMax, columnMinMaxNames); + + DefaultTableModel tableModel2 = new DefaultTableModel(dataDetailedMinMax, columnMinMaxNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table12 = new JTable(tableModel2); scrollPane12 = new JScrollPane(table12, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); scrollPane12.setVisible(true); jp04.add(scrollPane12, BorderLayout.CENTER); @@ -645,12 +774,17 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe tasksDropDownCombo3.setModel(aModel); tasksDropDownCombo4.setModel(aModel1); + if (pbar.getValue() == pbar.getMaximum()) { + updateBar(0); + + } + latencybutton.setEnabled(true); this.pack(); this.revalidate(); this.repaint(); } catch (Exception e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); // buttonSaveDGraph.setEnabled(false); buttonShowDGraph.setEnabled(false); @@ -668,7 +802,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } - @SuppressWarnings({ "unchecked", "rawtypes" }) + @SuppressWarnings({ "unchecked", "rawtypes", "deprecation" }) @Override public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); @@ -697,10 +831,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } } catch (ExportException e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); } catch (IOException e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); } @@ -728,10 +862,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } } catch (ExportException e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); } catch (IOException e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); } @@ -748,6 +882,11 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_LATENCY].getActionCommand())) { jta.append("the Latency Between: \n " + tasksDropDownCombo1.getSelectedItem() + " and \n" + tasksDropDownCombo2.getSelectedItem() + " is studied \n"); + latencybutton.setEnabled(false); + + this.pack(); + this.revalidate(); + this.repaint(); if (taintFirstOp.isSelected()) { jta.append("operator 1 is tainted \n "); @@ -840,15 +979,193 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe new JFrameListOfRules(dgraph); } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_LATENCY_PRECISE_ANALYSIS].getActionCommand())) { - int row1 = table11.getSelectedRow(); - tc.setjFrameLDA(this); - tc.setRow(row1); - tc.start(11); - tc.run(); - // tc.getT().join(); + int row1 = 0; + String noLatValue = null; + int selectedIndex = resultTab.getSelectedIndex(); + if (selectedIndex == 0) { + row1 = table11.getSelectedRow(); + if (row1 > -1) { + noLatValue = table11.getValueAt(row1, 4).toString(); + } else { + jta.append("Please select a row before precise analysis" + " \n"); + + } + + } else if (selectedIndex == 1) { + row1 = table12.getSelectedRow(); + if (row1 > -1) { + + noLatValue = table12.getValueAt(row1, 4).toString(); + } else { + jta.append("Please select a row before precise analysis" + " \n"); + + } + + } + + if (noLatValue.startsWith("Assumption Does Not Hold;")) { + jta.append("Can not run latency when the one-to-one assumption does not hold" + " \n"); + + } else { + tc.setjFrameLDA(this); + tc.setRow(row1); + tc.start(11); + tc.run(); + // tc.getT().join(); + } + } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_SHOW_ALL_OP].getActionCommand())) { + + if (!allop) { + + + for (TMLTask tmltask : tmap1.getTMLModeling().getTasks()) { + + allTasks.add(tmltask.getName()); + + } + + + ComboBoxModel<String> taskModel = new DefaultComboBoxModel<String>(allTasks); + + tasksDropDownCombo6.setModel(taskModel); + tasksDropDownCombo6.addActionListener( actions[LatencyDetailedAnalysisActions.ACT_LOAD_ALL_OP] ); + ComboBoxModel<String> taskModel2 = new DefaultComboBoxModel<String>(allTasks); + tasksDropDownCombo7.setModel(taskModel2); + + ComboBoxModel<String> aModel1 = new DefaultComboBoxModel<String>(checkedTransactions); + + + tasksDropDownCombo2.setModel(aModel1); + + allop = true; + showAllOp.setLabel("Show checkpoints operators"); + jta.append("show latency checkpoints operators" + " \n"); + + task2.setVisible(true); + taskL.setVisible(true); + tasksDropDownCombo6.setVisible(true); + tasksDropDownCombo7.setVisible(true); + this.pack(); + this.revalidate(); + this.repaint(); + + } else { + checkedTransactions = new Vector<String>(); + checkedT = new HashMap<String, Integer>(); + fillCheckedTrans(tmap1); + ComboBoxModel<String> aModel = new DefaultComboBoxModel<String>(checkedTransactions); + ComboBoxModel<String> aModel1 = new DefaultComboBoxModel<String>(checkedTransactions); + + tasksDropDownCombo1.setModel(aModel); + + tasksDropDownCombo2.setModel(aModel1); + task2.setVisible(false); + taskL.setVisible(false); + tasksDropDownCombo6.setVisible(false); + tasksDropDownCombo7.setVisible(false); + + this.pack(); + this.revalidate(); + this.repaint(); + + allop = false; + showAllOp.setLabel("Show all operators"); + jta.append("show latency all operators" + " \n"); + + } + + }else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_LOAD_ALL_OP].getActionCommand())) { + + for (TMLTask tmltask : tmap1.getTMLModeling().getTasks()) { + + TMLActivity activity; + checkedTransactions = new Vector<String>(); + allTasks = new Vector<String>(); + checkedT = new HashMap<String, Integer>(); + + int opCount = 0; + + if (tmltask.equals(tasksDropDownCombo6.getSelectedItem())) + { + activity = tmltask.getActivityDiagram(); + + activity = tmltask.getActivityDiagram(); + TMLActivityDiagramPanel tadp = (TMLActivityDiagramPanel) (activity.getReferenceObject()); + List<TGComponent> list = tadp.getComponentList(); + Iterator<TGComponent> iterator = list.listIterator(); + TGComponent tgc; + opCount = 0; + + iterator = list.listIterator(); + while (iterator.hasNext()) { + tgc = iterator.next(); + String compName = ""; + if (tgc.isEnabled()) { + if (tgc instanceof CheckableLatency) { + + compName = tmltask.getName() + ":" + tgc.getName(); + compName = compName.replaceAll(" ", ""); + + if (tgc.getValue().contains("(")) { + compName = compName + ":" + tgc.getValue().split("\\(")[0]; + } else { + if (tgc instanceof TMLADExecI) { + compName = ((TMLADExecI) tgc).getDelayValue(); + } + } + checkedT.put(compName + "__" + tgc.getDIPLOID(), tgc.getDIPLOID()); + + } + } + + } + + } + + + + } + for (Entry<String, Integer> cT : checkedT.entrySet()) { + + String name = cT.getKey(); + int id = cT.getValue(); + + if (!checkedTransactions.contains(name)) { + if (checkedTransactions.size() > 0) { + Boolean inserted = false; + + for (int j = 0; j < checkedTransactions.size(); j++) { + + if (id < checkedT.get(checkedTransactions.get(j)) && !checkedTransactions.contains(name)) + + { + checkedTransactions.insertElementAt(name, j); + inserted = true; + + } + + } + + if (!inserted) { + checkedTransactions.insertElementAt(name, checkedTransactions.size()); + } + } else { + checkedTransactions.add(name); + + } + + } + + } + + ComboBoxModel<String> aModel = new DefaultComboBoxModel<String>(checkedTransactions); + tasksDropDownCombo1.setModel(aModel); + } + + } protected void preciselatencyAnalysis(int row1) throws InterruptedException { @@ -862,10 +1179,11 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe row = table11.getSelectedRow(); if (row >= 0) { + try { - new JFrameLatencyDetailedPopup(dgraph, row, false, taint, tc); + new JFrameLatencyDetailedPopup(dgraph, row, true, taint, tc); } catch (Exception e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); } } else { @@ -878,7 +1196,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe try { new JFrameLatencyDetailedPopup(dgraph, row, false, taint, tc); } catch (Exception e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); } } else { @@ -912,6 +1230,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe protected void latencyDetailedAnalysis() { try { + preciseAnalysisbutton.setEnabled(false); String task1 = tasksDropDownCombo1.getSelectedItem().toString(); String task2 = tasksDropDownCombo2.getSelectedItem().toString(); @@ -923,11 +1242,23 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe table11.removeAll(); - table11 = new JTable(tableData, columnNames); + DefaultTableModel tableModel = new DefaultTableModel(tableData, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table11 = new JTable(tableModel); table11.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - preciseAnalysisbutton.setEnabled(true); + table11.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + preciseAnalysisbutton.setEnabled(true); + } + }); Object[][] tableData2 = null; @@ -937,18 +1268,46 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe table12.removeAll(); - table12 = new JTable(tableData2, columnMinMaxNames); + DefaultTableModel tableModel2 = new DefaultTableModel(tableData2, columnMinMaxNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table12 = new JTable(tableModel2); table12.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + table12.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + preciseAnalysisbutton.setEnabled(true); + } + }); } else { tableData2 = dgraph.latencyMinMaxAnalysis(task1, task2, transFile1); table12.removeAll(); - table12 = new JTable(tableData2, columnMinMaxNames); + DefaultTableModel tableModel2 = new DefaultTableModel(tableData2, columnMinMaxNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + }; + + table12 = new JTable(tableModel2); + + // table12 = new JTable(tableData2, columnMinMaxNames); table12.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + table12.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent e) { + preciseAnalysisbutton.setEnabled(true); + } + }); } @@ -969,13 +1328,16 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe scrollPane11.repaint(); // scrollPane11.setVisible(true); + jta.append("Latency has been computed...Please refer to the tables in the Latency Analysis section for the results \n"); + latencybutton.setEnabled(true); this.pack(); this.setVisible(true); } catch (Exception e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); + latencybutton.setEnabled(true); } } @@ -991,7 +1353,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe jta.append("Refer to the generatd dialog to view the graph.\n"); } catch (Exception e) { - jta.append("An Error has Accord \n"); + jta.append("An error has occurred \n"); jta.append(e.getMessage() + "\n"); } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java index 544b055f0fa5e64af076d31866aa47302fae40a7..797aa43fda13752599e5f49af1562582d694a8f5 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java @@ -135,6 +135,12 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList } DefaultTableModel model = new DefaultTableModel(dataDetailedByTask, columnByTaskNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + @Override public Class getColumnClass(int column) { switch (column) { @@ -205,6 +211,12 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList } DefaultTableModel model2 = new DefaultTableModel(dataHWDelayByTask, columnByHWNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + @Override public Class getColumnClass(int column) { switch (column) { @@ -281,7 +293,12 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList } - int timeInterval = (maxTime - minTime); + int timeInterval=0; + if (maxTime>-1 && minTime<Integer.MAX_VALUE ) + { + timeInterval = (maxTime - minTime); + } + columnNames = new String[timeInterval + 1]; columnNames[0] = "Device Name"; @@ -471,7 +488,13 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList } } - int timeInterval = (maxTime - minTime); + int timeInterval=0; + if (maxTime>-1 && minTime<Integer.MAX_VALUE ) + { + timeInterval = (maxTime - minTime); + } + + columnNames = new String[timeInterval + 1]; columnNames[0] = "Device Name"; @@ -566,7 +589,16 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList } - JTable table = new JTable(dataDetailedByTask, columnNames); + DefaultTableModel model3 = new DefaultTableModel(dataDetailedByTask, columnNames) { + + @Override + public boolean isCellEditable(int row, int column) { + return false; + } + + }; + + JTable table = new JTable(model3); table.setFillsViewportHeight(true); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); diff --git a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java index b055432c477b0d14a9971c3ff549f19eeb8c691d..fa20111df6ee4d0cc8f19b8f75ea734aee12e173 100644 --- a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java +++ b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java @@ -33,6 +33,8 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { private latencyDetailedAnalysisMain main; private MainGUI mainGUI; + + private SimulationTrace selectedST; private boolean b; private boolean compare; @@ -267,4 +269,7 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { selectedIndex = selectedIndex1; } + public MainGUI getMainGUI() { + return mainGUI; + } } diff --git a/src/main/java/ui/simulationtraceanalysis/LatencyDetailedAnalysisActions.java b/src/main/java/ui/simulationtraceanalysis/LatencyDetailedAnalysisActions.java index e6f5c6ea0007960fa701fce57a1af4aa358d4306..9a120b4e8b3460e2ba489d118c2893481880b214 100644 --- a/src/main/java/ui/simulationtraceanalysis/LatencyDetailedAnalysisActions.java +++ b/src/main/java/ui/simulationtraceanalysis/LatencyDetailedAnalysisActions.java @@ -80,7 +80,10 @@ public class LatencyDetailedAnalysisActions extends AbstractAction { public static final int ACT_DELETE_SELECTED_RULE = 14; public static final int ACT_DELETE_ALL_RULE = 15; public static final int ACT_LATENCY_PRECISE_ANALYSIS = 16; - public static final int NB_ACTION = 17; + public static final int ACT_SHOW_ALL_OP = 17; + public static final int ACT_LOAD_ALL_OP = 18; + + public static final int NB_ACTION = 19; private static final TAction[] actions = new TAction[NB_ACTION]; @@ -160,7 +163,15 @@ public class LatencyDetailedAnalysisActions extends AbstractAction { actions[ACT_DELETE_ALL_RULE] = new TAction("delete_all_rules", "Delete All Rules", IconManager.imgic53, IconManager.imgic53, "Delete All Rules", "Delete All Rules", 'C'); - + actions[ACT_SHOW_ALL_OP] = new TAction("show-operators", "Show All Operators", IconManager.imgic29, IconManager.imgic29, + "Show All Operators", "Show All Operators", 'T'); + actions[ACT_LOAD_ALL_OP] = new TAction("load-operators", "Load Task Operators", IconManager.imgic29, IconManager.imgic29, + "Load Task Operators", "Load Task Operators", 'T'); + + + + + } public String getActionCommand() { diff --git a/src/main/java/ui/simulationtraceanalysis/SaveGraphToolBar.java b/src/main/java/ui/simulationtraceanalysis/SaveGraphToolBar.java index dca7324a4ce69674dfad8345b56daa593c137d87..48a658c4e1350c589411589bef7144979191c879 100644 --- a/src/main/java/ui/simulationtraceanalysis/SaveGraphToolBar.java +++ b/src/main/java/ui/simulationtraceanalysis/SaveGraphToolBar.java @@ -56,7 +56,7 @@ public class SaveGraphToolBar extends LatencyDetailedAnalysisBar { protected void setActive(boolean b) { getLatencyDetailedAnalysisF().getActions()[LatencyDetailedAnalysisActions.ACT_SAVE_TRACE_PNG].setEnabled(b); getLatencyDetailedAnalysisF().getActions()[LatencyDetailedAnalysisActions.ACT_SAVE_TRACE_GRAPHML].setEnabled(b); - getLatencyDetailedAnalysisF().getActions()[LatencyDetailedAnalysisActions.ACT_Import_ANALYSIS].setEnabled(b); + // getLatencyDetailedAnalysisF().getActions()[LatencyDetailedAnalysisActions.ACT_Import_ANALYSIS].setEnabled(b); } @@ -71,7 +71,7 @@ public class SaveGraphToolBar extends LatencyDetailedAnalysisBar { button = this.add(getLatencyDetailedAnalysisF().getActions()[LatencyDetailedAnalysisActions.ACT_SAVE_TRACE_GRAPHML]); this.addSeparator(); - button = this.add(getLatencyDetailedAnalysisF().getActions()[LatencyDetailedAnalysisActions.ACT_Import_ANALYSIS]); + // button = this.add(getLatencyDetailedAnalysisF().getActions()[LatencyDetailedAnalysisActions.ACT_Import_ANALYSIS]); } diff --git a/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java b/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java index 105fb2b4989055088210b363844f66fa06e3bacd..d2ffc5e291104580473094495251f73c213a6a63 100644 --- a/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java +++ b/src/main/java/ui/simulationtraceanalysis/latencyDetailedAnalysisMain.java @@ -57,27 +57,31 @@ public class latencyDetailedAnalysisMain { public latencyDetailedAnalysisMain(int callerId, MainGUI mainGUI, SimulationTrace selectedST, boolean b, boolean compare, int j) throws InterruptedException { + try { + setTc(new LatencyAnalysisParallelAlgorithms(this)); - setTc(new LatencyAnalysisParallelAlgorithms(this)); - - if (callerId == 2) { + if (callerId == 2) { - tc.setMainGUI(mainGUI); - tc.setSelectedST(selectedST); - tc.setB(b); - tc.setJ(j); - tc.setCompare(compare); - tc.start(8); + tc.setMainGUI(mainGUI); + tc.setSelectedST(selectedST); + tc.setB(b); + tc.setJ(j); + tc.setCompare(compare); + tc.start(8); - } else if (callerId == 1) { + } else if (callerId == 1) { - tc.setMainGUI(mainGUI); - tc.setSelectedST(selectedST); - tc.setB(b); - tc.setJ(j); - tc.setCompare(compare); - tc.start(9); + tc.setMainGUI(mainGUI); + tc.setSelectedST(selectedST); + tc.setB(b); + tc.setJ(j); + tc.setCompare(compare); + tc.start(9); + } + } catch (Exception e1) { + // TODO Auto-generated catch block + TraceManager.addDev("Error: " + e1.getMessage()); } } @@ -128,6 +132,7 @@ public class latencyDetailedAnalysisMain { } } catch (Exception e) { // Just in case the mentionned panel is not a TML design Panel + TraceManager.addDev("Error: " + e.getMessage()); } } @@ -273,16 +278,20 @@ public class latencyDetailedAnalysisMain { } catch (XPathExpressionException e1) { // TODO Auto-generated catch block - e1.printStackTrace(); + + TraceManager.addDev("Error: " + e1.getMessage()); } catch (ParserConfigurationException e1) { // TODO Auto-generated catch block - e1.printStackTrace(); + // e1.printStackTrace(); + TraceManager.addDev("Error: " + e1.getMessage()); } catch (SAXException e1) { // TODO Auto-generated catch block - e1.printStackTrace(); + // e1.printStackTrace(); + TraceManager.addDev("Error: " + e1.getMessage()); } catch (IOException e1) { // TODO Auto-generated catch block - e1.printStackTrace(); + // e1.printStackTrace(); + TraceManager.addDev("Error: " + e1.getMessage()); } cld = new JFrameCompareLatencyDetail(this, mainGUI, checkedTransactionsFile1, map1, cpanels1, selectedST, true, tc); @@ -291,93 +300,71 @@ public class latencyDetailedAnalysisMain { public void latencyDetailedAnalysisForXML(MainGUI mainGUI, SimulationTrace selectedST, boolean b, boolean compare, int j) throws ParserConfigurationException, SAXException, IOException, XPathExpressionException { - String xml = ""; // Populated XML String.... - - DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); - - DocumentBuilder builder = domFactory.newDocumentBuilder(); - Document dDoc = builder.parse(selectedST.getFullPath()); - XPath xPath = XPathFactory.newInstance().newXPath(); + try { + String xml = ""; // Populated XML String.... - String modelNode = (String) xPath.evaluate("/siminfo/global/model", dDoc, XPathConstants.STRING); - TURTLEPanel panel = null; - Vector<TURTLEPanel> allTabs = new Vector<TURTLEPanel>(); + DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); - if (j == 1) { - mainGUI_compare = mainGUI; + DocumentBuilder builder = domFactory.newDocumentBuilder(); + Document dDoc = builder.parse(selectedST.getFullPath()); - } else if (j == 2) { - String fileName = null; + XPath xPath = XPathFactory.newInstance().newXPath(); - Document dDoc1 = null; + String modelNode = (String) xPath.evaluate("/siminfo/global/model", dDoc, XPathConstants.STRING); + TURTLEPanel panel = null; + Vector<TURTLEPanel> allTabs = new Vector<TURTLEPanel>(); - if (modelNode.contains("DIPLODOCUS architecture and mapping Diagram")) { + if (j == 1) { + mainGUI_compare = mainGUI; - fileName = modelNode.replace(" / DIPLODOCUS architecture and mapping Diagram", ""); - } + } else if (j == 2) { + String fileName = null; - if (modelNode.contains("TML Component Task Diagram")) { + Document dDoc1 = null; - fileName = modelNode.replace(" / TML Component Task Diagram", ""); - } + if (modelNode.contains("DIPLODOCUS architecture and mapping Diagram")) { - try { - mainGUI_compare = null; - mainGUI_compare = new MainGUI(false, false, false, false, false, false, false, false, false, false, true, false, false); - mainGUI_compare.build(); - - mainGUI_compare.openProjectFromFile(new File(fileName)); - - mainGUI_compare.frame.setVisible(false); - mainGUI_compare2 = mainGUI_compare; + fileName = modelNode.replace(" / DIPLODOCUS architecture and mapping Diagram", ""); + } - } catch (Exception e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } + if (modelNode.contains("TML Component Task Diagram")) { - if (modelNode.contains("DIPLODOCUS architecture and mapping Diagram")) { + fileName = modelNode.replace(" / TML Component Task Diagram", ""); + } - for (int i = 0; i < mainGUI_compare.tabs.size(); i++) { + try { + mainGUI_compare = null; + mainGUI_compare = new MainGUI(false, false, false, false, false, false, false, false, false, false, true, false, false); + mainGUI_compare.build(); - if (mainGUI_compare.tabs.get(i) instanceof TMLArchiPanel) { + mainGUI_compare.openProjectFromFile(new File(fileName)); - allTabs.add(mainGUI_compare.tabs.get(i)); + mainGUI_compare.frame.setVisible(false); + mainGUI_compare2 = mainGUI_compare; + } catch (Exception e1) { + // TODO Auto-generated catch block + //e1.printStackTrace(); + TraceManager.addDev("Error: " + e1.getMessage()); } - } - if (allTabs.size() == 1) { - mainGUI_compare.checkModelingSyntax(allTabs.get(0), true); - TURTLEPanel selectedTab = allTabs.get(0); - - if (compare) { - - latencyDetailedAnalysis(selectedST, selectedTab, b, true, mainGUI_compare); - - } else { - latencyDetailedAnalysis(selectedST, selectedTab, b, false, mainGUI_compare); + if (modelNode.contains("DIPLODOCUS architecture and mapping Diagram")) { - } + for (int i = 0; i < mainGUI_compare.tabs.size(); i++) { - mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); + if (mainGUI_compare.tabs.get(i) instanceof TMLArchiPanel) { - } else if (allTabs.size() > 1) { + allTabs.add(mainGUI_compare.tabs.get(i)); - JDialogToChosePanel jdmc = new JDialogToChosePanel(mainGUI_compare.frame, allTabs, "Choosing panel to validate"); - // if (b) { - GraphicLib.centerOnParent(jdmc); - jdmc.setVisible(true); // blocked until dialog has been closed + } - // } - mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); - TURTLEPanel selectedTab = jdmc.getSelectedTab(); - if (selectedTab != null) { + } - mainGUI_compare.checkModelingSyntax(selectedTab, true); + if (allTabs.size() == 1) { + mainGUI_compare.checkModelingSyntax(allTabs.get(0), true); + TURTLEPanel selectedTab = allTabs.get(0); if (compare) { @@ -385,51 +372,52 @@ public class latencyDetailedAnalysisMain { } else { latencyDetailedAnalysis(selectedST, selectedTab, b, false, mainGUI_compare); + } - mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); - } - } + mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); - } else if (modelNode.contains("TML Component Task Diagram")) { + } else if (allTabs.size() > 1) { - for (int i = 0; i < mainGUI_compare.tabs.size(); i++) { - panel = mainGUI_compare.tabs.get(i); + JDialogToChosePanel jdmc = new JDialogToChosePanel(mainGUI_compare.frame, allTabs, "Choosing panel to validate"); + // if (b) { + GraphicLib.centerOnParent(jdmc); + jdmc.setVisible(true); // blocked until dialog has been closed - if (mainGUI_compare.tabs.get(i) instanceof TMLComponentDesignPanel) { - allTabs.add(mainGUI_compare.tabs.get(i)); - } + // } + mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); + TURTLEPanel selectedTab = jdmc.getSelectedTab(); + if (selectedTab != null) { - } + mainGUI_compare.checkModelingSyntax(selectedTab, true); - if (allTabs.size() == 1) { - mainGUI_compare.checkModelingSyntax(allTabs.get(0), true); + if (compare) { - TURTLEPanel selectedTab = allTabs.get(0); - if (compare) { + latencyDetailedAnalysis(selectedST, selectedTab, b, true, mainGUI_compare); - latencyDetailedAnalysis(selectedST, selectedTab, b, true, mainGUI_compare); + } else { + latencyDetailedAnalysis(selectedST, selectedTab, b, false, mainGUI_compare); + } + mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); - } else { - latencyDetailedAnalysis(selectedST, selectedTab, b, false, mainGUI_compare); + } } - mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); - } else if (allTabs.size() > 1) { + } else if (modelNode.contains("TML Component Task Diagram")) { - JDialogToChosePanel jdmc = new JDialogToChosePanel(mainGUI_compare.frame, allTabs, "Choosing panel to validate"); + for (int i = 0; i < mainGUI_compare.tabs.size(); i++) { + panel = mainGUI_compare.tabs.get(i); - // if (b) { - GraphicLib.centerOnParent(jdmc); - jdmc.setVisible(true); // blocked until dialog has been closed + if (mainGUI_compare.tabs.get(i) instanceof TMLComponentDesignPanel) { + allTabs.add(mainGUI_compare.tabs.get(i)); + } - // } + } - mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); - TURTLEPanel selectedTab = jdmc.getSelectedTab(); - if (selectedTab != null) { + if (allTabs.size() == 1) { + mainGUI_compare.checkModelingSyntax(allTabs.get(0), true); - mainGUI_compare.checkModelingSyntax(selectedTab, true); + TURTLEPanel selectedTab = allTabs.get(0); if (compare) { latencyDetailedAnalysis(selectedST, selectedTab, b, true, mainGUI_compare); @@ -439,11 +427,39 @@ public class latencyDetailedAnalysisMain { } mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); + } else if (allTabs.size() > 1) { + + JDialogToChosePanel jdmc = new JDialogToChosePanel(mainGUI_compare.frame, allTabs, "Choosing panel to validate"); + + // if (b) { + GraphicLib.centerOnParent(jdmc); + jdmc.setVisible(true); // blocked until dialog has been closed + + // } + + mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); + TURTLEPanel selectedTab = jdmc.getSelectedTab(); + if (selectedTab != null) { + + mainGUI_compare.checkModelingSyntax(selectedTab, true); + if (compare) { + + latencyDetailedAnalysis(selectedST, selectedTab, b, true, mainGUI_compare); + + } else { + latencyDetailedAnalysis(selectedST, selectedTab, b, false, mainGUI_compare); + } + mainGUI_compare.setMode(mainGUI_compare.MODEL_CHANGED); + + } } - } + } + } catch (Exception e1) { + // TODO Auto-generated catch block + // e1.printStackTrace(); + TraceManager.addDev("Error: " + e1.getMessage()); } - } public Vector<String> getCheckedTransactionsFile() { diff --git a/src/main/java/ui/simulationtraceanalysis/vertex.java b/src/main/java/ui/simulationtraceanalysis/vertex.java index 6c825928a2855fdcd885d46680eba0a015f908fa..6d15ead9a1746d3e83ee60a1b218301d76fdecd0 100644 --- a/src/main/java/ui/simulationtraceanalysis/vertex.java +++ b/src/main/java/ui/simulationtraceanalysis/vertex.java @@ -17,6 +17,7 @@ public class vertex { protected static final int TYPE_UNORDER_SEQ = 8; protected static final int TYPE_TRANSACTION = 9; protected static final int TYPE_CTRL = 10; + protected static final int TYPE_SELECT_EVT = 11; private String name; private int id; // identifier