Commit bd373334 authored by Ludovic Apvrille's avatar Ludovic Apvrille

Merge branch 'CompareLatencyDetailedAnlysis' into 'master'

Compare latency detailed analysis

See merge request !323
parents 294ea97c c0760ff5
......@@ -231,6 +231,9 @@ using std::max;
#define TAG_CURRTASKc "</currtask>"
#define TAG_ENERGYo "<energy>"
#define TAG_ENERGYc "</energy>"
#define TAG_MODELo "<model>"
#define TAG_MODELc "</model>"
#define EXT_SEP "."
#define EXT_VCD ".vcd"
......
......@@ -379,7 +379,7 @@ void Simulator::schedule2XML(std::ostringstream& glob,std::string& iTraceFileNam
for(BusList::const_iterator j=_simComp->getBusList().begin(); j != _simComp->getBusList().end(); ++j){
(*j)->schedule2XML(glob,myfile);
}
glob << TAG_MODELo<< _simComp->getModelName() << TAG_MODELc; //name of model
glob << std::endl << TAG_GLOBALc << std::endl << TAG_STARTc << std::endl;
myfile << glob.str() << std::endl;
......
......@@ -558,4 +558,19 @@ public class TMLArchitecture {
return bridgeList;
}
public List<HwA> getHwA() {
List<HwA> hardwareAccList = new ArrayList<HwA>();
for (HwNode node : hwnodes) {
if (node instanceof HwA) {
HwA hardwareAcc = (HwA) node;
hardwareAccList.add(hardwareAcc);
}
}
return hardwareAccList;
}
}
\ No newline at end of file
......@@ -311,8 +311,6 @@ public class ActionPerformer {
mgui.enhanceDiagram();
} else if (command.equals(mgui.actions[TGUIAction.ACT_NC].getActionCommand())) {
mgui.NC();
} else if (command.equals(mgui.actions[TGUIAction.ACT_GEN_LATENCY_GRAPH].getActionCommand())) {
mgui.latencyDetailedAnalysis();
} else if (command.equals(mgui.actions[TGUIAction.EXTERNAL_ACTION_1].getActionCommand())) {
mgui.executeUserCommand(ConfigurationTTool.ExternalCommand1Host, SpecConfigTTool.ExternalCommand1);
} else if (command.equals(mgui.actions[TGUIAction.EXTERNAL_ACTION_2].getActionCommand())) {
......
......@@ -647,13 +647,6 @@ public class JMenuBarTurtle extends JMenuBar {
menuItem.setName("CodeG Executable");
menuItem.addMouseListener(mgui.mouseHandler);
if (mgui.isExperimentalOn()) {
vAndV.addSeparator();
menuItem = vAndV.add(mgui.actions[TGUIAction.ACT_GEN_LATENCY_GRAPH]);
menuItem.setName("Latency Detailed Analysis");
menuItem.addMouseListener(mgui.mouseHandler);
}
// View
menuItem = view.add(mgui.actions[TGUIAction.ACT_VIEW_BIRDEYES_EMB]);
menuItem.setName("View Hide Birdeye");
......
......@@ -68,7 +68,6 @@ import ui.avatarrd.AvatarRDPanel;
import ui.avatarsmd.AvatarSMDPanel;
import ui.cd.TClassDiagramPanel;
import ui.diplodocusmethodology.DiplodocusMethodologyDiagramPanel;
import ui.directedgraph.JFrameLatencyDetailedAnalysis;
import ui.ebrdd.EBRDDPanel;
import ui.eln.ELNDiagramPanel;
import ui.file.*;
......@@ -82,6 +81,7 @@ import ui.osad.TURTLEOSActivityDiagramPanel;
import ui.prosmd.ProactiveSMDPanel;
import ui.req.Requirement;
import ui.req.RequirementDiagramPanel;
import ui.simulationtraceanalysis.latencyDetailedAnalysisMain;
import ui.syscams.SysCAMSComponentTaskDiagramPanel;
import ui.syscams.SysCAMSCompositeComponent;
import ui.tmlad.TMLActivityDiagramPanel;
......@@ -106,12 +106,19 @@ import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpressionException;
import org.xml.sax.SAXException;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.*;
import java.util.List;
......@@ -329,7 +336,11 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
private JFrameInteractiveSimulation jfis;
private JFrameAvatarInteractiveSimulation jfais;
private JFrameCompareSimulationTraces cSimTrace;
private JFrameLatencyDetailedAnalysis latencyDetailedAnalysis;
private latencyDetailedAnalysisMain latencyDetailedAnalysisMain;
// Help
private HelpManager helpManager;
......@@ -341,8 +352,6 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
// Thread for autosave
private PeriodicBehaviorThread pbt;
private TMLArchiPanel tmlap; // Used to retrieve the currently opened architecture panel
// Plugin management
// public static PluginManager pluginManager;
......@@ -4061,7 +4070,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
}
}
} else if (tp instanceof TMLArchiPanel) {
tmlap = (TMLArchiPanel) tp;
TMLArchiPanel tmlap = (TMLArchiPanel) tp;
JDialogSelectTMLNodes.validated = tmlap.validated;
JDialogSelectTMLNodes.ignored = tmlap.ignored;
Vector<TGComponent> tmlNodesToValidate = new Vector<TGComponent>();
......@@ -9543,10 +9552,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
}
// Get the currently opened architecture panel
public TMLArchiPanel getCurrentArchiPanel() {
return tmlap;
}
// DraggableTabbedPaneCallbackInterface
public void hasBeenDragged(int initialPosition, int destinationPosition) {
......@@ -9569,85 +9575,19 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
cSimTrace.setVisible(true);
}
public void latencyDetailedAnalysis() {
public void compareLatencyForXML(SimulationTrace selectedST, boolean b) {
Vector<TGComponent> tmlNodesToValidate = new Vector<TGComponent>();
List<TMLComponentDesignPanel> cpanels;
TMLComponentDesignPanel compdp;
TURTLEPanel tp = getCurrentTURTLEPanel();
// tmlap = (TMLArchiPanel) tp;
if (gtm == null) {
latencyDetailedAnalysisMain = new latencyDetailedAnalysisMain(1,this,selectedST,b,false,0);
} else {
if (gtm.getTMLMapping() != null) {
TMLMapping<TGComponent> map = gtm.getTMLMapping();
for (TGComponent component : tmlap.tmlap.getComponentList()) {
tmlNodesToValidate.add(component);
}
TGComponent tgc;
List<TMLArchiArtifact> artifacts;
String namePanel;
TURTLEPanel tup;
Iterator<? extends TGComponent> iterator = tmlNodesToValidate.listIterator();
cpanels = new ArrayList<TMLComponentDesignPanel>();
while (iterator.hasNext()) {
tgc = iterator.next();
if (tgc instanceof TMLArchiNode) {
artifacts = ((TMLArchiNode) (tgc)).getAllTMLArchiArtifacts();
for (TMLArchiArtifact artifact : artifacts) {
namePanel = artifact.getReferenceTaskName();
try {
tup = getTURTLEPanel(namePanel);
if (tup instanceof TMLComponentDesignPanel) {
compdp = (TMLComponentDesignPanel) (tup);
if (!cpanels.contains(compdp)) {
cpanels.add(compdp);
}
}
} catch (Exception e) {
// Just in case the mentionned panel is not a TML design Panel
}
}
}
}
latencyDetailedAnalysis = new JFrameLatencyDetailedAnalysis(map, cpanels);
latencyDetailedAnalysis.setIconImage(IconManager.img9);
GraphicLib.centerOnParent(latencyDetailedAnalysis, 900, 600);
latencyDetailedAnalysis.setVisible(true);
public void latencyDetailedAnalysisForXML(SimulationTrace selectedST, boolean b, boolean compare, int j) throws XPathExpressionException, ParserConfigurationException, SAXException, IOException {
} else {
latencyDetailedAnalysisMain = new latencyDetailedAnalysisMain(2,this,selectedST,b ,compare,j);
if (gtm.getArtificialTMLMapping() != null) {
TMLMapping<TGComponent> map = gtm.getArtificialTMLMapping();
TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel) tp;
cpanels = new ArrayList<TMLComponentDesignPanel>();
cpanels.add(tmlcdp);
latencyDetailedAnalysis = new JFrameLatencyDetailedAnalysis(map, cpanels);
latencyDetailedAnalysis.setIconImage(IconManager.img9);
GraphicLib.centerOnParent(latencyDetailedAnalysis, 900, 600);
latencyDetailedAnalysis.setVisible(true);
} else {
}
}
}
// dp.getPanels();
}
public JFrameLatencyDetailedAnalysis getLatencyDetailedAnalysis() {
return latencyDetailedAnalysis;
}
} // Class MainGUI
......@@ -180,7 +180,6 @@ public class ModeManager {
actions[TGUIAction.ACT_GEN_AUT].setEnabled(true);
actions[TGUIAction.ACT_GEN_AUTS].setEnabled(true);
actions[TGUIAction.ACT_GEN_UPPAAL].setEnabled(true);
actions[TGUIAction.ACT_GEN_LATENCY_GRAPH].setEnabled(true);
break;
case MainGUI.AVATAR_SYNTAXCHECKING_OK:
actions[TGUIAction.ACT_AVATAR_SIM].setEnabled(true);
......@@ -250,7 +249,6 @@ public class ModeManager {
actions[TGUIAction.ACT_AVATAR_FV_PROVERIF].setEnabled(false);
actions[TGUIAction.ACT_AVATAR_FV_STATICANALYSIS].setEnabled(false);
actions[TGUIAction.ACT_AVATAR_EXECUTABLE_GENERATION].setEnabled(false);
actions[TGUIAction.ACT_GEN_LATENCY_GRAPH].setEnabled(false);
break;
case MainGUI.METHO_CHANGED:
actions[TGUIAction.ACT_GEN_RTLOTOS].setEnabled(false);
......@@ -299,7 +297,6 @@ public class ModeManager {
actions[TGUIAction.ACT_AVATAR_FV_PROVERIF].setEnabled(false);
actions[TGUIAction.ACT_AVATAR_FV_STATICANALYSIS].setEnabled(false);
actions[TGUIAction.ACT_AVATAR_EXECUTABLE_GENERATION].setEnabled(false);
actions[TGUIAction.ACT_GEN_LATENCY_GRAPH].setEnabled(false);
break;
case MainGUI.MODEL_SAVED:
......
......@@ -683,7 +683,6 @@ public class TGUIAction extends AbstractAction {
public static final int MOVE_ENABLED = 463;
public static final int FIRST_DIAGRAM = 464;
public static final int ACT_GEN_LATENCY_GRAPH = 519;
public static final int NB_ACTION = 528;
private static final TAction [] actions = new TAction[NB_ACTION];
......@@ -1425,7 +1424,7 @@ public class TGUIAction extends AbstractAction {
actions[MOVE_ENABLED] = new TAction("Move", "Move enabled", IconManager.imgic780, IconManager.imgic780, "Move enabled (shift + arrow)", "Move", 0);
actions[FIRST_DIAGRAM] = new TAction("FirstDiagram", "First Diagram", IconManager.imgic142, IconManager.imgic142, "Switch the the first diagram", "Switch to the first diagram", 0);
actions[ACT_GEN_LATENCY_GRAPH] = new TAction("generate-latency-graph", "Analyze Latency Graph", IconManager.imgic1118, IconManager.imgic1118, "Analyze Latency Graph", "Analyze Latency Graph", '0');
}
public String getActionCommand() {
......
......@@ -36,7 +36,7 @@
* knowledge of the CeCILL license and that you accept its terms.
*/
package ui.directedgraph;
package ui.simulationtraceanalysis;
import java.awt.BorderLayout;
import java.awt.Color;
......@@ -390,6 +390,8 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
}
HashMap<String, ArrayList<ArrayList<Integer>>> delayTime = dgraph.getRowDelayDetailsByHW(row);
for (SimulationTransaction st : dgraph.getTaskMinMaxHWByRowDetails(row)) {
for (String dName : deviceNames1) {
......@@ -402,7 +404,35 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList
dataDetailedByTask[deviceNames1.indexOf(dName)][columnnmber] = dgraph.getNameIDTaskList().get(st.id);
;
boolean causeDelay = false;
if (delayTime.containsKey(st.deviceName)) {
for (Entry<String, ArrayList<ArrayList<Integer>>> entry : delayTime.entrySet()) {
if (entry.getKey().equals(st.deviceName)) {
ArrayList<ArrayList<Integer>> timeList = entry.getValue();
for (int j = 0; j < timeList.size(); j++) {
if (Integer.valueOf(st.startTime) >= timeList.get(j).get(0)
&& Integer.valueOf(st.startTime) <= timeList.get(j).get(1)) {
causeDelay = true;
}
}
}
}
}
if (causeDelay) {
offPathBehaviorCausingDelay.add(dgraph.getNameIDTaskList().get(st.id) + columnNames[columnnmber]);
} else {
offPathBehavior.add(dgraph.getNameIDTaskList().get(st.id) + columnNames[columnnmber]);
}
}
}
......
......@@ -36,7 +36,7 @@
* knowledge of the CeCILL license and that you accept its terms.
*/
package ui.directedgraph;
package ui.simulationtraceanalysis;
import ui.util.IconManager;
import ui.TAction;
......@@ -65,7 +65,11 @@ public class LatencyDetailedAnalysisActions extends AbstractAction {
public static final int ACT_DETAILED_ANALYSIS = 5;
public static final int ACT_Import_ANALYSIS = 6;
public static final int NB_ACTION = 7;
public static final int ACT_SHOW_GRAPH_FILE_1 = 7;
public static final int ACT_SHOW_GRAPH_FILE_2 = 8;
public static final int ACT_COMPARE_IN_DETAILS = 9;
public static final int NB_ACTION = 10;
private static final TAction[] actions = new TAction[NB_ACTION];
......@@ -118,6 +122,16 @@ public class LatencyDetailedAnalysisActions extends AbstractAction {
actions[ACT_Import_ANALYSIS] = new TAction("import-trace", "Save Directed Graph", IconManager.imgic341, IconManager.imgic341,
"import Directed Graph", "Import Directed Graph", 'S');
actions[ACT_SHOW_GRAPH_FILE_1] = new TAction("show_graph_file_1", "Show Directed Graph 1", IconManager.imgic341, IconManager.imgic341,
"Show Directed Graph", "Show Directed Graph", 'S');
actions[ACT_SHOW_GRAPH_FILE_2] = new TAction("show_graph_file_2", "Show Directed Graph 2", IconManager.imgic341, IconManager.imgic341,
"Show Directed Graph", "Show Directed Graph", 'S');
actions[ACT_COMPARE_IN_DETAILS] = new TAction("compare_in_details", "Compare In Detials", IconManager.imgic53, IconManager.imgic53,
"Compare In Detials", "Compare In Detials", 'S');
}
public String getActionCommand() {
......
......@@ -36,7 +36,7 @@
* knowledge of the CeCILL license and that you accept its terms.
*/
package ui.directedgraph;
package ui.simulationtraceanalysis;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
......
......@@ -36,7 +36,7 @@
* knowledge of the CeCILL license and that you accept its terms.
*/
package ui.directedgraph;
package ui.simulationtraceanalysis;
import javax.swing.JButton;
......
package ui.directedgraph;
package ui.simulationtraceanalysis;
import java.awt.Color;
import java.awt.Component;
......@@ -18,12 +18,16 @@ class TableRenderer extends DefaultTableCellRenderer {
private Vector<Object> allCommands = new Vector<Object>();
private Vector<Color> allColors = new Vector<Color>();
List<String> onPathBehaviors;
List<String> offPathBehaviors;
List<String> offPathBehaviorCausingDelay;
List<String> onPathBehaviors = new Vector<String>();
List<String> offPathBehaviors= new Vector<String>();
List<String> offPathBehaviorCausingDelay = new Vector<String>();
public TableRenderer(List<String> onPathBehavior, List<String> offPathBehaviorCausingDelay, List<String> offPathBehavior) {
this.onPathBehaviors = new Vector<String>();
this.offPathBehaviorCausingDelay = new Vector<String>();
this.offPathBehaviors = new Vector<String>();
this.onPathBehaviors = onPathBehavior;
this.offPathBehaviorCausingDelay = offPathBehaviorCausingDelay;
this.offPathBehaviors = offPathBehavior;
......@@ -48,6 +52,7 @@ class TableRenderer extends DefaultTableCellRenderer {
randomColour = Color.red;
} else if (offPathBehaviors.contains(value.toString() + table.getColumnName(column))) {
randomColour = Color.orange;
// randomColour = Color.red;
}
} else {
this.colorCell = false;
......
......@@ -58,10 +58,16 @@ import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpressionException;
import org.xml.sax.SAXException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
......@@ -96,6 +102,8 @@ public class JDiagramTree extends javax.swing.JTree implements ActionListener, M
protected JMenuItem jmiShowST;
protected JMenuItem jmiShowInFinderST;
protected JMenuItem jmiCompareST;
protected JMenuItem jmiLatencyAnalysisST;
protected JMenuItem jmiCompareLatencyAnalysisST;
protected JPopupMenu popupTree;
protected JPopupMenu popupTreeST;
protected RG selectedRG;
......@@ -259,9 +267,19 @@ public class JDiagramTree extends javax.swing.JTree implements ActionListener, M
popupTreeST.add(jmiShowInFinderST);
if (selectedST.getType() == SimulationTrace.XML_DIPLO) {
jmiCompareST = new JMenuItem("Compare");
jmiCompareST = new JMenuItem("Compare Simulation Traces");
jmiCompareST.addActionListener(this);
popupTreeST.add(jmiCompareST);
jmiLatencyAnalysisST = new JMenuItem("Latency Analysis");
jmiLatencyAnalysisST.addActionListener(this);
popupTreeST.add(jmiLatencyAnalysisST);
jmiCompareLatencyAnalysisST = new JMenuItem("Compare Latency Analysis");
jmiCompareLatencyAnalysisST.addActionListener(this);
popupTreeST.add(jmiCompareLatencyAnalysisST);
}
......@@ -515,9 +533,33 @@ public class JDiagramTree extends javax.swing.JTree implements ActionListener, M
else if (ae.getSource() == jmiCompareST) {
mgui.compareSimulationTraces(selectedST, true);
}
else if (ae.getSource() == jmiLatencyAnalysisST) {
try {
mgui.latencyDetailedAnalysisForXML(selectedST, true , false,1);
} catch (XPathExpressionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (ae.getSource() == jmiCompareLatencyAnalysisST) {
mgui.compareLatencyForXML(selectedST, false);
}
}
if (selectedGT != null) {
if (ae.getSource() == jmiAddFromFile) {
......
/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
*
* ludovic.apvrille AT enst.fr
*
* This software is a computer program whose purpose is to allow the
* edition of TURTLE analysis, design and deployment diagrams, to
* allow the generation of RT-LOTOS or Java code from this diagram,
* and at last to allow the analysis of formal validation traces
* obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
* from INRIA Rhone-Alpes.
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited
* liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
*
* 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.window;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Vector;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpressionException;
import org.xml.sax.SAXException;
import ui.TURTLEPanel;
import ui.util.IconManager;
/**
* Class JDialogToChosePanel: provide the names of tabs in dropdown format so user can chose
*
*
* 20/02/2020
*
* @author Maysam Zoor
*/
public class JDialogToChosePanel extends JDialogBase implements ActionListener, ListSelectionListener {
private JPanel panel1, panel2, panel3, panel6;
private JList<String> listIgnored;
private JList<String> listSelected;
private JButton allSelected;
private JButton addOneSelected;
private JButton addOneIgnored;
private JButton allIgnored;
private JComboBox<String> tasksDropDownCombo1 = new JComboBox<String>();
private Vector<TURTLEPanel> tabs;
private TURTLEPanel selectedTab;
private Container c;
public JDialogToChosePanel(JFrame frame, Vector<TURTLEPanel> allTabs, String title) {
super(frame, title, true);
tabs = allTabs;
c = getContentPane();
initComponents();
pack();
// TODO Auto-generated constructor stub
}
@SuppressWarnings("unchecked")
private void initComponents() {
GridBagLayout gridbag1 = new GridBagLayout();
GridBagConstraints c1 = new GridBagConstraints();
setFont(new Font("Helvetica", Font.PLAIN, 14));
c.setLayout(new BorderLayout());
// setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
GridBagConstraints c01 = new GridBagConstraints();
panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
c01.gridheight = 1;
c01.weighty = 1.0;
c01.weightx = 1.0;
c01.gridwidth = 1;
c01.gridx = 0;
c01.gridy = 0;
// c01.fill = GridBagConstraints.BOTH;
JLabel xmlLabel = new JLabel("Simulation trace as XML File ", JLabel.LEFT);
panel1.add(xmlLabel, c01);
c01.gridheight = 1;
c01.weighty = 1.0;
c01.weightx = 1.0;
c01.gridwidth = 1;
c01.gridx = 1;
c01.gridy = 0;
tasksDropDownCombo1.addActionListener(this);
ComboBoxModel[] models = new ComboBoxModel[1];
models[0] = new DefaultComboBoxModel(loadDropDowns());
tasksDropDownCombo1.setModel(models[0]);
panel1.add(tasksDropDownCombo1, c01);
c.add(panel1, BorderLayout.NORTH);
// main panel;
panel6 = new JPanel();
panel6.setLayout(new FlowLayout());
closeButton = new JButton("OK", IconManager.imgic37);
// closeButton.setPreferredSize(new Dimension(600, 50));
closeButton.addActionListener(this);
closeButton.setPreferredSize(new Dimension(200, 30));
cancelButton = new JButton("Cancel", IconManager.imgic27);
cancelButton.addActionListener(this);
cancelButton.setPreferredSize(new Dimension(200, 30));
panel6.add(cancelButton);
panel6.add(closeButton);
c.add(panel6, BorderLayout.SOUTH);
}
public Vector<String> loadDropDowns() {
Vector<String> allLatencyTasks = new Vector<String>();
for (int i = 0; i < tabs.size(); i++) {
allLatencyTasks.add(tabs.get(i).getNameOfTab());
}
return allLatencyTasks;
}
@Override
public void valueChanged(ListSelectionEvent e) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {