summaryrefslogtreecommitdiff
path: root/sources/simulator/VSSimulatorCanvas.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-06-14 20:42:27 +0000
committerPaul Buetow <paul@buetow.org>2008-06-14 20:42:27 +0000
commit1f936fd2d2ca7e132ce280c2c01858fed9e725c4 (patch)
treeab7d3020aabff2493bce1763636004edc8e14da9 /sources/simulator/VSSimulatorCanvas.java
parent21282d8a04aa609ce2cf7dbd959ce4256d78d354 (diff)
JPopupMenu done
Diffstat (limited to 'sources/simulator/VSSimulatorCanvas.java')
-rw-r--r--sources/simulator/VSSimulatorCanvas.java80
1 files changed, 67 insertions, 13 deletions
diff --git a/sources/simulator/VSSimulatorCanvas.java b/sources/simulator/VSSimulatorCanvas.java
index 5480d13..a00d3ad 100644
--- a/sources/simulator/VSSimulatorCanvas.java
+++ b/sources/simulator/VSSimulatorCanvas.java
@@ -511,6 +511,8 @@ public class VSSimulatorCanvas extends Canvas
updateFromPrefs();
final VSPrefs finalPrefs = prefs;
+ final VSSimulator finalSimulator = simulator;
+
addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent me) {
final VSProcess process = getProcessAtYPos(me.getY());
@@ -608,7 +610,7 @@ public class VSSimulatorCanvas extends Canvas
popup.addSeparator();
- long xPosTime = getXPositionTime(me.getX());
+ final long xPosTime = getXPositionTime(me.getX());
String timeString = finalPrefs.getString(
"lang.event.add.time") +
" " + xPosTime + "ms";
@@ -616,22 +618,74 @@ public class VSSimulatorCanvas extends Canvas
JMenu subMenu = new JMenu(
finalPrefs.getString("lang.event.add.local")
+ " " + timeString);
- if (process == null)
+
+ ArrayList<VSCreateTask> createTasks =
+ finalSimulator.getCreateTaskObjects();
+
+ if (process == null) {
subMenu.setEnabled(false);
- //subMenu.addActionListener(actionListener);
+ } else {
+ JMenu subSubMenu = null;
+ for (final VSCreateTask createTask : createTasks) {
+ if (createTask.isDummy()) {
+ if (subSubMenu != null)
+ subMenu.add(subSubMenu);
+ subSubMenu = new JMenu(
+ createTask.getMenuText());
+ } else {
+ item = new JMenuItem(createTask.getMenuText());
+ item.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ VSTask task =
+ createTask.createTask(process,
+ xPosTime,
+ true);
+ taskManager.addTask(
+ task, VSTaskManager.PROGRAMMED);
+ finalSimulator.updateTaskManagerTable();
+ }
+ });
+ subSubMenu.add(item);
+ }
+ }
+ }
+
popup.add(subMenu);
- item = new JMenuItem("foo");
- subMenu.add(item);
-
- if (finalPrefs.getBoolean("sim.mode.expert")) {
- subMenu = new JMenu(
- finalPrefs.getString("lang.event.add.global")
- + " " + timeString);
- if (process == null)
- subMenu.setEnabled(false);
- popup.add(subMenu);
+
+ subMenu = new JMenu(
+ finalPrefs.getString("lang.event.add.global")
+ + " " + timeString);
+ if (process == null) {
+ subMenu.setEnabled(false);
+ } else {
+ JMenu subSubMenu = null;
+ for (final VSCreateTask createTask : createTasks) {
+ if (createTask.isDummy()) {
+ if (subSubMenu != null)
+ subMenu.add(subSubMenu);
+ subSubMenu = new JMenu(
+ createTask.getMenuText());
+ } else {
+ item = new JMenuItem(createTask.getMenuText());
+ item.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ VSTask task =
+ createTask.createTask(process,
+ xPosTime,
+ false);
+ taskManager.addTask(
+ task, VSTaskManager.PROGRAMMED);
+ finalSimulator.updateTaskManagerTable();
+ }
+ });
+ subSubMenu.add(item);
+ }
+ }
}
+ if (finalPrefs.getBoolean("sim.mode.expert"))
+ popup.add(subMenu);
+
popup.addSeparator();
item = new JMenuItem(