diff --git a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java index 37627a2d46fc9cd7f700f7980864127814cc5163..76ec7b9f786218ebf39a90ff5a8cf344aaace7dc 100755 --- a/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java +++ b/src/main/java/ui/interactivesimulation/JFrameInteractiveSimulation.java @@ -1415,13 +1415,17 @@ public class JFrameInteractiveSimulation extends JFrame implements ActionListene GraphicLib.centerOnParent(jdstmlc); jdstmlc.setVisible(true); - HashMap<String, ArrayList<String>> deviceTaskMap = new HashMap<String, ArrayList<String>>(); - for (HwNode node : tmap.getTMLArchitecture().getHwNodes()){ - deviceTaskMap.put(node.getName(), new ArrayList<String>()); - } - for (TMLTask task: tmap.getTMLModeling().getTasks()){ + LinkedHashMap<String, ArrayList<String>> deviceTaskMap = new LinkedHashMap<String, ArrayList<String>>(); + for (String name: tmlComponentsToValidate){ + TMLTask task = tmap.getTMLModeling().getTMLTaskByName(name); + if (task==null){ + continue; + } HwNode node = tmap.getHwNodeOf(task); - if (node!=null && tmlComponentsToValidate.contains(task.getName())){ + if (node!=null) { + if (!deviceTaskMap.containsKey(node.getName())){ + deviceTaskMap.put(node.getName(), new ArrayList<String>()); + } deviceTaskMap.get(node.getName()).add(task.getName()); } } diff --git a/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java b/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java index ea2b45a77e27dd5c43371a89d5df4bdd6b0e097f..e227cc4945bbe0dabdaa8e5b0b33cc1bf2678066 100644 --- a/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java +++ b/src/main/java/ui/interactivesimulation/JSimulationTMLPanel.java @@ -57,6 +57,7 @@ import java.util.Hashtable; import java.util.Vector; import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; /** * Class JSimulationSDPanel @@ -109,7 +110,7 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, // Or the list is described in the trace (header information) private Vector <String> entityNames; - private HashMap<String, ArrayList<String>> deviceTaskMap = new HashMap<String, ArrayList<String>>(); + private LinkedHashMap<String, ArrayList<String>> deviceTaskMap = new LinkedHashMap<String, ArrayList<String>>(); private final int NO_MODE = 0; private final int FILE_MODE = 1; @@ -179,7 +180,7 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, this.repaint(); } - public void setDevices(HashMap<String, ArrayList<String>> map){ + public void setDevices(LinkedHashMap<String, ArrayList<String>> map){ deviceTaskMap = map; for (String device: deviceTaskMap.keySet()){ for (String task: deviceTaskMap.get(device)){ @@ -1067,32 +1068,14 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, } - //TraceManager.addDev("1"); - // Time tmp = extract(trans, "time"); if (tmp == null) { return; } - //TraceManager.addDev("2 tmp=" + tmp); try { - //index0 = tmp.indexOf('.'); - //if (index0 == -1) { - //TraceManager.addDev("Invalid time value"); - // return; - //} - //tmp1 = tmp.substring(0, index0); - //tmp2 = Conversion.removeStartingCharacters(tmp.substring(index0+1, tmp.length()), "0"); - //TraceManager.addDev("2 tmp1=" + tmp1 + " tmp2=" + tmp2); - //value1 = Integer.decode(tmp1); - // if (tmp2.length() == 0) { - // value2 = 0; - // } else { - // value2 = Integer.decode(tmp2); - //} - // value = ((long)value1)*1000000000+value2; gt.startingTime = Long.valueOf(tmp); gt.finishTime = Long.valueOf(tmp); } catch (Exception e) { @@ -1100,17 +1083,15 @@ public class JSimulationTMLPanel extends JPanel implements MouseMotionListener, return; } - //TraceManager.addDev("3"); - // Name of the block tmp = extract(trans, "block"); if (tmp == null) { return; } - //TraceManager.addDev("4"); //addEntityNameIfApplicable(tmp); + //Show traces of only the selected tasks and ignore transactions if the task is missing gt.entityName = tmp; if (!entityNames.contains(tmp)){ return; diff --git a/src/main/java/ui/window/JDialogSelectTasks.java b/src/main/java/ui/window/JDialogSelectTasks.java index e4e2cabd5440cf470ab4ec7d9235e1be52a38bec..ac84c197c4ee1ac74e4ae508a91fb4067a82ca0a 100644 --- a/src/main/java/ui/window/JDialogSelectTasks.java +++ b/src/main/java/ui/window/JDialogSelectTasks.java @@ -51,6 +51,7 @@ import java.awt.event.ActionListener; import java.util.LinkedList; import java.util.List; import java.util.Vector; +import java.util.Collections; /** @@ -76,6 +77,9 @@ public class JDialogSelectTasks extends JDialogBase implements ActionListener, L private JButton addOneValidated; private JButton addOneIgnored; private JButton allIgnored; + + private JButton shiftUp; + private JButton shiftDown; /** * Creates new form @@ -169,7 +173,7 @@ public class JDialogSelectTasks extends JDialogBase implements ActionListener, L // ignored list panel1 = new JPanel(); panel1.setLayout(new BorderLayout()); - panel1.setBorder(new javax.swing.border.TitledBorder("Ignored components")); + panel1.setBorder(new javax.swing.border.TitledBorder("Ignored Tasks")); listIgnored = new JList<String>(ign); //listIgnored.setPreferredSize(new Dimension(200, 250)); listIgnored.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); @@ -218,10 +222,28 @@ public class JDialogSelectTasks extends JDialogBase implements ActionListener, L c.add(panel3, c2); + + shiftUp = new JButton(IconManager.imgic78); + shiftUp.addActionListener(this); + shiftUp.setPreferredSize(new Dimension(50, 25)); + shiftUp.setActionCommand("shiftUp"); + panel3.add(shiftUp, c1); + + c.add(panel3, c2); + + + shiftDown = new JButton(IconManager.imgic79); + shiftDown.addActionListener(this); + shiftDown.setPreferredSize(new Dimension(50, 25)); + shiftDown.setActionCommand("shiftDown"); + panel3.add(shiftDown, c1); + + c.add(panel3, c2); + // validated list panel2 = new JPanel(); panel2.setLayout(new BorderLayout()); - panel2.setBorder(new javax.swing.border.TitledBorder("Used components")); + panel2.setBorder(new javax.swing.border.TitledBorder("Displayed Tasks")); listValidated = new JList<String>(val); //listValidated.setPreferredSize(new Dimension(200, 250)); listValidated.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); @@ -259,9 +281,31 @@ public class JDialogSelectTasks extends JDialogBase implements ActionListener, L allValidated(); } else if (command.equals("allIgnored")) { allIgnored(); + } else if (command.equals("shiftUp")) { + shiftUp(); + } else if (command.equals("shiftDown")) { + shiftDown(); } } + private void shiftUp(){ + int index = listValidated.getSelectedIndices()[0]; + + Collections.swap(val, index, index-1); + listValidated.setListData(val); + setButtons(); + } + + + private void shiftDown(){ + int index = listValidated.getSelectedIndices()[0]; + + Collections.swap(val, index, index+1); + listValidated.setListData(val); + setButtons(); + } + + private void addOneIgnored() { int[] list = listValidated.getSelectedIndices(); @@ -357,6 +401,20 @@ public class JDialogSelectTasks extends JDialogBase implements ActionListener, L allIgnored.setEnabled(true); closeButton.setEnabled(true); } + if (i2 < 1){ + shiftUp.setEnabled(false); + + } + else { + shiftUp.setEnabled(true); + } + + if (i2==val.size()-1 || i2==-1){ + shiftDown.setEnabled(false); + } + else { + shiftDown.setEnabled(true); + } }