You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2017/12/07 21:41:20 UTC
svn commit: r1817428 - in /jmeter/trunk:
src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
src/core/org/apache/jmeter/gui/util/MenuFactory.java xdocs/changes.xml
Author: pmouawad
Date: Thu Dec 7 21:41:19 2017
New Revision: 1817428
URL: http://svn.apache.org/viewvc?rev=1817428&view=rev
Log:
Menu bar - added mnemonics to more menu items
Contributed by Graham Russell
This closes #352
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java?rev=1817428&r1=1817427&r2=1817428&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/util/JMeterMenuBar.java Thu Dec 7 21:41:19 2017
@@ -23,6 +23,7 @@ import java.awt.event.KeyEvent;
import java.io.IOException;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
@@ -63,93 +64,36 @@ public class JMeterMenuBar extends JMenu
private static final Logger log = LoggerFactory.getLogger(JMeterMenuBar.class);
private JMenu fileMenu;
-
private JMenuItem fileSaveAs;
-
- private JMenuItem fileSelectionAs;
-
- private JMenuItem fileSelectionAsTestFragment;
-
private JMenuItem fileRevert;
-
private JMenuItem fileLoad;
-
private JMenu recentFilesOpen;
-
- private JMenuItem templates;
-
private List<JComponent> fileLoadRecentFiles;
-
private JMenuItem fileMerge;
-
- private JMenuItem fileExit;
-
- private JMenuItem fileNew;
-
private JMenu editMenu;
-
private JMenu editAdd;
-
private JMenu runMenu;
-
private JMenuItem runStart;
-
private JMenuItem runStartNoTimers;
-
private JMenu remoteStart;
-
- private JMenuItem remoteStartAll;
-
private Collection<JMenuItem> remoteEngineStart;
-
private JMenuItem runStop;
-
private JMenuItem runShut;
-
private JMenu remoteStop;
-
private JMenu remoteShut;
-
- private JMenuItem remoteStopAll;
-
- private JMenuItem remoteShutAll;
-
private Collection<JMenuItem> remoteEngineStop;
-
private Collection<JMenuItem> remoteEngineShut;
-
- private JMenuItem runClear;
-
- private JMenuItem runClearAll;
-
private JMenu optionsMenu;
-
- private JMenu lafMenu;
-
- private JMenuItem sslManager;
-
private JMenu helpMenu;
-
- private JMenuItem helpAbout;
-
private String[] remoteHosts;
-
private JMenu remoteExit;
-
- private JMenuItem remoteExitAll;
-
private Collection<JMenuItem> remoteEngineExit;
-
private JMenu searchMenu;
-
- private ArrayList<MenuCreator> menuCreators;
+ private List<MenuCreator> menuCreators;
public static final String SYSTEM_LAF = "System"; // $NON-NLS-1$
-
public static final String CROSS_PLATFORM_LAF = "CrossPlatform"; // $NON-NLS-1$
-
public static final String DARCULA_LAF = "Darcula"; // $NON-NLS-1$
-
public static final String DARCULA_LAF_CLASS = "com.bulenkov.darcula.DarculaLaf"; // $NON-NLS-1$
public JMeterMenuBar() {
@@ -170,7 +114,7 @@ public class JMeterMenuBar extends JMenu
}
public void setFileSaveEnabled(boolean enabled) {
- if(fileSaveAs != null) {
+ if (fileSaveAs != null) {
fileSaveAs.setEnabled(enabled);
}
}
@@ -185,13 +129,13 @@ public class JMeterMenuBar extends JMenu
}
public void setFileRevertEnabled(boolean enabled) {
- if(fileRevert != null) {
+ if (fileRevert != null) {
fileRevert.setEnabled(enabled);
}
}
public void setProjectFileLoaded(String file) {
- if(fileLoadRecentFiles != null && file != null) {
+ if (fileLoadRecentFiles != null && file != null) {
LoadRecentProject.updateRecentFileMenuItems(fileLoadRecentFiles, file);
recentFilesOpen.setEnabled(true);
}
@@ -218,8 +162,7 @@ public class JMeterMenuBar extends JMenu
public void setEditMenu(JPopupMenu menu) {
if (menu != null) {
editMenu.removeAll();
- Component[] comps = menu.getComponents();
- for (Component comp : comps) {
+ for (Component comp : menu.getComponents()) {
editMenu.add(comp);
}
editMenu.setEnabled(true);
@@ -244,7 +187,31 @@ public class JMeterMenuBar extends JMenu
* should be defined in a file somewhere, but that is for later.
*/
public void createMenuBar() {
- this.menuCreators = new ArrayList<>();
+
+ this.menuCreators = findMenuCreators();
+
+ makeFileMenu();
+ makeEditMenu();
+ makeRunMenu();
+ makeSearchMenu();
+ makeOptionsMenu();
+ makeHelpMenu();
+ this.add(fileMenu);
+ this.add(editMenu);
+ this.add(searchMenu);
+ this.add(runMenu);
+ this.add(optionsMenu);
+
+ menuCreators.stream()
+ .map(MenuCreator::getTopLevelMenus)
+ .flatMap(Arrays::stream)
+ .forEachOrdered(this::add);
+
+ this.add(helpMenu);
+ }
+
+ private List<MenuCreator> findMenuCreators() {
+ List<MenuCreator> creators = new ArrayList<>();
try {
List<String> listClasses = ClassFinder.findClassesThatExtend(
JMeterUtils.getSearchPaths(),
@@ -256,7 +223,7 @@ public class JMeterMenuBar extends JMenu
if (!Modifier.isAbstract(commandClass.getModifiers())) {
log.debug("Instantiating: {}", commandClass);
MenuCreator creator = (MenuCreator) commandClass.newInstance();
- menuCreators.add(creator);
+ creators.add(creator);
}
} catch (Exception e) {
log.error("Exception registering {} with implementation: {}", MenuCreator.class, strClassName, e);
@@ -265,50 +232,24 @@ public class JMeterMenuBar extends JMenu
} catch (IOException e) {
log.error("Exception finding implementations of {}", MenuCreator.class, e);
}
-
- makeFileMenu();
- makeEditMenu();
- makeRunMenu();
- makeOptionsMenu();
- makeHelpMenu();
- makeSearchMenu();
- this.add(fileMenu);
- this.add(editMenu);
- this.add(searchMenu);
- this.add(runMenu);
- this.add(optionsMenu);
- for (MenuCreator menuCreator : menuCreators) {
- JMenu[] topLevelMenus = menuCreator.getTopLevelMenus();
- for (JMenu topLevelMenu : topLevelMenus) {
- this.add(topLevelMenu);
- }
- }
- this.add(helpMenu);
+ return creators;
}
private void makeHelpMenu() {
- // HELP MENU
helpMenu = makeMenuRes("help",'H'); //$NON-NLS-1$
JMenuItem contextHelp = makeMenuItemRes("help", 'H', ActionNames.HELP, KeyStrokes.HELP); //$NON-NLS-1$
-
JMenuItem whatClass = makeMenuItemRes("help_node", 'W', ActionNames.WHAT_CLASS, KeyStrokes.WHAT_CLASS);//$NON-NLS-1$
-
JMenuItem setDebug = makeMenuItemRes("debug_on", ActionNames.DEBUG_ON, KeyStrokes.DEBUG_ON);//$NON-NLS-1$
-
JMenuItem resetDebug = makeMenuItemRes("debug_off", ActionNames.DEBUG_OFF, KeyStrokes.DEBUG_OFF);//$NON-NLS-1$
-
JMenuItem heapDump = makeMenuItemRes("heap_dump", ActionNames.HEAP_DUMP);//$NON-NLS-1$
-
JMenuItem threadDump = makeMenuItemRes("thread_dump", ActionNames.THREAD_DUMP);//$NON-NLS-1$
JMenu usefulLinks = makeMenuRes("useful_links");//$NON-NLS-1$
- JMenuItem subMenuLinkBugTraker = makeMenuItemRes("link_bug_tracker", ActionNames.LINK_BUG_TRACKER);//$NON-NLS-1$
- usefulLinks.add(subMenuLinkBugTraker);
- JMenuItem subMenuLinkNightlyBuild = makeMenuItemRes("link_nightly_build", ActionNames.LINK_NIGHTLY_BUILD);//$NON-NLS-1$
- usefulLinks.add(subMenuLinkNightlyBuild);
+ usefulLinks.add(makeMenuItemRes("link_bug_tracker", ActionNames.LINK_BUG_TRACKER));
+ usefulLinks.add(makeMenuItemRes("link_nightly_build", ActionNames.LINK_NIGHTLY_BUILD));
- helpAbout = makeMenuItemRes("about", 'A', ActionNames.ABOUT); //$NON-NLS-1$
+ JMenuItem helpAbout = makeMenuItemRes("about", 'A', ActionNames.ABOUT);
helpMenu.add(contextHelp);
helpMenu.addSeparator();
@@ -327,20 +268,9 @@ public class JMeterMenuBar extends JMenu
}
private void makeOptionsMenu() {
- // OPTIONS MENU
optionsMenu = makeMenuRes("option",'O'); //$NON-NLS-1$
- JMenuItem functionHelper = makeMenuItemRes("function_dialog_menu_item", 'F', ActionNames.FUNCTIONS, KeyStrokes.FUNCTIONS); //$NON-NLS-1$
-
- lafMenu = makeMenuRes("appearance",'L'); //$NON-NLS-1$
- for (LookAndFeelInfo laf : getAllLAFs()) {
- JMenuItem menuItem = new JMenuItem(laf.getName());
- menuItem.addActionListener(ActionRouter.getInstance());
- menuItem.setActionCommand(ActionNames.LAF_PREFIX + laf.getClassName());
- menuItem.setToolTipText(laf.getClassName()); // show the classname to the user
- lafMenu.add(menuItem);
- }
- optionsMenu.add(functionHelper);
- optionsMenu.add(lafMenu);
+ optionsMenu.add(makeMenuItemRes("function_dialog_menu_item", 'F', ActionNames.FUNCTIONS, KeyStrokes.FUNCTIONS));
+ optionsMenu.add(createLaFMenu());
JCheckBoxMenuItem menuLoggerPanel = makeCheckBoxMenuItemRes("menu_logger_panel", ActionNames.LOGGER_PANEL_ENABLE_DISABLE); //$NON-NLS-1$
GuiPackage guiInstance = GuiPackage.getInstance();
@@ -363,21 +293,14 @@ public class JMeterMenuBar extends JMenu
optionsMenu.add(menuLoggerLevel);
if (SSLManager.isSSLSupported()) {
- sslManager = makeMenuItemRes("sslmanager", 'S', ActionNames.SSL_MANAGER, KeyStrokes.SSL_MANAGER); //$NON-NLS-1$
- optionsMenu.add(sslManager);
+ optionsMenu.add(makeMenuItemRes("sslmanager", 'S', ActionNames.SSL_MANAGER, KeyStrokes.SSL_MANAGER));
}
optionsMenu.add(makeLanguageMenu());
- JMenuItem collapse = makeMenuItemRes("menu_collapse_all", ActionNames.COLLAPSE_ALL, KeyStrokes.COLLAPSE_ALL); //$NON-NLS-1$
- optionsMenu.add(collapse);
-
- JMenuItem expand = makeMenuItemRes("menu_expand_all", ActionNames.EXPAND_ALL, KeyStrokes.EXPAND_ALL); //$NON-NLS-1$
- optionsMenu.add(expand);
-
- JMenuItem zoomIn = makeMenuItemRes("menu_zoom_in", ActionNames.ZOOM_IN); //$NON-NLS-1$
- optionsMenu.add(zoomIn);
- JMenuItem zoomOut = makeMenuItemRes("menu_zoom_out", ActionNames.ZOOM_OUT); //$NON-NLS-1$
- optionsMenu.add(zoomOut);
+ optionsMenu.add(makeMenuItemRes("menu_collapse_all", 'A', ActionNames.COLLAPSE_ALL, KeyStrokes.COLLAPSE_ALL));
+ optionsMenu.add(makeMenuItemRes("menu_expand_all", 'X', ActionNames.EXPAND_ALL, KeyStrokes.EXPAND_ALL));
+ optionsMenu.add(makeMenuItemRes("menu_zoom_in", 'I', ActionNames.ZOOM_IN));
+ optionsMenu.add(makeMenuItemRes("menu_zoom_out", 'U', ActionNames.ZOOM_OUT));
JCheckBoxMenuItem saveBeforeRun = makeCheckBoxMenuItemRes("menu_save_before_run", ActionNames.SAVE_BEFORE_RUN); //$NON-NLS-1$
if (guiInstance != null) {
saveBeforeRun.setSelected(guiInstance.shouldSaveBeforeRunByPreference());
@@ -388,6 +311,18 @@ public class JMeterMenuBar extends JMenu
addPluginsMenuItems(optionsMenu, menuCreators, MENU_LOCATION.OPTIONS);
}
+ private JMenu createLaFMenu() {
+ JMenu lafMenu = makeMenuRes("appearance", 'L');
+ for (LookAndFeelInfo laf : getAllLAFs()) {
+ JMenuItem menuItem = new JMenuItem(laf.getName());
+ menuItem.addActionListener(ActionRouter.getInstance());
+ menuItem.setActionCommand(ActionNames.LAF_PREFIX + laf.getClassName());
+ menuItem.setToolTipText(laf.getClassName()); // show the classname to the user
+ lafMenu.add(menuItem);
+ }
+ return lafMenu;
+ }
+
private static class LangMenuHelper{
final ActionRouter actionRouter = ActionRouter.getInstance();
final JMenu languageMenu;
@@ -409,13 +344,12 @@ public class JMeterMenuBar extends JMenu
language.setName(locale); // This is used by the ChangeLanguage class to define the Locale
languageMenu.add(language);
}
-
}
/**
* Generate the list of supported languages.
*
- * @return list of languages
+ * @return array of language Strings
*/
// Also used by org.apache.jmeter.resources.PackageTest
public static String[] getLanguages(){
@@ -432,17 +366,15 @@ public class JMeterMenuBar extends JMenu
lang.add(Locale.SIMPLIFIED_CHINESE.toString()); // zh_CN
lang.add(Locale.TRADITIONAL_CHINESE.toString()); // zh_TW
final String addedLocales = JMeterUtils.getProperty("locales.add");
- if (addedLocales != null){
- String [] addLanguages =addedLocales.split(","); // $NON-NLS-1$
- for(String newLang : addLanguages){
- log.info("Adding locale {}", newLang);
- lang.add(newLang);
- }
+ if (addedLocales != null) {
+ Arrays.stream(addedLocales.split(","))
+ .peek(newLang -> log.info("Adding locale {}", newLang))
+ .forEachOrdered(lang::add);
}
return lang.toArray(new String[lang.size()]);
}
- static JMenu makeLanguageMenu() {
+ private static JMenu makeLanguageMenu() {
final JMenu languageMenu = makeMenuRes("choose_language",'C'); //$NON-NLS-1$
LangMenuHelper langMenu = new LangMenuHelper(languageMenu);
@@ -454,19 +386,18 @@ public class JMeterMenuBar extends JMenu
* Also, need to ensure that the names are valid resource entries too.
*/
- for(String lang : getLanguages()){
+ for (String lang : getLanguages()) {
langMenu.addLang(lang);
}
return languageMenu;
}
private void makeRunMenu() {
- // RUN MENU
runMenu = makeMenuRes("run",'R'); //$NON-NLS-1$
runStart = makeMenuItemRes("start", 'S', ActionNames.ACTION_START, KeyStrokes.ACTION_START); //$NON-NLS-1$
- runStartNoTimers = makeMenuItemRes("start_no_timers", ActionNames.ACTION_START_NO_TIMERS); //$NON-NLS-1$
+ runStartNoTimers = makeMenuItemRes("start_no_timers", 'N', ActionNames.ACTION_START_NO_TIMERS); //$NON-NLS-1$
runStop = makeMenuItemRes("stop", 'T', ActionNames.ACTION_STOP, KeyStrokes.ACTION_STOP); //$NON-NLS-1$
runStop.setEnabled(false);
@@ -474,16 +405,16 @@ public class JMeterMenuBar extends JMenu
runShut = makeMenuItemRes("shutdown", 'Y', ActionNames.ACTION_SHUTDOWN, KeyStrokes.ACTION_SHUTDOWN); //$NON-NLS-1$
runShut.setEnabled(false);
- runClear = makeMenuItemRes("clear", 'C', ActionNames.CLEAR, KeyStrokes.CLEAR); //$NON-NLS-1$
+ JMenuItem runClear = makeMenuItemRes("clear", 'C', ActionNames.CLEAR, KeyStrokes.CLEAR);
- runClearAll = makeMenuItemRes("clear_all", 'a', ActionNames.CLEAR_ALL, KeyStrokes.CLEAR_ALL); //$NON-NLS-1$
+ JMenuItem runClearAll = makeMenuItemRes("clear_all", 'a', ActionNames.CLEAR_ALL, KeyStrokes.CLEAR_ALL);
runMenu.add(runStart);
runMenu.add(runStartNoTimers);
if (remoteStart != null) {
runMenu.add(remoteStart);
}
- remoteStartAll = makeMenuItemRes("remote_start_all", ActionNames.REMOTE_START_ALL, KeyStrokes.REMOTE_START_ALL); //$NON-NLS-1$
+ JMenuItem remoteStartAll = makeMenuItemRes("remote_start_all", ActionNames.REMOTE_START_ALL, KeyStrokes.REMOTE_START_ALL);
runMenu.add(remoteStartAll);
runMenu.add(runStop);
@@ -491,19 +422,19 @@ public class JMeterMenuBar extends JMenu
if (remoteStop != null) {
runMenu.add(remoteStop);
}
- remoteStopAll = makeMenuItemRes("remote_stop_all", 'X', ActionNames.REMOTE_STOP_ALL, KeyStrokes.REMOTE_STOP_ALL); //$NON-NLS-1$
+ JMenuItem remoteStopAll = makeMenuItemRes("remote_stop_all", 'X', ActionNames.REMOTE_STOP_ALL, KeyStrokes.REMOTE_STOP_ALL);
runMenu.add(remoteStopAll);
if (remoteShut != null) {
runMenu.add(remoteShut);
}
- remoteShutAll = makeMenuItemRes("remote_shut_all", 'X', ActionNames.REMOTE_SHUT_ALL, KeyStrokes.REMOTE_SHUT_ALL); //$NON-NLS-1$
+ JMenuItem remoteShutAll = makeMenuItemRes("remote_shut_all", 'X', ActionNames.REMOTE_SHUT_ALL, KeyStrokes.REMOTE_SHUT_ALL);
runMenu.add(remoteShutAll);
if (remoteExit != null) {
runMenu.add(remoteExit);
}
- remoteExitAll = makeMenuItemRes("remote_exit_all", ActionNames.REMOTE_EXIT_ALL); //$NON-NLS-1$
+ JMenuItem remoteExitAll = makeMenuItemRes("remote_exit_all", ActionNames.REMOTE_EXIT_ALL);
runMenu.add(remoteExitAll);
runMenu.addSeparator();
@@ -514,7 +445,6 @@ public class JMeterMenuBar extends JMenu
}
private void makeEditMenu() {
- // EDIT MENU
editMenu = makeMenuRes("edit",'E'); //$NON-NLS-1$
// From the Java Look and Feel Guidelines: If all items in a menu
@@ -525,38 +455,36 @@ public class JMeterMenuBar extends JMenu
}
private void makeFileMenu() {
- // FILE MENU
fileMenu = makeMenuRes("file",'F'); //$NON-NLS-1$
JMenuItem fileSave = makeMenuItemRes("save", 'S', ActionNames.SAVE, KeyStrokes.SAVE); //$NON-NLS-1$
- fileSave.setEnabled(true);
fileSaveAs = makeMenuItemRes("save_all_as", 'A', ActionNames.SAVE_ALL_AS, KeyStrokes.SAVE_ALL_AS); //$NON-NLS-1$
fileSaveAs.setEnabled(true);
- fileSelectionAs = makeMenuItemRes("save_as", ActionNames.SAVE_AS); //$NON-NLS-1$
- fileSelectionAs.setEnabled(true);
+ JMenuItem fileSaveSelectionAs = makeMenuItemRes("save_as", 'L', ActionNames.SAVE_AS);
+ fileSaveSelectionAs.setEnabled(true);
- fileSelectionAsTestFragment = makeMenuItemRes("save_as_test_fragment", ActionNames.SAVE_AS_TEST_FRAGMENT); //$NON-NLS-1$
+ JMenuItem fileSelectionAsTestFragment = makeMenuItemRes("save_as_test_fragment", 'F', ActionNames.SAVE_AS_TEST_FRAGMENT);
fileSelectionAsTestFragment.setEnabled(true);
fileRevert = makeMenuItemRes("revert_project", 'R', ActionNames.REVERT_PROJECT); //$NON-NLS-1$
fileRevert.setEnabled(false);
fileLoad = makeMenuItemRes("menu_open", 'O', ActionNames.OPEN, KeyStrokes.OPEN); //$NON-NLS-1$
-
- recentFilesOpen = makeMenuRes("menu_recent"); //$NON-NLS-1$
- recentFilesOpen.setEnabled(false);
// Set default SAVE menu item to disabled since the default node that
// is selected is ROOT, which does not allow items to be inserted.
fileLoad.setEnabled(false);
- templates = makeMenuItemRes("template_menu", 'T', ActionNames.TEMPLATES); //$NON-NLS-1$
+ recentFilesOpen = makeMenuRes("menu_recent", 'E'); //$NON-NLS-1$
+ recentFilesOpen.setEnabled(false);
+
+ JMenuItem templates = makeMenuItemRes("template_menu", 'T', ActionNames.TEMPLATES);
templates.setEnabled(true);
- fileNew = makeMenuItemRes("new", 'N', ActionNames.CLOSE, KeyStrokes.CLOSE); //$NON-NLS-1$
+ JMenuItem fileNew = makeMenuItemRes("new", 'N', ActionNames.CLOSE, KeyStrokes.CLOSE);
- fileExit = makeMenuItemRes("exit", 'X', ActionNames.EXIT, KeyStrokes.EXIT); //$NON-NLS-1$
+ JMenuItem fileExit = makeMenuItemRes("exit", 'X', ActionNames.EXIT, KeyStrokes.EXIT);
fileMerge = makeMenuItemRes("menu_merge", 'M', ActionNames.MERGE); //$NON-NLS-1$
fileMerge.setEnabled(false);
@@ -569,16 +497,14 @@ public class JMeterMenuBar extends JMenu
fileMenu.addSeparator();
fileMenu.add(fileSave);
fileMenu.add(fileSaveAs);
- fileMenu.add(fileSelectionAs);
+ fileMenu.add(fileSaveSelectionAs);
fileMenu.add(fileSelectionAsTestFragment);
fileMenu.add(fileRevert);
fileMenu.addSeparator();
// Add the recent files, which will also add a separator that is
// visible when needed
fileLoadRecentFiles = LoadRecentProject.getRecentFileMenuItems();
- for(JComponent jc : fileLoadRecentFiles){
- recentFilesOpen.add(jc);
- }
+ fileLoadRecentFiles.forEach(jc -> recentFilesOpen.add(jc));
recentFilesOpen.setEnabled(LoadRecentProject.hasVisibleMenuItem(fileLoadRecentFiles));
addPluginsMenuItems(fileMenu, menuCreators, MENU_LOCATION.FILE);
@@ -587,14 +513,13 @@ public class JMeterMenuBar extends JMenu
}
private void makeSearchMenu() {
- // Search MENU
- searchMenu = makeMenuRes("menu_search"); //$NON-NLS-1$
+ searchMenu = makeMenuRes("menu_search", 'S'); //$NON-NLS-1$
JMenuItem search = makeMenuItemRes("menu_search", 'F', ActionNames.SEARCH_TREE, KeyStrokes.SEARCH_TREE); //$NON-NLS-1$
searchMenu.add(search);
search.setEnabled(true);
- JMenuItem searchReset = makeMenuItemRes("menu_search_reset", ActionNames.SEARCH_RESET); //$NON-NLS-1$
+ JMenuItem searchReset = makeMenuItemRes("menu_search_reset", 'R', ActionNames.SEARCH_RESET); //$NON-NLS-1$
searchMenu.add(searchReset);
searchReset.setEnabled(true);
@@ -602,27 +527,26 @@ public class JMeterMenuBar extends JMenu
}
/**
- * @param menu
+ * Mutate the given menu by, for each menuCreator adding a separator
+ * followed by each of its menus based upon the menu location.
+ *
+ * @param menu the menu to mutate
* @param menuCreators
* @param location
*/
private void addPluginsMenuItems(JMenu menu, List<MenuCreator> menuCreators, MENU_LOCATION location) {
- boolean addedSeparator = false;
for (MenuCreator menuCreator : menuCreators) {
JMenuItem[] menuItems = menuCreator.getMenuItemsAtLocation(location);
- for (JMenuItem jMenuItem : menuItems) {
- if(!addedSeparator) {
- menu.addSeparator();
- addedSeparator = true;
- }
- menu.add(jMenuItem);
+ if (menuItems.length != 0) {
+ menu.addSeparator();
}
+ Arrays.stream(menuItems).forEachOrdered(menu::add);
}
}
public void setRunning(boolean running, String host) {
log.info("setRunning({}, {})", running, host);
- if(org.apache.jmeter.gui.MainFrame.LOCAL.equals(host)) {
+ if (org.apache.jmeter.gui.MainFrame.LOCAL.equals(host)) {
return;
}
Iterator<JMenuItem> iter = remoteEngineStart.iterator();
@@ -731,6 +655,7 @@ public class JMeterMenuBar extends JMenu
lafsAll[i]=new UIManager.LookAndFeelInfo(SYSTEM_LAF,UIManager.getSystemLookAndFeelClassName());
return lafsAll;
}
+
/**
* <p>Refreshes all texts in the menu and all submenus to a new locale.</p>
*
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java?rev=1817428&r1=1817427&r2=1817428&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java Thu Dec 7 21:41:19 2017
@@ -213,7 +213,6 @@ public final class MenuFactory {
*/
public static void addFileMenu(JPopupMenu menu, boolean addSaveTestFragmentMenu) {
// the undo/redo as a standard goes first in Edit menus
- // maybe there's better place for them in JMeter?
if(UndoHistory.isEnabled()) {
addUndoItems(menu);
}
@@ -244,13 +243,8 @@ public final class MenuFactory {
JMenuItem disabled = makeMenuItemRes("disable", ActionNames.DISABLE);// $NON-NLS-1$
JMenuItem enabled = makeMenuItemRes("enable", ActionNames.ENABLE);// $NON-NLS-1$
boolean isEnabled = GuiPackage.getInstance().getTreeListener().getCurrentNode().isEnabled();
- if (isEnabled) {
- disabled.setEnabled(true);
- enabled.setEnabled(false);
- } else {
- disabled.setEnabled(false);
- enabled.setEnabled(true);
- }
+ disabled.setEnabled(isEnabled);
+ enabled.setEnabled(!isEnabled);
menu.add(enabled);
menu.add(disabled);
JMenuItem toggle = makeMenuItemRes("toggle", ActionNames.TOGGLE, KeyStrokes.TOGGLE);// $NON-NLS-1$
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1817428&r1=1817427&r2=1817428&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml [utf-8] (original)
+++ jmeter/trunk/xdocs/changes.xml [utf-8] Thu Dec 7 21:41:19 2017
@@ -183,6 +183,7 @@ Summary
<li><bug>61802</bug>Loop / ForEach Controller should expose a variable for current iteration. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><pr>349</pr> Add i18n resouces(zh_CN). Contributed by Helly Guo (https://github.com/hellyguo)</li>
<li><pr>351</pr> Fixed about dialog position on first view. Contributed by Graham Russell (graham at ham1.co.uk)</li>
+ <li><pr>352</pr> Menu bar - added mnemonics to more menu items. Contributed by Graham Russell (graham at ham1.co.uk)</li>
</ul>
<ch_section>Non-functional changes</ch_section>