diff --git a/src/main/java/simulationtraceanalysis/CompareSimulationTrace.java b/src/main/java/simulationtraceanalysis/CompareSimulationTrace.java index 00f959a7f830d17e43c4277fc06e3b0cd3ead209..2962157484dd2218c49bcaa3cc8fd3ad9e7df9a7 100644 --- a/src/main/java/simulationtraceanalysis/CompareSimulationTrace.java +++ b/src/main/java/simulationtraceanalysis/CompareSimulationTrace.java @@ -62,6 +62,10 @@ public class CompareSimulationTrace extends JPanel implements TableModelListener private static JTable table; private String[] columnNames; private Object[][] data; + private static final String DEVICE_NAME = "Device Name"; + private static final String TRACE_NAME = "Trace Name"; + private static final String TRANS_FILE_2 = "transFile 2"; + private static final String TRANS_FILE_1 = "transFile 1"; public TableModel JPanelCompareXmlGraph(Vector<SimulationTransaction> transFile1, Vector<SimulationTransaction> transFile2) { // super(new GridLayout(1, 0)); @@ -101,8 +105,8 @@ public class CompareSimulationTrace extends JPanel implements TableModelListener } columnNames = new String[maxTime + 2]; data = new Object[deviceNames1.size() + deviceNames2.size()][maxTime + 2]; - columnNames[0] = "Device Name"; - columnNames[1] = "Trace Name"; + columnNames[0] = DEVICE_NAME; + columnNames[1] = TRACE_NAME; for (SimulationTransaction st : transFile1) { for (String dName : deviceNames1) { if (st.deviceName.equals(dName)) { @@ -118,7 +122,7 @@ public class CompareSimulationTrace extends JPanel implements TableModelListener } data[allDevices.indexOf(dName.concat("1"))][Integer.parseInt(st.startTime) + i + 2] = st.command; ; - data[allDevices.indexOf(dName.concat("1"))][1] = "transFile 1"; + data[allDevices.indexOf(dName.concat("1"))][1] = TRANS_FILE_1; } } } @@ -137,7 +141,7 @@ public class CompareSimulationTrace extends JPanel implements TableModelListener st.command = writeCommand[0] + " " + sentences2[1]; } data[allDevices.indexOf(dName.concat("2"))][Integer.parseInt(st.startTime) + i + 2] = st.command; - data[allDevices.indexOf(dName.concat("2"))][1] = "transFile 2"; + data[allDevices.indexOf(dName.concat("2"))][1] = TRANS_FILE_2; } } } diff --git a/src/main/java/simulationtraceanalysis/DependencyGraphTranslator.java b/src/main/java/simulationtraceanalysis/DependencyGraphTranslator.java index 0992fec333c39ea59a993737cf23695bef857bac..a9f763ae8c1e2e187272eba71c00d20972da97ac 100644 --- a/src/main/java/simulationtraceanalysis/DependencyGraphTranslator.java +++ b/src/main/java/simulationtraceanalysis/DependencyGraphTranslator.java @@ -210,6 +210,7 @@ public class DependencyGraphTranslator extends SwingWorker { private static final String GET_REQ_ARG_LABEL = "getReqArg"; private static final String WAIT_ST = "Wait: "; private static final String WAIT_EVENT = "Wait event: "; + private static final String SEND_EVENT = "Send event: "; private static final String STOP_AFTER_INFINITE_LOOP = "Stop after infinite loop"; private static final String START_OF_FORK = "startOfFork"; private static final String START_OF_JOIN = "startOfJoin"; @@ -1094,12 +1095,12 @@ public class DependencyGraphTranslator extends SwingWorker { String receiveDataPortdetails = ""; if (sendingPortdetails != null && receivePortdetails != null) { TMLEvent event = waitEvent.getEvent(); - String nameW = taskAc.getName() + "__" + "Wait event: " + event.getName(); + String nameW = taskAc.getName() + "__" + WAIT_EVENT + event.getName(); dependencyGraphRelations.getWaitEvt().put(nameW, new ArrayList<String>()); TMLTask originTasks = waitEvent.getEvent().getOriginTask(); for (TMLSendEvent wait_sendEvent : originTasks.getSendEvents()) { event = wait_sendEvent.getEvent(); - String nameS = originTasks.getName() + "__" + "Send event: " + event.getName(); + String nameS = originTasks.getName() + "__" + SEND_EVENT + event.getName(); dependencyGraphRelations.getWaitEvt().get(nameW).add(nameS); } } else { @@ -1165,12 +1166,12 @@ public class DependencyGraphTranslator extends SwingWorker { .add(SENDEVENT + sendingDataPortdetails + "(" + sendingPortparams + ")"); } else { TMLEvent event = waitEvent.getEvent(); - String nameW = taskAc.getName() + "__" + "Wait event: " + event.getName(); + String nameW = taskAc.getName() + "__" + WAIT_EVENT + event.getName(); dependencyGraphRelations.getWaitEvt().put(nameW, new ArrayList<String>()); TMLTask originTasks = waitEvent.getEvent().getOriginTask(); for (TMLSendEvent wait_sendEvent : originTasks.getSendEvents()) { event = wait_sendEvent.getEvent(); - String nameS = originTasks.getName() + "__" + "Send event: " + event.getName(); + String nameS = originTasks.getName() + "__" + SEND_EVENT + event.getName(); dependencyGraphRelations.getWaitEvt().get(nameW).add(nameS); } } @@ -1317,11 +1318,11 @@ public class DependencyGraphTranslator extends SwingWorker { for (TMLSendEvent sendEvent : taskAc.getSendEvents()) { TMLTask destinationTasks = sendEvent.getEvent().getDestinationTask(); TMLEvent event = sendEvent.getEvent(); - String nameS = taskAc.getName() + "__" + "Send event: " + event.getName(); + String nameS = taskAc.getName() + "__" + SEND_EVENT + event.getName(); dependencyGraphRelations.getSendEvt().put(nameS, new ArrayList<String>()); for (TMLWaitEvent wait_sendEvent : destinationTasks.getWaitEvents()) { event = wait_sendEvent.getEvent(); - String nameW = destinationTasks.getName() + "__" + "Wait event: " + event.getName(); + String nameW = destinationTasks.getName() + "__" + WAIT_EVENT + event.getName(); dependencyGraphRelations.getSendEvt().get(nameS).add(nameW); } } @@ -1906,10 +1907,10 @@ public class DependencyGraphTranslator extends SwingWorker { String name = ""; if (currentElement2 instanceof TMLWaitEvent) { TMLEvent event = ((TMLWaitEvent) currentElement2).getEvent(); - name = taskName + "__" + "Wait event: " + event.getName() + "__" + currentElement2.getID(); + name = taskName + "__" + WAIT_EVENT + event.getName() + "__" + currentElement2.getID(); } else if (currentElement2 instanceof TMLSendEvent) { TMLEvent event = ((TMLSendEvent) currentElement2).getEvent(); - name = taskName + "__" + "Send event: " + event.getName() + "__" + currentElement2.getID(); + name = taskName + "__" + SEND_EVENT + event.getName() + "__" + currentElement2.getID(); } else { name = taskName + "__" + currentElement2.getName().replace(" ", "") + "__" + currentElement2.getID(); } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java index e970d28a58efb57ec1b8d18e1f69b428a74f8da5..86522027ea000e8a7b49d1b783dfc0c69f332dd9 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameCompareLatencyDetail.java @@ -84,7 +84,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener private Object[][] tableData2MinMax, tableData1MinMax, tableData2, tableData = null; private JScrollPane scrollPane11, scrollPane12, scrollPane21, scrollPane22; private MainGUI mainGUI; - private latencyDetailedAnalysisMain latencyDetailedAnalysisMain; + private LatencyDetailedAnalysisMain LatencyDetailedAnalysisMain; private JFrameLatencyDetailedAnalysis jFrameLatencyDetailedAnalysis; private JFrameCompareLatencyDetail jFrameCompareLatencyDetail; private JProgressBar pbar; @@ -101,7 +101,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener private static final String OP_B_COLNAME = "OPERATOR B "; // private DirectedGraphTranslator dgraph; - public JFrameCompareLatencyDetail(latencyDetailedAnalysisMain latencyDetailedAnaly, MainGUI mgui, final Vector<String> checkedTransactionsFile1, + public JFrameCompareLatencyDetail(LatencyDetailedAnalysisMain latencyDetailedAnaly, MainGUI mgui, final Vector<String> checkedTransactionsFile1, TMLMapping<TGComponent> map1, List<TMLComponentDesignPanel> cpanels1, final SimulationTrace selectedST1, boolean b, LatencyAnalysisParallelAlgorithms tc1) throws InterruptedException { super("Latency Comparison"); @@ -110,7 +110,7 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener mainGUI = mgui; map = map1; cpanels = cpanels1; - latencyDetailedAnalysisMain = latencyDetailedAnaly; + LatencyDetailedAnalysisMain = latencyDetailedAnaly; // dgraph2 = graph2; file1 = new File(selectedST1.getFullPath()); // file2 = new File(selectedST2.getFullPath()); @@ -483,20 +483,20 @@ public class JFrameCompareLatencyDetail extends JFrame implements ActionListener int returnVal = fc.showOpenDialog(mainGUI.frame); if (returnVal == JFileChooser.APPROVE_OPTION) { File filefc = fc.getSelectedFile(); - latencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); + LatencyDetailedAnalysisMain.setCheckedTransactionsFile(new Vector<String>()); SimulationTrace STfile2 = new SimulationTrace(filefc.getName(), 6, filefc.getAbsolutePath()); secondFile.setText(filefc.getAbsolutePath()); if (STfile2 instanceof SimulationTrace) { file2 = new File(STfile2.getFullPath()); try { - latencyDetailedAnalysisMain.latencyDetailedAnalysisForXML(mainGUI, STfile2, false, true, 2); + 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.pack(); diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameCompareSimulationTraces.java b/src/main/java/ui/simulationtraceanalysis/JFrameCompareSimulationTraces.java index 7682c76bea42f6d6f160af3b48ed1581625382b0..276786f90b89eee934b4efa952d8fbd71157e8b8 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameCompareSimulationTraces.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameCompareSimulationTraces.java @@ -35,112 +35,108 @@ * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ +package ui.simulationtraceanalysis; -package ui.interactivesimulation; - +import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; -import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.util.Vector; - -import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.border.LineBorder; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; - import org.xml.sax.SAXException; - import common.ConfigurationTTool; +import simulationtraceanalysis.CompareSimulationTrace; import ui.MainGUI; import ui.SimulationTrace; +import ui.interactivesimulation.InteractiveSimulationActions; +import ui.interactivesimulation.SimulationTransaction; +import ui.interactivesimulation.SimulationTransactionParser; -public class JFrameCompareSimulationTraces extends JFrame implements ActionListener { - - private JButton browse, parse, difference, latencyDetails, latencyAnalysis; +public class JFrameCompareSimulationTraces extends JFrame implements ActionListener, TableModelListener { + private JButton browse, parse, difference, latencyDetails, latencyAnalysis, close; private JFileChooser fc, fc2; private File file; - private SimulationTrace selectedST, secondSelectedST; + private SimulationTrace selectedST; private static Vector<SimulationTransaction> transFile1; - Vector<String> dropDown1, dropDown2 = new Vector<String>(); - private JFrame JFrameTest; - - MainGUI _mgui; - - public Vector<SimulationTransaction> getTransFile1() { - return transFile1; - } - - public void setTransFile1(Vector<SimulationTransaction> transFile1) { - this.transFile1 = transFile1; - } - - public Vector<SimulationTransaction> getTransFile2() { - return transFile2; - } - - public void setTransFile2(Vector<SimulationTransaction> transFile2) { - this.transFile2 = transFile2; - } + private Vector<String> dropDown1, dropDown2 = new Vector<String>(); + private JFrame JFrameTest; + private GridBagConstraints mainConstraint = new GridBagConstraints(); + private JTable table11; + private static final String FIRST_SIMULATION_TRACE_FILE = "First Simulation Trace File "; + private static final String Second_SIMULATION_TRACE_FILE = "Second Simulation Trace File "; + private static final String XML_FILES = "XML files"; + private static final String XML = "XML"; + private static final String NAME_REQUIRED = "The name of the XML file is required!"; + private MainGUI _mgui; private Vector<SimulationTransaction> transFile2; private SimulationTransaction st = new SimulationTransaction(); private JTextField file2 = new JTextField(); - private boolean panelAdded = false; private boolean latencyPanelAdded = false; - private static JPanelCompareXmlGraph newContentPane; - + private static CompareSimulationTrace newContentPane; JPanel latencyPanel = new JPanel(new GridBagLayout());; - private JComboBox<String> devicesDropDownCombo1 = new JComboBox<String>(); - private JComboBox<String> devicesDropDownCombo2 = new JComboBox<String>(); private JComboBox<String> tracesCombo1, tracesCombo2; - private Thread t, t1; + private InteractiveSimulationActions[] actions; + private JScrollPane scrollPane11; public JFrameCompareSimulationTraces(MainGUI mgui, String _title, SimulationTrace sST, boolean visible) { - super(_title); - - - + initActions(); this.selectedST = sST; - GridLayout myLayout = new GridLayout(3, 1); + // GridLayout myLayout = new GridLayout(3, 1); _mgui = mgui; // this.setBackground(Color.RED); - this.setLayout(myLayout); - - //addWindowListener(this); + GridBagLayout gridbagmain = new GridBagLayout(); + Container framePanel = getContentPane(); + framePanel.setLayout(gridbagmain); + mainConstraint.gridx = 0; + mainConstraint.gridy = 0; + mainConstraint.fill = GridBagConstraints.BOTH; + // addWindowListener(this); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - + close = new JButton(actions[LatencyDetailedAnalysisActions.ACT_COMPARE_CLOSE]); + parse = new JButton(actions[LatencyDetailedAnalysisActions.ACT_COMPARE_PARSE]); + difference = new JButton(actions[LatencyDetailedAnalysisActions.ACT_COMPARE_DIFF]); + JPanel jp = new JPanel(); + jp.add(close); + jp.add(parse); + jp.add(difference); + framePanel.add(jp, mainConstraint); if (ConfigurationTTool.SystemCCodeDirectory.length() > 0) { fc = new JFileChooser(ConfigurationTTool.SystemCCodeDirectory); } else { fc = new JFileChooser(); } - - FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml"); + FileNameExtensionFilter filter = new FileNameExtensionFilter(XML_FILES, XML); fc.setFileFilter(filter); - JPanel buttonPanel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.NORTHWEST; - JTextField file1 = new JTextField(); - - JLabel lab1 = new JLabel("First Simulation Traces File ", JLabel.LEFT); + JLabel lab1 = new JLabel(FIRST_SIMULATION_TRACE_FILE, JLabel.LEFT); c.fill = GridBagConstraints.NORTHWEST; c.gridx = 0; c.gridy = 0; @@ -148,9 +144,7 @@ public class JFrameCompareSimulationTraces extends JFrame implements ActionListe c.weighty = 1; c.anchor = GridBagConstraints.WEST; buttonPanel.add(lab1, c); - - JLabel lab2 = new JLabel("Secound Simulation Traces File ", JLabel.LEFT); - + JLabel lab2 = new JLabel(Second_SIMULATION_TRACE_FILE, JLabel.LEFT); c.fill = GridBagConstraints.NORTHWEST; c.gridx = 0; c.gridy = 1; @@ -158,372 +152,171 @@ public class JFrameCompareSimulationTraces extends JFrame implements ActionListe c.weighty = 1; c.anchor = GridBagConstraints.WEST; buttonPanel.add(lab2, c); - file1.setEditable(false); file1.setBorder(new LineBorder(Color.BLACK)); file1.setText(selectedST.getFullPath()); - c.fill = GridBagConstraints.NORTHWEST; c.gridx = 1; c.gridy = 0; c.weightx = 2; c.weighty = 1; buttonPanel.add(file1, c); - file2.setEditable(false); file2.setText("file 2 name"); file2.setBorder(new LineBorder(Color.BLACK)); - c.fill = GridBagConstraints.NORTHWEST; c.gridx = 1; c.gridy = 1; - c.weightx = 1; - c.weighty = 1; buttonPanel.add(file2, c); - browse = new JButton("Browse"); browse.addActionListener(this); c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 1; - c.gridy = 3; + c.gridx = 4; + c.gridy = 1; c.weightx = 1; c.weighty = 1; buttonPanel.add(browse, c); - - parse = new JButton("parse"); - parse.addActionListener(this); - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 3; - c.gridy = 3; - c.weightx = 5; - c.weighty = 1; - buttonPanel.add(parse, c); - - /*latencyAnalysis = new JButton("latencyAnalysis"); - latencyAnalysis.addActionListener(this); - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 1; - c.gridy = 4; - c.weightx = 5; - c.weighty = 1; - buttonPanel.add(latencyAnalysis, c);*/ - - difference = new JButton("difference"); - difference.addActionListener(this); - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 3; - c.gridy = 4; - c.weightx = 5; - c.weighty = 1; - buttonPanel.add(difference, c); - - this.add(buttonPanel); - + mainConstraint.gridx = 0; + mainConstraint.gridy = 1; + this.add(buttonPanel, mainConstraint); + JPanel jp03 = new JPanel(new BorderLayout()); + table11 = new JTable(); + scrollPane11 = new JScrollPane(table11, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); + scrollPane11.setVisible(true); + jp03.add(scrollPane11, BorderLayout.CENTER); + mainConstraint.weighty = 1.0; + mainConstraint.weightx = 1.0; + mainConstraint.gridx = 0; + mainConstraint.gridy = 2; + this.add(jp03, mainConstraint); this.pack(); this.setVisible(visible); - JFrameTest= this; - + JFrameTest = this; } @Override public void actionPerformed(ActionEvent e) { - + String command = e.getActionCommand(); if (e.getSource() == browse) { - - FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml"); + FileNameExtensionFilter filter = new FileNameExtensionFilter(XML_FILES, XML); fc.setFileFilter(filter); - int returnVal = fc.showOpenDialog(JFrameCompareSimulationTraces.this); - if (returnVal == JFileChooser.APPROVE_OPTION) { file = fc.getSelectedFile(); file2.setText(file.getPath()); - } - } else if (e.getSource() == parse) { - + } else if ((command.equals(actions[LatencyDetailedAnalysisActions.ACT_COMPARE_PARSE].getActionCommand()))) { try { parseXML(selectedST.getFullPath(), file.getPath()); DrawSimulationResults(transFile1, transFile2); - } catch (SAXException e1) { - e1.printStackTrace(); } catch (IOException e1) { - e1.printStackTrace(); } catch (ParserConfigurationException e1) { - e1.printStackTrace(); } - - } else if (e.getSource() == latencyDetails) { - newContentPane.getTable(); - - new JFrameShowLatencyDetails(transFile1, transFile2, devicesDropDownCombo1.getSelectedItem(), tracesCombo1.getSelectedItem(), - devicesDropDownCombo2.getSelectedItem(), tracesCombo2.getSelectedItem(), true); - - } else if (e.getSource() == difference) { - - newContentPane.showDifference(); - - this.pack(); - this.setVisible(true); - } else if (e.getSource() == devicesDropDownCombo1) { - Vector<Object> transacationsDropDown1 = newContentPane.loadTransacationsDropDown(devicesDropDownCombo1.getSelectedItem()); - - final DefaultComboBoxModel<Object> model = new DefaultComboBoxModel<Object>(transacationsDropDown1); - - // tracesCombo1.setModel(model); - - } else if (e.getSource() == devicesDropDownCombo2) { - Vector<Object> transacationsDropDown2 = newContentPane.loadTransacationsDropDown(devicesDropDownCombo2.getSelectedItem()); - - final DefaultComboBoxModel<Object> model = new DefaultComboBoxModel<Object>(transacationsDropDown2); - - // tracesCombo2.setModel(model); - - } /*else if (e.getSource() == latencyAnalysis) { - - t = new Thread() { - public void run() { - try { - _mgui.latencyDetailedAnalysisForXML(selectedST, true, false,1); - } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_COMPARE_DIFF].getActionCommand())) { + int numRows = table11.getRowCount(); + int numCols = table11.getColumnCount(); + for (int j = 2; j < numCols; j++) { + for (int i = 0; i < numRows; i++) { + for (int k = 0; k < numRows; k++) { + if (table11.getValueAt(i, 0).equals(table11.getValueAt(k, 0))) { + if (i != k && table11.getValueAt(i, j) != null && table11.getValueAt(k, j) != null + && table11.getValueAt(i, j).equals(table11.getValueAt(k, j))) { + table11.setValueAt(null, k, j); + table11.setValueAt(null, i, j); + } + } } } - }; - - t.start(); - - try { - t.join(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - - if (t.getState() == Thread.State.TERMINATED) { - dropDown1 = _mgui.getLatencyDetailedAnalysis().getCheckedTransactions(); } - - secondSelectedST = new SimulationTrace("file2", SimulationTrace.XML_DIPLO, file2.getText()); - - System.out.println("load drop down1: " + _mgui.getLatencyDetailedAnalysis().getCheckedTransactions().size()); - - t1 = new Thread() { - public void run() { - try { - _mgui.latencyDetailedAnalysisForXML(secondSelectedST, true,false,2); - } catch (XPathExpressionException | ParserConfigurationException | SAXException | IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - }; - - t1.start(); - - try { - t1.join(); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - - if (t1.getState() == Thread.State.TERMINATED) { - - dropDown2 = _mgui.getLatencyDetailedAnalysis().getCheckedTransactions(); - } - System.out.println("load drop down2: " + _mgui.getLatencyDetailedAnalysis().getCheckedTransactions().size()); - - if (!latencyPanelAdded) { - DrawLatencyPanel(); - - latencyPanelAdded = true; - latencyPanel.revalidate(); - latencyPanel.repaint(); - latencyPanel.setVisible(true); - this.add(latencyPanel); - this.pack(); - - } else { - this.revalidate(); - latencyPanel.revalidate(); - latencyPanel.repaint(); - - } - - this.revalidate(); - this.repaint(); + numRows = table11.getRowCount(); + numCols = table11.getColumnCount(); + table11.repaint(); + table11.revalidate(); + scrollPane11.setViewportView(table11); + scrollPane11.setVisible(true); + scrollPane11.revalidate(); + scrollPane11.repaint(); this.pack(); - this.revalidate(); - this.repaint(); - this.setVisible(true); - }*/ - + } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_COMPARE_CLOSE].getActionCommand())) { + dispose(); + setVisible(false); + } } - /* - * else if (e.getSource() == graph) { - * - * if (ConfigurationTTool.SystemCCodeDirectory.length() > 0) { fc2 = new - * JFileChooser(ConfigurationTTool.SystemCCodeDirectory); } else { fc2 = new - * JFileChooser(); } - * - * FileNameExtensionFilter filter = new FileNameExtensionFilter("graphml files", - * "graphml"); fc2.setFileFilter(filter); - * - * int returnVal = fc2.showOpenDialog(JFrameCompareSimulationTraces.this); - * - * if (returnVal == JFileChooser.APPROVE_OPTION) { file = fc2.getSelectedFile(); - * // file2.setText(file.getPath()); - * - * } - * - * FileReader ps = null; try { ps = new FileReader(file); } catch - * (FileNotFoundException e1) { // TODO Auto-generated catch block - * e1.printStackTrace(); } - * - * VertexProvider<String> vertexProvider = (id, attributes) -> { String cv = new - * String(id); cv.replaceAll("\\s+", ""); cv.replaceAll("(", ""); - * cv.replaceAll(")", ""); return cv; - * - * }; - * - * EdgeProvider<String, DefaultEdge> edgeProvider = (from, to, label, - * attributes) -> new DefaultEdge(); - * - * GraphMLImporter<String, DefaultEdge> importer = new GraphMLImporter<String, - * DefaultEdge>(vertexProvider, edgeProvider); - * - * try { Graph<String, DefaultEdge> importedGraph = new - * DefaultDirectedGraph<>(DefaultEdge.class); ; - * importer.importGraph(importedGraph, ps); - * System.out.print(importedGraph.vertexSet().size()); } catch (ImportException - * e1) { // TODO Auto-generated catch block e1.printStackTrace(); } - * - * } - */ - - // } - public int parseXML(String file1Path, String file2Path) throws SAXException, IOException, ParserConfigurationException { - if (file1Path.length() == 0 || file2Path.length() == 0) - throw new RuntimeException("The name of the XML file is required!"); - + throw new RuntimeException(NAME_REQUIRED); SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); SAXParser saxParser = saxParserFactory.newSAXParser(); SimulationTransactionParser handler = new SimulationTransactionParser(); - saxParser.parse(new File(file1Path), handler); transFile1 = handler.getStList(); - handler = new SimulationTransactionParser(); - saxParser.parse(new File(file2Path), handler); transFile2 = handler.getStList(); - return 1; - } private void DrawSimulationResults(Vector<SimulationTransaction> transFile1, Vector<SimulationTransaction> transFile2) { - - if (panelAdded == true) { - - newContentPane = new JPanelCompareXmlGraph(transFile1, transFile2); - newContentPane.setOpaque(true); - - newContentPane.updateTable(); - - } else { - - newContentPane = new JPanelCompareXmlGraph(transFile1, transFile2); - newContentPane.setOpaque(true); - - newContentPane.drawTable(); - - this.add(newContentPane); - - panelAdded = true; + newContentPane = new CompareSimulationTrace(); + table11.setModel(newContentPane.JPanelCompareXmlGraph(transFile1, transFile2)); + table11.setFillsViewportHeight(true); + table11.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + SimulationTraceTableRenderer tr = new SimulationTraceTableRenderer(); + int ncols = table11.getColumnCount(); + table11.getModel().addTableModelListener(this); + TableColumnModel tcm = table11.getColumnModel(); + for (int c = 0; c < ncols; c++) { + TableColumn tc = tcm.getColumn(c); + tc.setCellRenderer(tr); } - + // newContentPane.setOpaque(true); + table11.repaint(); + table11.revalidate(); + scrollPane11.setViewportView(table11); + scrollPane11.setVisible(true); + scrollPane11.revalidate(); + scrollPane11.repaint(); this.pack(); this.setVisible(true); } - private void DrawLatencyPanel() { - - latencyPanel = new JPanel(new GridBagLayout()); // use FlowLayout - GridBagConstraints c = new GridBagConstraints(); - latencyPanel.setBorder(new javax.swing.border.TitledBorder("Latency for Simulation Traces File")); - c.fill = GridBagConstraints.NORTHWEST; - - new JTextField(); - - devicesDropDownCombo1 = new JComboBox<String>(dropDown1); - - tracesCombo1 = new JComboBox<String>(dropDown1); - - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 0; - c.gridy = 0; - c.weightx = 1; - c.weighty = 1; - c.anchor = GridBagConstraints.WEST; - latencyPanel.add(devicesDropDownCombo1, c); - - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 0; - c.gridy = 1; - c.weightx = 1; - c.weighty = 1; - latencyPanel.add(tracesCombo1, c); - - devicesDropDownCombo1.addActionListener(this); - - devicesDropDownCombo2 = new JComboBox<String>(dropDown2); - - tracesCombo2 = new JComboBox<String>(dropDown2); - - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 1; - c.gridy = 0; - - latencyPanel.add(devicesDropDownCombo2, c); - - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 1; - c.gridy = 1; - - latencyPanel.add(tracesCombo2, c); - - devicesDropDownCombo2.addActionListener(this); - - latencyDetails = new JButton("latency Details"); - latencyDetails.addActionListener(this); - c.fill = GridBagConstraints.NORTHWEST; - c.gridx = 1; - c.gridy = 3; - c.weightx = 1; - c.weighty = 1; - latencyPanel.add(latencyDetails, c); - latencyPanel.setVisible(true); - + private void initActions() { + actions = new InteractiveSimulationActions[InteractiveSimulationActions.NB_ACTION]; + for (int i = 0; i < InteractiveSimulationActions.NB_ACTION; i++) { + actions[i] = new InteractiveSimulationActions(i); + actions[i].addActionListener(this); + // actions[i].addKeyListener(this); + } } - - public void close() { - dispose(); setVisible(false); + } + + @Override + public void tableChanged(TableModelEvent e) { + } + public Vector<SimulationTransaction> getTransFile1() { + return transFile1; } + public void setTransFile1(Vector<SimulationTransaction> transFile1) { + this.transFile1 = transFile1; + } + + public Vector<SimulationTransaction> getTransFile2() { + return transFile2; + } + + public void setTransFile2(Vector<SimulationTransaction> transFile2) { + this.transFile2 = transFile2; + } } \ No newline at end of file diff --git a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java index a2af5cf6a6790592767f8dd979c9c574564b3200..0b7095ff491aa353c2d96fe6e82c38a661e58993 100644 --- a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java +++ b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java @@ -25,7 +25,7 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { private DependencyGraphTranslator dgraph, dgraph1, dgraph2; private int row, row1, row2, row3, row4, selectedIndex; private Object[][] dataDetailedByTask, dataDetailedByTask2; - private latencyDetailedAnalysisMain main; + private LatencyDetailedAnalysisMain main; private MainGUI mainGUI; private SimulationTrace selectedST; private boolean b; @@ -35,8 +35,8 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { private Vector<SimulationTransaction> transFile1, transFile2; private String task1, task2, task3, task4; - public LatencyAnalysisParallelAlgorithms(latencyDetailedAnalysisMain latencyDetailedAnalysisMain) { - main = latencyDetailedAnalysisMain; + public LatencyAnalysisParallelAlgorithms(LatencyDetailedAnalysisMain LatencyDetailedAnalysisMain) { + main = LatencyDetailedAnalysisMain; } public void run() {