Author: pmouawad Date: Wed Nov 15 22:28:56 2017 New Revision: 1815392 URL: http://svn.apache.org/viewvc?rev=1815392&view=rev Log: Utilising more modern Java, simplifying code and formatting code and comments This comment #327 (PART 2)
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/AboutCommand.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/CollapseExpandTreeBranch.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/LoadRecentProject.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/LookAndFeelCommand.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/Move.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/Paste.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/RawTextSearcher.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/RegexpSearcher.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/ResetSearchCommand.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveGraphics.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeDialog.java Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/AboutCommand.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/AboutCommand.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/AboutCommand.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/AboutCommand.java Wed Nov 15 22:28:56 2017 @@ -45,7 +45,6 @@ import org.apache.jmeter.util.JMeterUtil /** * About Command. It may be extended in the future to add a list of installed * protocols, config options, etc. - * */ public class AboutCommand extends AbstractAction { private static final Set<String> commandSet; Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/AbstractAction.java Wed Nov 15 22:28:56 2017 @@ -84,16 +84,14 @@ public abstract class AbstractAction imp SearchByClass<ResultCollector> resultListeners = new SearchByClass<>(ResultCollector.class); tree.traverse(resultListeners); - Iterator<ResultCollector> irc = resultListeners.getSearchResults().iterator(); - while (irc.hasNext()) { - ResultCollector rc = irc.next(); + for (ResultCollector rc : resultListeners.getSearchResults()) { File f = new File(rc.getFilename()); if (f.exists()) { switch (actionOnFile) { case APPEND: break; case DELETE: - if(f.delete()) { + if (f.delete()) { break; } else { log.error("Could not delete existing file {}", f.getAbsolutePath()); @@ -101,24 +99,24 @@ public abstract class AbstractAction imp } case ASK: default: - String[] option = new String[] { JMeterUtils.getResString("concat_result"), - JMeterUtils.getResString("dont_start"), JMeterUtils.getResString("replace_file") }; + String[] option = new String[]{JMeterUtils.getResString("concat_result"), + JMeterUtils.getResString("dont_start"), JMeterUtils.getResString("replace_file")}; String question = MessageFormat.format( JMeterUtils.getResString("ask_existing_file"), // $NON-NLS-1$ rc.getFilename()); // Interactive question - int response = JOptionPane.showOptionDialog(GuiPackage.getInstance().getMainFrame(), + int response = JOptionPane.showOptionDialog(GuiPackage.getInstance().getMainFrame(), question, JMeterUtils.getResString("warning"), - JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.WARNING_MESSAGE, - null, - option, + JOptionPane.YES_NO_CANCEL_OPTION, + JOptionPane.WARNING_MESSAGE, + null, + option, option[0]); - + switch (response) { case JOptionPane.CANCEL_OPTION: // replace_file so delete the existing one - if(f.delete()) { + if (f.delete()) { break; } else { log.error("Could not delete existing file {}", f.getAbsolutePath()); Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/ActionRouter.java Wed Nov 15 22:28:56 2017 @@ -311,16 +311,15 @@ public final class ActionRouter implemen } private static List<String> findClassesThatExtend(String className, String excluding, String[] searchPath) throws IOException, ClassNotFoundException { - List<String> listClasses = ClassFinder.findClassesThatExtend( - searchPath, // strPathsOrJars - pathNames or jarfiles to search for classes - new Class[] { Class.forName(className) }, - false, // innerClasses - should we include inner classes? - null, // contains - className should contain this string - // Ignore the classes which are specific to the reporting tool - excluding, // notContains - className should not contain this string - false); // annotations - true if classNames are annotations - return listClasses; + return ClassFinder.findClassesThatExtend( + searchPath, // strPathsOrJars - pathNames or jar files to search for classes + new Class[] { Class.forName(className) }, + false, // innerClasses - should we include inner classes? + null, // contains - className should contain this string + // Ignore the classes which are specific to the reporting tool + excluding, // notContains - className should not contain this string + false); // annotations - true if classNames are annotations } private static Optional<String[]> getCodeSourceSearchPath() { @@ -372,11 +371,7 @@ public final class ActionRouter implemen Class<?> commandClass = Class.forName(strClassName); Command command = (Command) commandClass.newInstance(); for (String commandName : command.getActionNames()) { - Set<Command> commandObjects = commands.get(commandName); - if (commandObjects == null) { - commandObjects = new HashSet<>(); - commands.put(commandName, commandObjects); - } + Set<Command> commandObjects = commands.computeIfAbsent(commandName, k -> new HashSet<>()); commandObjects.add(command); } } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/CollapseExpandTreeBranch.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/CollapseExpandTreeBranch.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/CollapseExpandTreeBranch.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/CollapseExpandTreeBranch.java Wed Nov 15 22:28:56 2017 @@ -69,33 +69,32 @@ public class CollapseExpandTreeBranch ex JTree jTree = GuiPackage.getInstance().getMainFrame().getTree(); JMeterTreeNode[] selectedNodes = treeListener.getSelectedNodes(); for (JMeterTreeNode currentNode : selectedNodes) { - if(!currentNode.isLeaf()) { + if (!currentNode.isLeaf()) { TreeNode[] nodes = GuiPackage.getInstance().getTreeModel().getPathToRoot(currentNode); TreePath path = new TreePath(nodes); boolean collapse = ActionNames.COLLAPSE.equals(e.getActionCommand()); - + expandCollapseNode(jTree, path, collapse); } } } - + private void expandCollapseNode(JTree jTree, TreePath parent, boolean collapse) { TreeNode node = (TreeNode) parent.getLastPathComponent(); if (node.isLeaf()) { return; } - + Enumeration<?> children = node.children(); - while(children.hasMoreElements()) { + while (children.hasMoreElements()) { TreeNode child = (TreeNode) children.nextElement(); TreePath path = parent.pathByAddingChild(child); expandCollapseNode(jTree, path, collapse); } - - if(collapse) { + + if (collapse) { jTree.collapsePath(parent); - } - else { + } else { jTree.expandPath(parent); } } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/LoadRecentProject.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/LoadRecentProject.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/LoadRecentProject.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/LoadRecentProject.java Wed Nov 15 22:28:56 2017 @@ -150,24 +150,22 @@ public class LoadRecentProject extends L */ private static void updateMenuItems(List<JComponent> menuItems) { // Update the menu items - for(int i = 0; i < NUMBER_OF_MENU_ITEMS; i++) { + for (int i = 0; i < NUMBER_OF_MENU_ITEMS; i++) { // Get the menu item - JMenuItem recentFile = (JMenuItem)menuItems.get(i); + JMenuItem recentFile = (JMenuItem) menuItems.get(i); // Find and set the file for this recent file command String recentFilePath = getRecentFile(i); - if(recentFilePath != null) { + if (recentFilePath != null) { File file = new File(recentFilePath); - StringBuilder sb = new StringBuilder(60); + String sb = String.valueOf(i + 1) + " " + //$NON-NLS-1$ + getMenuItemDisplayName(file); // Index before file name - sb.append(i+1).append(" "); //$NON-NLS-1$ - sb.append(getMenuItemDisplayName(file)); - recentFile.setText(sb.toString()); + recentFile.setText(sb); recentFile.setToolTipText(recentFilePath); recentFile.setEnabled(true); recentFile.setVisible(true); - } - else { + } else { recentFile.setEnabled(false); recentFile.setVisible(false); } @@ -182,7 +180,7 @@ public class LoadRecentProject extends L // Limit the length of the menu text if needed final int maxLength = 40; String menuText = file.getName(); - if(menuText.length() > maxLength) { + if (menuText.length() > maxLength) { menuText = "..." + menuText.substring(menuText.length() - maxLength, menuText.length()); //$NON-NLS-1$ } return menuText; @@ -248,11 +246,7 @@ public class LoadRecentProject extends L * @return true if at least on JMenuItem is visible */ public static boolean hasVisibleMenuItem(List<JComponent> fileLoadRecentFiles) { - for (JComponent menuItem : fileLoadRecentFiles) { - if(menuItem.isVisible()) { - return true; - } - } - return false; + return fileLoadRecentFiles.stream() + .anyMatch(JComponent::isVisible); } } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/LookAndFeelCommand.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/LookAndFeelCommand.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/LookAndFeelCommand.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/LookAndFeelCommand.java Wed Nov 15 22:28:56 2017 @@ -19,14 +19,15 @@ package org.apache.jmeter.gui.action; import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.HashSet; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Set; import java.util.prefs.Preferences; +import java.util.stream.Collectors; import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; import org.apache.jmeter.gui.util.JMeterMenuBar; import org.apache.jmeter.util.JMeterUtils; @@ -42,7 +43,7 @@ public class LookAndFeelCommand extends private static final String JMETER_LAF = "jmeter.laf"; // $NON-NLS-1$ - private static final Set<String> commands = new HashSet<>(); + private static final Set<String> commands; private static final Preferences PREFS = Preferences.userNodeForPackage(LookAndFeelCommand.class); // Note: Windows user preferences are stored relative to: HKEY_CURRENT_USER\Software\JavaSoft\Prefs @@ -51,23 +52,17 @@ public class LookAndFeelCommand extends private static final String USER_PREFS_KEY = "laf"; //$NON-NLS-1$ static { - UIManager.LookAndFeelInfo[] lfs = JMeterMenuBar.getAllLAFs(); - for (UIManager.LookAndFeelInfo lf : lfs) { - commands.add(ActionNames.LAF_PREFIX + lf.getClassName()); - } + UIManager.LookAndFeelInfo[] allLAFs = JMeterMenuBar.getAllLAFs(); + commands = Arrays.stream(allLAFs) + .map(lf -> ActionNames.LAF_PREFIX + lf.getClassName()) + .collect(Collectors.toSet()); if (log.isInfoEnabled()) { final String jMeterLaf = getJMeterLaf(); - List<String> names = new ArrayList<>(); - for(UIManager.LookAndFeelInfo laf : lfs) { - if (laf.getClassName().equals(jMeterLaf)) { - names.add(laf.getName()); - } - } - if (!names.isEmpty()) { - log.info("Using look and feel: {} {}", jMeterLaf, names); - } else { - log.info("Using look and feel: {}", jMeterLaf); - } + List<String> names = Arrays.stream(allLAFs) + .filter(laf -> laf.getClassName().equals(jMeterLaf)) + .map(UIManager.LookAndFeelInfo::getName) + .collect(Collectors.toList()); + log.info("Using look and feel: {} {}", jMeterLaf, names); } } @@ -128,7 +123,10 @@ public class LookAndFeelCommand extends UIManager.setLookAndFeel(className); JMeterUtils.refreshUI(); PREFS.put(USER_PREFS_KEY, className); - } catch (javax.swing.UnsupportedLookAndFeelException | InstantiationException | ClassNotFoundException | IllegalAccessException e) { + } catch (UnsupportedLookAndFeelException + | InstantiationException + | ClassNotFoundException + | IllegalAccessException e) { JMeterUtils.reportErrorToUser("Look and Feel unavailable:" + e.toString()); } } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/Move.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Move.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/Move.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/Move.java Wed Nov 15 22:28:56 2017 @@ -95,21 +95,6 @@ public class Move extends AbstractAction // move as a child of the next sibling moveAndSelectNode(currentNode, after, 0); } - // Commented as per sebb - // http://mail-archives.apache.org/mod_mbox/jmeter-dev/201307.mbox/%3CCAOGo0VZ0z3GMbfsq_gSB%2Bp7nTUqLng6Gy2ecvYbD8_AKb-Dt5w%40mail.gmail.com%3E - /* - else { - // move as a sibling of the parent - JMeterTreeNode parentParentNode = getParentNode(parentNode); - after = (JMeterTreeNode) parentParentNode - .getChildAfter(parentNode); - if (after != null - && canAddTo(parentParentNode, currentNode)) { - moveAndSelectNode(currentNode, parentParentNode, - parentParentNode.getIndex(after)); - } - } - */ } } @@ -125,18 +110,17 @@ public class Move extends AbstractAction return parentNode; } - private static boolean canAddTo(JMeterTreeNode parentNode, - JMeterTreeNode node) { + private static boolean canAddTo(JMeterTreeNode parentNode, JMeterTreeNode node) { boolean ok = MenuFactory.canAddTo(parentNode, - new JMeterTreeNode[] { node }); + new JMeterTreeNode[]{node}); if (!ok) { Toolkit.getDefaultToolkit().beep(); } return ok; } - private static void moveAndSelectNode(JMeterTreeNode currentNode, - JMeterTreeNode parentNode, int newIndx) { + private static void moveAndSelectNode( + JMeterTreeNode currentNode, JMeterTreeNode parentNode, int newIndx) { GuiPackage guiInstance = GuiPackage.getInstance(); guiInstance.getTreeModel().removeNodeFromParent(currentNode); guiInstance.getTreeModel().insertNodeInto(currentNode, parentNode, Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/Paste.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Paste.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/Paste.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/Paste.java Wed Nov 15 22:28:56 2017 @@ -20,7 +20,9 @@ package org.apache.jmeter.gui.action; import java.awt.Toolkit; import java.awt.event.ActionEvent; +import java.util.Arrays; import java.util.HashSet; +import java.util.Objects; import java.util.Set; import org.apache.jmeter.exceptions.IllegalUserActionException; @@ -34,7 +36,6 @@ import org.slf4j.LoggerFactory; /** * Places a copied JMeterTreeNode under the selected node. - * */ public class Paste extends AbstractAction { @@ -67,11 +68,9 @@ public class Paste extends AbstractActio JMeterTreeListener treeListener = GuiPackage.getInstance().getTreeListener(); JMeterTreeNode currentNode = treeListener.getCurrentNode(); if (MenuFactory.canAddTo(currentNode, draggedNodes)) { - for (JMeterTreeNode draggedNode : draggedNodes) { - if (draggedNode != null) { - addNode(currentNode, draggedNode); - } - } + Arrays.stream(draggedNodes) + .filter(Objects::nonNull) + .forEach(draggedNode -> addNode(currentNode, draggedNode)); } else { Toolkit.getDefaultToolkit().beep(); } @@ -83,11 +82,10 @@ public class Paste extends AbstractActio // Add this node JMeterTreeNode newNode = GuiPackage.getInstance().getTreeModel().addComponent(node.getTestElement(), parent); // Add all the child nodes of the node we are adding - for(int i = 0; i < node.getChildCount(); i++) { + for (int i = 0; i < node.getChildCount(); i++) { addNode(newNode, (JMeterTreeNode)node.getChildAt(i)); } - } - catch (IllegalUserActionException iuae) { + } catch (IllegalUserActionException iuae) { log.error("Illegal user action while adding a tree node.", iuae); // $NON-NLS-1$ JMeterUtils.reportErrorToUser(iuae.getMessage()); } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/RawTextSearcher.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RawTextSearcher.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/RawTextSearcher.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/RawTextSearcher.java Wed Nov 15 22:28:56 2017 @@ -38,7 +38,7 @@ public class RawTextSearcher implements public RawTextSearcher(boolean caseSensitive, String textToSearch) { super(); this.caseSensitive = caseSensitive; - if(caseSensitive) { + if (caseSensitive) { this.textToSearch = textToSearch; } else { this.textToSearch = textToSearch.toLowerCase(); @@ -50,20 +50,10 @@ public class RawTextSearcher implements */ @Override public boolean search(List<String> textTokens) { - boolean result; - for (String searchableToken : textTokens) { - if(!StringUtils.isEmpty(searchableToken)) { - if(caseSensitive) { - result = searchableToken.contains(textToSearch); - } else { - result = searchableToken.toLowerCase().contains(textToSearch); - } - if (result) { - return result; - } - } - } - return false; + return textTokens.stream() + .filter(token -> !StringUtils.isEmpty(token)) + .map(token -> caseSensitive ? token : token.toLowerCase()) + .anyMatch(token -> token.contains(textToSearch)); } /** @@ -73,9 +63,7 @@ public class RawTextSearcher implements * @return true if searchedTextLowerCase is in value */ protected boolean testField(String value, String searchedTextLowerCase) { - if(!StringUtils.isEmpty(value)) { - return value.toLowerCase().contains(searchedTextLowerCase); - } - return false; + return !StringUtils.isEmpty(value) + && value.toLowerCase().contains(searchedTextLowerCase); } } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/RegexpSearcher.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RegexpSearcher.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/RegexpSearcher.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/RegexpSearcher.java Wed Nov 15 22:28:56 2017 @@ -28,10 +28,10 @@ import org.apache.commons.lang3.StringUt * Regexp search implementation */ public class RegexpSearcher implements Searcher { + private boolean caseSensitive; private Pattern pattern; - /** * Constructor * @param caseSensitive is search case sensitive @@ -40,7 +40,7 @@ public class RegexpSearcher implements S public RegexpSearcher(boolean caseSensitive, String regexp) { super(); this.caseSensitive = caseSensitive; - if(caseSensitive) { + if (caseSensitive) { pattern = Pattern.compile(regexp); } else { pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE); @@ -53,16 +53,11 @@ public class RegexpSearcher implements S */ @Override public boolean search(List<String> textTokens) { - for (String searchableToken : textTokens) { - if(!StringUtils.isEmpty(searchableToken)) { - Matcher matcher = caseSensitive ? - pattern.matcher(searchableToken) : - pattern.matcher(searchableToken.toLowerCase()); - if(matcher.find()) { - return true; - } - } - } - return false; + return textTokens.stream() + .filter(token -> !StringUtils.isEmpty(token)) + .map(token -> caseSensitive ? + pattern.matcher(token) : + pattern.matcher(token.toLowerCase())) + .anyMatch(Matcher::find); } } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/ResetSearchCommand.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ResetSearchCommand.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/ResetSearchCommand.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/ResetSearchCommand.java Wed Nov 15 22:28:56 2017 @@ -19,13 +19,12 @@ package org.apache.jmeter.gui.action; import java.awt.event.ActionEvent; +import java.util.Collection; import java.util.HashSet; -import java.util.List; import java.util.Set; import org.apache.jmeter.gui.GuiPackage; import org.apache.jmeter.gui.Searchable; -import org.apache.jmeter.gui.tree.JMeterTreeModel; import org.apache.jmeter.gui.tree.JMeterTreeNode; /** @@ -45,17 +44,14 @@ public class ResetSearchCommand extends @Override public void doAction(ActionEvent e) { GuiPackage guiPackage = GuiPackage.getInstance(); - try{ + try { guiPackage.beginUndoTransaction(); - JMeterTreeModel jMeterTreeModel = guiPackage.getTreeModel(); - for (JMeterTreeNode jMeterTreeNode : jMeterTreeModel.getNodesOfType(Searchable.class)) { - if (jMeterTreeNode.getUserObject() instanceof Searchable){ - List<JMeterTreeNode> matchingNodes = jMeterTreeNode.getPathToThreadGroup(); - for (JMeterTreeNode jMeterTreeNode2 : matchingNodes) { - jMeterTreeNode2.setMarkedBySearch(false); - } - } - } + guiPackage.getTreeModel() + .getNodesOfType(Searchable.class).stream() + .filter(node -> node.getUserObject() instanceof Searchable) + .map(JMeterTreeNode::getPathToThreadGroup) + .flatMap(Collection::stream) + .forEach(matchingNode -> matchingNode.setMarkedBySearch(false)); } finally { guiPackage.endUndoTransaction(); } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/RevertProject.java Wed Nov 15 22:28:56 2017 @@ -53,7 +53,7 @@ public class RevertProject extends Abstr // Get the file name of the current project String projectFile = GuiPackage.getInstance().getTestPlanFile(); // Check if the user has loaded any file - if(projectFile == null) { + if (projectFile == null) { return; } @@ -67,7 +67,7 @@ public class RevertProject extends Abstr JMeterUtils.getResString("revert_project?"), // $NON-NLS-1$ JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); - if(response == JOptionPane.YES_OPTION) { + if (response == JOptionPane.YES_OPTION) { // Close the current project Close.closeProject(e); // Reload the project Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveGraphics.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveGraphics.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveGraphics.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/SaveGraphics.java Wed Nov 15 22:28:56 2017 @@ -86,16 +86,17 @@ public class SaveGraphics extends Abstra } if (e.getActionCommand().equals(ActionNames.SAVE_GRAPHICS_ALL)) { JMeterGUIComponent component = GuiPackage.getInstance().getCurrentGui(); - JComponent comp=((JComponent) component).getRootPane(); + JComponent comp = ((JComponent) component).getRootPane(); saveImage(comp); } } - private void saveImage(JComponent comp){ + private void saveImage(JComponent comp) { String filename; - JFileChooser chooser = FileDialoger.promptToSaveFile(GuiPackage.getInstance().getTreeListener() - .getCurrentNode().getName(), extensions); + JFileChooser chooser = FileDialoger.promptToSaveFile( + GuiPackage.getInstance().getTreeListener().getCurrentNode().getName(), + extensions); if (chooser == null) { return; } @@ -104,14 +105,14 @@ public class SaveGraphics extends Abstra filename = chooser.getSelectedFile().getAbsolutePath(); if (filename != null) { File f = new File(filename); - if(f.exists()) { + if (f.exists()) { int response = JOptionPane.showConfirmDialog(GuiPackage.getInstance().getMainFrame(), JMeterUtils.getResString("save_overwrite_existing_file"), // $NON-NLS-1$ JMeterUtils.getResString("save?"), // $NON-NLS-1$ JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (response == JOptionPane.CLOSED_OPTION || response == JOptionPane.NO_OPTION) { - return ; // Do not save, user does not want to overwrite + return; // Do not save, user does not want to overwrite } } SaveGraphicsService save = new SaveGraphicsService(); @@ -125,6 +126,5 @@ public class SaveGraphics extends Abstra save.saveJComponent(filename, SaveGraphicsService.PNG, comp); } } - } } Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeDialog.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeDialog.java?rev=1815392&r1=1815391&r2=1815392&view=diff ============================================================================== --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeDialog.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/SearchTreeDialog.java Wed Nov 15 22:28:56 2017 @@ -89,9 +89,6 @@ public class SearchTreeDialog extends JD private JButton cancelButton; - /** - * Store last search - */ private transient String lastSearch = null; private JButton searchAndExpandButton; @@ -138,7 +135,7 @@ public class SearchTreeDialog extends JD this.getContentPane().setLayout(new BorderLayout(10,10)); searchTF = new JLabeledTextField(JMeterUtils.getResString("search_text_field"), 20); //$NON-NLS-1$ - if(!StringUtils.isEmpty(lastSearch)) { + if (!StringUtils.isEmpty(lastSearch)) { searchTF.setText(lastSearch); } @@ -196,12 +193,11 @@ public class SearchTreeDialog extends JD @Override public void actionPerformed(ActionEvent e) { statusLabel.setText(""); - if (e.getSource()==cancelButton) { + if (e.getSource() == cancelButton) { searchTF.requestFocusInWindow(); this.setVisible(false); - return; - } else if(e.getSource() == searchButton || - e.getSource() == searchAndExpandButton) { + } else if (e.getSource() == searchButton + || e.getSource() == searchAndExpandButton) { doSearch(e); } else { doReplaceAll(e); @@ -223,7 +219,7 @@ public class SearchTreeDialog extends JD // reset previous result ActionRouter.getInstance().doActionNow(new ActionEvent(e.getSource(), e.getID(), ActionNames.SEARCH_RESET)); // do search - Searcher searcher = null; + Searcher searcher; if (isRegexpCB.isSelected()) { searcher = new RegexpSearcher(isCaseSensitiveCB.isSelected(), searchTF.getText()); } else { @@ -275,10 +271,10 @@ public class SearchTreeDialog extends JD private void doReplaceAll(ActionEvent e) { String wordToSearch = searchTF.getText(); String wordToReplace = replaceTF.getText(); - + if (StringUtils.isEmpty(wordToReplace)) { return; - } + } // Save any change to current node GuiPackage.getInstance().updateCurrentNode(); // reset previous result @@ -305,21 +301,21 @@ public class SearchTreeDialog extends JD if (result && jMeterTreeNode.getUserObject() instanceof Replaceable) { Replaceable replaceable = (Replaceable) jMeterTreeNode.getUserObject(); int numberOfReplacements = replaceable.replace(regex, wordToReplace, caseSensitiveReplacement); - if(logger.isInfoEnabled()) { - logger.info("Replaced "+numberOfReplacements+" in element:" - +((TestElement)jMeterTreeNode.getUserObject()).getName()); + if (logger.isInfoEnabled()) { + logger.info("Replaced " + numberOfReplacements + " in element:" + + ((TestElement) jMeterTreeNode.getUserObject()).getName()); } totalReplaced += numberOfReplacements; - if(numberOfReplacements > 0) { + if (numberOfReplacements > 0) { List<JMeterTreeNode> matchingNodes = jMeterTreeNode.getPathToThreadGroup(); nodes.addAll(matchingNodes); } } } catch (Exception ex) { - logger.error("Error occurred replacing data in node:"+jMeterTreeNode.getName(), ex); + logger.error("Error occurred replacing data in node:" + jMeterTreeNode.getName(), ex); } } - statusLabel.setText(MessageFormat.format("Replaced {0} occurrences", new Object[]{totalReplaced})); + statusLabel.setText(MessageFormat.format("Replaced {0} occurrences", totalReplaced)); GuiPackage guiInstance = GuiPackage.getInstance(); JTree jTree = guiInstance.getMainFrame().getTree(); @@ -328,7 +324,7 @@ public class SearchTreeDialog extends JD jTree.expandPath(new TreePath(jMeterTreeNode.getPath())); } // Update GUI as current node may be concerned by changes - if(totalReplaced>0) { + if (totalReplaced > 0) { GuiPackage.getInstance().refreshCurrentGui(); } GuiPackage.getInstance().getMainFrame().repaint();