diff options
| author | Paul Buetow <paul@buetow.org> | 2008-06-14 20:42:27 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-06-14 20:42:27 +0000 |
| commit | 1f936fd2d2ca7e132ce280c2c01858fed9e725c4 (patch) | |
| tree | ab7d3020aabff2493bce1763636004edc8e14da9 /sources/simulator | |
| parent | 21282d8a04aa609ce2cf7dbd959ce4256d78d354 (diff) | |
JPopupMenu done
Diffstat (limited to 'sources/simulator')
| -rw-r--r-- | sources/simulator/VSCreateTask.java | 6 | ||||
| -rw-r--r-- | sources/simulator/VSSimulator.java | 32 | ||||
| -rw-r--r-- | sources/simulator/VSSimulatorCanvas.java | 80 |
3 files changed, 85 insertions, 33 deletions
diff --git a/sources/simulator/VSCreateTask.java b/sources/simulator/VSCreateTask.java index 660eae7..1363c6c 100644 --- a/sources/simulator/VSCreateTask.java +++ b/sources/simulator/VSCreateTask.java @@ -71,7 +71,7 @@ public class VSCreateTask { * @param eventClassname the event classname */ public VSCreateTask(String menuText, String eventClassname) { - this.menuText = menuText; + this.menuText = menuText; this.eventClassname = eventClassname; } @@ -81,7 +81,7 @@ public class VSCreateTask { * @param menuText the menu text */ public VSCreateTask(String menuText) { - this.menuText = menuText; + this.menuText = menuText; this.eventClassname = null; } @@ -159,7 +159,7 @@ public class VSCreateTask { /** * Gets the create tasks menu text. * - * @return The text + * @return The text */ public String getMenuText() { return menuText; diff --git a/sources/simulator/VSSimulator.java b/sources/simulator/VSSimulator.java index d660d2e..9b0ef2a 100644 --- a/sources/simulator/VSSimulator.java +++ b/sources/simulator/VSSimulator.java @@ -1106,10 +1106,8 @@ public class VSSimulator extends JPanel implements VSSerializable { VSRegisteredEvents.getNonProtocolClassnames(); comboBox.setMaximumRowCount(20); - String menuText = "----- " + - prefs.getString("lang.events.process") + - " -----"; - comboBox.addItem(menuText); + String menuText = prefs.getString("lang.events.process"); + comboBox.addItem("----- " + menuText + " -----"); if (createTaskFlag) createTasks.add(new VSCreateTask(menuText)); @@ -1117,7 +1115,8 @@ public class VSSimulator extends JPanel implements VSSerializable { for (String eventClassname : eventClassnames) { String eventShortname = VSRegisteredEvents.getShortnameByClassname(eventClassname); - comboBox.addItem(eventShortname); + menuText = eventShortname; + comboBox.addItem(menuText); if (createTaskFlag) createTasks.add(new VSCreateTask(menuText, eventClassname)); } @@ -1138,9 +1137,8 @@ public class VSSimulator extends JPanel implements VSSerializable { VSRegisteredEvents.getShortnameByClassname(eventClassname); String eventShortname = null; - menuText = "----- " + eventShortname_ + " " + - protocol + " -----"; - comboBox.addItem(menuText); + menuText = eventShortname_ + " " + protocol; + comboBox.addItem("----- " + menuText + " -----"); if (createTaskFlag) createTasks.add(new VSCreateTask(menuText)); @@ -1150,18 +1148,18 @@ public class VSSimulator extends JPanel implements VSSerializable { else eventShortname = eventShortname_ + " " + clientRequest; - menuText = eventShortname; + menuText = eventShortname; comboBox.addItem(menuText); if (createTaskFlag) { VSCreateTask createTask = new VSCreateTask(menuText, - eventClassname); + eventClassname); createTask.setShortname(eventShortname); createTask.isRequest(true); createTasks.add(createTask); } eventShortname = eventShortname_ + " " + client + " " + activate; - menuText = eventShortname; + menuText = eventShortname; comboBox.addItem(menuText); if (createTaskFlag) { VSCreateTask createTask = @@ -1174,7 +1172,7 @@ public class VSSimulator extends JPanel implements VSSerializable { } eventShortname = eventShortname_ + " " + client + " " + deactivate; - menuText = eventShortname; + menuText = eventShortname; comboBox.addItem(menuText); if (createTaskFlag) { VSCreateTask createTask = @@ -1187,7 +1185,7 @@ public class VSSimulator extends JPanel implements VSSerializable { } eventShortname = eventShortname_ + " " + server + " " + activate; - menuText = eventShortname; + menuText = eventShortname; comboBox.addItem(menuText); if (createTaskFlag) { VSCreateTask createTask = @@ -1200,7 +1198,7 @@ public class VSSimulator extends JPanel implements VSSerializable { } eventShortname = eventShortname_ + " " + server + " " + deactivate; - menuText = eventShortname; + menuText = eventShortname; comboBox.addItem(menuText); if (createTaskFlag) { VSCreateTask createTask = @@ -1476,12 +1474,12 @@ public class VSSimulator extends JPanel implements VSSerializable { /** * Gets the create tasks objects. Those objects are for creating new tasks - * via the task manager GUI or via right click on the paint area of the - * simulator canvas! + * via the task manager GUI or via right click on the paint area of the + * simulator canvas! * * @return The create tasks objects */ - ArrayList<VSCreateTask> getCreateTasksObjects() { + ArrayList<VSCreateTask> getCreateTaskObjects() { return createTasks; } 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( |
