khammond 01/09/30 20:40:31
Modified: src/org/apache/jmeter/gui JMeterMenuBar.java
Log:
Added Edit menu. Java Look and Feel guidelines recommend that all right-click menu
items should also be available from the main menu. Previously, they were not. Also,
this class now uses JMeterUtils.getResString() instead of directly accessing the
resource bundle.
Revision Changes Path
1.14 +112 -23 jakarta-jmeter/src/org/apache/jmeter/gui/JMeterMenuBar.java
Index: JMeterMenuBar.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/gui/JMeterMenuBar.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- JMeterMenuBar.java 2001/09/30 00:01:34 1.13
+++ JMeterMenuBar.java 2001/10/01 03:40:31 1.14
@@ -77,6 +77,10 @@
JMenuItem file_save_all;
JMenuItem file_load;
JMenuItem file_exit;
+ JMenu editMenu;
+ JMenu edit_add;
+ JMenu edit_add_submenu;
+ JMenuItem edit_remove;
JMenu runMenu;
JMenuItem run_start;
JMenu remote_start;
@@ -96,8 +100,6 @@
String[] remoteHosts;
- private static ResourceBundle rb =
ResourceBundle.getBundle("org.apache.jmeter.resources.messages");
-
public JMeterMenuBar()
{
remote_engine_start = new LinkedList();
@@ -113,9 +115,9 @@
createMenuBar();
}
- public void setSaveEnabled(boolean save)
+ public void setFileSaveEnabled(boolean enabled)
{
- file_save.setEnabled(save);
+ file_save.setEnabled(enabled);
// Currently, SAVE ALL is not implemented. It actually generates
// a nasty exception when selected. Therefore, for now, always
@@ -124,7 +126,77 @@
file_save_all.setEnabled(false);
}
+ public void setFileLoadEnabled(boolean enabled)
+ {
+ file_load.setEnabled(enabled);
+ }
+
+ public void setEditEnabled(boolean enabled)
+ {
+ editMenu.setEnabled(enabled);
+ }
+
+ public void setEditAddMenu(JMenu menu)
+ {
+ // If the Add menu already exists, remove it.
+ if (edit_add != null)
+ {
+ editMenu.remove(edit_add);
+ }
+
+ // Insert the Add menu as the first menu item in the Edit menu.
+ edit_add = menu;
+ editMenu.insert(edit_add, 0);
+ }
+
+ public void setEditAddEnabled(boolean enabled)
+ {
+ edit_add.setEnabled(enabled);
+ // If we are enabling the Edit-->Add menu item, then we also need to
+ // enable the Edit menu. The Edit menu may already be enabled, but
+ // there's no harm it trying to enable it again.
+ if (enabled)
+ {
+ setEditEnabled(true);
+ }
+ else
+ {
+ // If we are disabling the Edit-->Add menu item and the
Edit-->Remove
+ // menu item is disabled, then we also need to disable the
Edit menu.
+ // The Java Look and Feel Guidelines say to disable a menu if
all
+ // menu items are disabled.
+ if (!edit_remove.isEnabled())
+ {
+ editMenu.setEnabled(false);
+ }
+ }
+ }
+
+ public void setEditRemoveEnabled(boolean enabled)
+ {
+ edit_remove.setEnabled(enabled);
+
+ // If we are enabling the Edit-->Remove menu item, then we also need to
+ // enable the Edit menu. The Edit menu may already be enabled, but
+ // there's no harm it trying to enable it again.
+ if (enabled)
+ {
+ setEditEnabled(true);
+ }
+ else
+ {
+ // If we are disabling the Edit-->Remove menu item and the
Edit-->Add
+ // menu item is disabled, then we also need to disable the
Edit menu.
+ // The Java Look and Feel Guidelines say to disable a menu if
all
+ // menu items are disabled.
+ if (!edit_add.isEnabled())
+ {
+ editMenu.setEnabled(false);
+ }
+ }
+ }
+
/************************************************************
* Creates the MenuBar for this application. I believe in my heart that this
* should be defined in a file somewhere, but that is for later.
@@ -132,9 +204,9 @@
public void createMenuBar()
{
// FILE MENU
- fileMenu = new JMenu(rb.getString("file"));
+ fileMenu = new JMenu(JMeterUtils.getResString("file"));
fileMenu.setMnemonic('F');
- file_save = new JMenuItem(rb.getString("save"),'S');
+ file_save = new JMenuItem(JMeterUtils.getResString("save"),'S');
file_save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,KeyEvent.CTRL_MASK));
file_save.addActionListener(ActionRouter.getInstance());
@@ -142,7 +214,7 @@
// is ROOT, which cannot be saved.
file_save.setEnabled(false);
- file_save_all = new JMenuItem(rb.getString("save_all"),'A');
+ file_save_all = new
JMenuItem(JMeterUtils.getResString("save_all"),'A');
file_save_all.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,KeyEvent.CTRL_MASK));
file_save_all.addActionListener(ActionRouter.getInstance());
// Currently, SAVE ALL is not implemented. It actually generates
@@ -150,11 +222,15 @@
// make the SAVE ALL menu item disabled.
file_save_all.setEnabled(false);
- file_load = new JMenuItem(rb.getString("open"),'O');
+ file_load = new JMenuItem(JMeterUtils.getResString("open"),'O');
file_load.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,KeyEvent.CTRL_MASK));
file_load.addActionListener(ActionRouter.getInstance());
- file_exit = new JMenuItem(rb.getString("exit"), 'X');
+ // Set default SAVE menu item to disabled since the default node that
is selected
+ // is ROOT, which does not allow items to be inserted.
+ file_load.setEnabled(false);
+
+ file_exit = new JMenuItem(JMeterUtils.getResString("exit"), 'X');
file_exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
KeyEvent.CTRL_MASK));
file_exit.setActionCommand("exit");
file_exit.addActionListener(ActionRouter.getInstance());
@@ -164,22 +240,34 @@
fileMenu.addSeparator();
fileMenu.add(file_exit);
+ // EDIT MENU
+ editMenu = new JMenu(JMeterUtils.getResString("menu_edit"));
+ editMenu.setMnemonic('E');
+ edit_remove = new JMenuItem(JMeterUtils.getResString("remove"));
+ edit_remove.setMnemonic('R');
+ edit_remove.addActionListener(ActionRouter.getInstance());
+ edit_remove.setEnabled(false);
+ editMenu.add(edit_remove);
+ // From the Java Look and Feel Guidelines: If all items in a menu
+ // are disabled, then disable the menu. Makes sense.
+ editMenu.setEnabled(false);
+
// RUN MENU
- runMenu = new JMenu(rb.getString("run"));
+ runMenu = new JMenu(JMeterUtils.getResString("run"));
runMenu.setMnemonic('R');
- run_start = new JMenuItem(rb.getString("start"), 'S');
+ run_start = new JMenuItem(JMeterUtils.getResString("start"), 'S');
run_start.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
KeyEvent.CTRL_MASK));
run_start.addActionListener(ActionRouter.getInstance());
run_start.setActionCommand("start");
- run_stop = new JMenuItem(rb.getString("stop"), 'T');
+ run_stop = new JMenuItem(JMeterUtils.getResString("stop"), 'T');
run_stop.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PERIOD,
KeyEvent.CTRL_MASK));
run_stop.setEnabled(false);
run_stop.addActionListener(ActionRouter.getInstance());
run_stop.setActionCommand("stop");
- run_clear = new JMenuItem(rb.getString("clear"), 'C');
+ run_clear = new JMenuItem(JMeterUtils.getResString("clear"), 'C');
run_clear.addActionListener(ActionRouter.getInstance());
run_clear.setActionCommand(org.apache.jmeter.gui.action.Clear.CLEAR);
- run_clearAll = new JMenuItem(rb.getString("clear_all"), 'a');
+ run_clearAll = new JMenuItem(JMeterUtils.getResString("clear_all"),
'a');
run_clearAll.addActionListener(ActionRouter.getInstance());
run_clearAll.setActionCommand(org.apache.jmeter.gui.action.Clear.CLEAR_ALL);
runMenu.add(run_start);
@@ -199,17 +287,17 @@
runMenu.add(run_clearAll);
// REPORT MENU
- reportMenu = new JMenu(rb.getString("report"));
+ reportMenu = new JMenu(JMeterUtils.getResString("report"));
reportMenu.setMnemonic('P');
- analyze = new JMenuItem(rb.getString("analyze"));
+ analyze = new JMenuItem(JMeterUtils.getResString("analyze"));
analyze.setMnemonic('A');
analyze.addActionListener(ActionRouter.getInstance());
analyze.setEnabled(false);
reportMenu.add(analyze);
// OPTIONS MENU
- optionsMenu = new JMenu(rb.getString("option"));
- lafMenu = new JMenu(rb.getString("appearance"));
+ optionsMenu = new JMenu(JMeterUtils.getResString("option"));
+ lafMenu = new JMenu(JMeterUtils.getResString("appearance"));
UIManager.LookAndFeelInfo lafs[] =
UIManager.getInstalledLookAndFeels();
for (int i = 0; i < lafs.length; ++i)
{
@@ -224,7 +312,7 @@
try
{
Class.forName("com.sun.net.ssl.KeyManager");
- sslManager = new JMenuItem(rb.getString("sslManager"));
+ sslManager = new
JMenuItem(JMeterUtils.getResString("sslManager"));
sslManager.addActionListener(ActionRouter.getInstance());
sslManager.setActionCommand("sslManager");
sslManager.setMnemonic('S');
@@ -237,14 +325,15 @@
}
// HELP MENU
- helpMenu = new JMenu(rb.getString("help"));
+ helpMenu = new JMenu(JMeterUtils.getResString("help"));
helpMenu.setMnemonic('H');
- help_about = new JMenuItem(rb.getString("about"), 'A');
+ help_about = new JMenuItem(JMeterUtils.getResString("about"), 'A');
help_about.setActionCommand("about");
help_about.addActionListener(ActionRouter.getInstance());
helpMenu.add(help_about);
this.add(fileMenu);
+ this.add(editMenu);
this.add(runMenu);
this.add(reportMenu);
this.add(optionsMenu);
@@ -255,8 +344,8 @@
{
if(remoteHosts.length > 0)
{
- remote_start = new JMenu(rb.getString("remote_start"));
- remote_stop = new JMenu(rb.getString("remote_stop"));
+ remote_start = new
JMenu(JMeterUtils.getResString("remote_start"));
+ remote_stop = new
JMenu(JMeterUtils.getResString("remote_stop"));
for (int i = 0; i < remoteHosts.length; i++)
{
JMenuItem item = new JMenuItem(remoteHosts[i]);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]