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/20 08:54:45 UTC
svn commit: r1818752 - in /jmeter/trunk:
src/protocol/http/org/apache/jmeter/protocol/http/config/gui/
src/protocol/http/org/apache/jmeter/protocol/http/control/
src/protocol/http/org/apache/jmeter/protocol/http/control/gui/
src/protocol/http/org/apach...
Author: pmouawad
Date: Wed Dec 20 08:54:45 2017
New Revision: 1818752
URL: http://svn.apache.org/viewvc?rev=1818752&view=rev
Log:
Bug 61919 - UX : Reorder Menus
Contributed by Graham Russell
Reordered menus (2/3)
This comment #360
Bugzilla Id: 61919
Added:
jmeter/trunk/test/src/org/apache/jmeter/gui/util/MenuFactorySpec.groovy
Removed:
jmeter/trunk/test/src/org/apache/jmeter/gui/util/TestMenuFactory.java
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CacheManagerGui.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
jmeter/trunk/test/src/org/apache/jmeter/visualizers/GenerateTreeGui.java
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/gui/HttpDefaultsGui.java Wed Dec 20 08:54:45 2017
@@ -36,6 +36,7 @@ import javax.swing.UIManager;
import org.apache.commons.lang3.StringUtils;
import org.apache.jmeter.config.ConfigTestElement;
import org.apache.jmeter.config.gui.AbstractConfigGui;
+import org.apache.jmeter.gui.GUIMenuSortOrder;
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase;
@@ -51,6 +52,7 @@ import org.apache.jorphan.gui.JLabeledTe
/**
* GUI for Http Request defaults
*/
+@GUIMenuSortOrder(1)
public class HttpDefaultsGui extends AbstractConfigGui {
private static final long serialVersionUID = 241L;
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CacheManager.java Wed Dec 20 08:54:45 2017
@@ -54,22 +54,24 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Handles HTTP Caching
+ * Handles HTTP Caching.
*/
public class CacheManager extends ConfigTestElement implements TestStateListener, TestIterationListener, Serializable {
- private static final Date EXPIRED_DATE = new Date(0L);
-
private static final long serialVersionUID = 235L;
private static final Logger log = LoggerFactory.getLogger(CacheManager.class);
+ private static final Date EXPIRED_DATE = new Date(0L);
+ private static final int DEFAULT_MAX_SIZE = 5000;
+ private static final long ONE_YEAR_MS = 365*24*60*60*1000L;
private static final String[] CACHEABLE_METHODS = JMeterUtils.getPropDefault("cacheable_methods", "GET").split("[ ,]");
static {
- log.info("Will only cache the following methods: "+Arrays.toString(CACHEABLE_METHODS));
+ if (log.isInfoEnabled()) {
+ log.info("Will only cache the following methods: " + Arrays.toString(CACHEABLE_METHODS));
+ }
}
-
//+ JMX attributes, do not change values
public static final String CLEAR = "clearEachIteration"; // $NON-NLS-1$
public static final String USE_EXPIRES = "useExpires"; // $NON-NLS-1$
@@ -80,11 +82,8 @@ public class CacheManager extends Config
private transient boolean useExpires; // Cached value
- private static final int DEFAULT_MAX_SIZE = 5000;
-
- private static final long ONE_YEAR_MS = 365*24*60*60*1000L;
-
- /** used to share the cache between 2 cache managers
+ /**
+ * used to share the cache between 2 cache managers
* @see CacheManager#createCacheManagerProxy()
* @since 3.0 */
private transient Map<String, CacheEntry> localCache;
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/CookieManager.java Wed Dec 20 08:54:45 2017
@@ -50,7 +50,6 @@ import org.slf4j.LoggerFactory;
/**
* This class provides an interface to the netscape cookies file to pass cookies
* along with a request.
- *
*/
public class CookieManager extends ConfigTestElement implements TestStateListener, TestIterationListener, Serializable {
private static final long serialVersionUID = 234L;
@@ -59,11 +58,8 @@ public class CookieManager extends Confi
//++ JMX tag values
private static final String CLEAR = "CookieManager.clearEachIteration";// $NON-NLS-1$
-
private static final String COOKIES = "CookieManager.cookies";// $NON-NLS-1$
-
private static final String POLICY = "CookieManager.policy"; //$NON-NLS-1$
-
private static final String IMPLEMENTATION = "CookieManager.implementation"; //$NON-NLS-1$
//-- JMX tag values
@@ -92,8 +88,8 @@ public class CookieManager extends Confi
DELETE_NULL_COOKIES, CHECK_COOKIES, ALLOW_VARIABLE_COOKIES,
SAVE_COOKIES, COOKIE_NAME_PREFIX);
}
- private transient CookieHandler cookieHandler;
+ private transient CookieHandler cookieHandler;
private transient CollectionProperty initialCookies;
/**
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/gui/HttpTestSampleGui.java Wed Dec 20 08:54:45 2017
@@ -34,6 +34,7 @@ import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.UIManager;
+import org.apache.jmeter.gui.GUIMenuSortOrder;
import org.apache.jmeter.gui.util.HorizontalPanel;
import org.apache.jmeter.gui.util.VerticalPanel;
import org.apache.jmeter.protocol.http.config.gui.UrlConfigGui;
@@ -48,6 +49,7 @@ import org.apache.jorphan.gui.JLabeledTe
/**
* HTTP Sampler GUI
*/
+@GUIMenuSortOrder(1)
public class HttpTestSampleGui extends AbstractSamplerGui {
private static final long serialVersionUID = 241L;
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CacheManagerGui.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CacheManagerGui.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CacheManagerGui.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CacheManagerGui.java Wed Dec 20 08:54:45 2017
@@ -26,28 +26,24 @@ import javax.swing.JPanel;
import javax.swing.JTextField;
import org.apache.jmeter.config.gui.AbstractConfigGui;
+import org.apache.jmeter.gui.GUIMenuSortOrder;
import org.apache.jmeter.protocol.http.control.CacheManager;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.gui.layout.VerticalLayout;
/**
- * The GUI for the HTTP Cache Manager
- *
+ * The GUI for the HTTP Cache Manager {@link CacheManager}
*/
+@GUIMenuSortOrder(2)
public class CacheManagerGui extends AbstractConfigGui {
private static final long serialVersionUID = 240L;
private JCheckBox clearEachIteration;
-
private JCheckBox useExpires;
-
private JTextField maxCacheSize;
- /**
- * Create a new LoginConfigGui as a standalone component.
- */
public CacheManagerGui() {
init();
}
@@ -57,15 +53,6 @@ public class CacheManagerGui extends Abs
return "cache_manager_title"; // $NON-NLS-1$
}
- /**
- * A newly created component can be initialized with the contents of a Test
- * Element object by calling this method. The component is responsible for
- * querying the Test Element object for the relevant information to display
- * in its GUI.
- *
- * @param element
- * the TestElement to configure
- */
@Override
public void configure(TestElement element) {
super.configure(element);
@@ -75,7 +62,6 @@ public class CacheManagerGui extends Abs
maxCacheSize.setText(Integer.toString(cacheManager.getMaxSize()));
}
- /* Implements JMeterGUIComponent.createTestElement() */
@Override
public TestElement createTestElement() {
CacheManager element = new CacheManager();
@@ -83,7 +69,6 @@ public class CacheManagerGui extends Abs
return element;
}
- /* Implements JMeterGUIComponent.modifyTestElement(TestElement) */
@Override
public void modifyTestElement(TestElement element) {
configureTestElement(element);
@@ -92,7 +77,7 @@ public class CacheManagerGui extends Abs
cacheManager.setUseExpires(useExpires.isSelected());
try {
cacheManager.setMaxSize(Integer.parseInt(maxCacheSize.getText()));
- } catch (NumberFormatException e) {
+ } catch (NumberFormatException ignored) {
// NOOP
}
}
@@ -110,8 +95,9 @@ public class CacheManagerGui extends Abs
/**
* Initialize the components and layout of this component.
+ * WARNING: called from ctor so must not be overridden (i.e. must be private or final)
*/
- private void init() { // WARNING: called from ctor so must not be overridden (i.e. must be private or final)
+ private void init() {
setLayout(new BorderLayout(0, 5));
setBorder(makeBorder());
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/CookiePanel.java Wed Dec 20 08:54:45 2017
@@ -35,6 +35,7 @@ import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import org.apache.jmeter.config.gui.AbstractConfigGui;
+import org.apache.jmeter.gui.GUIMenuSortOrder;
import org.apache.jmeter.gui.util.FileDialoger;
import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
import org.apache.jmeter.gui.util.PowerTableModel;
@@ -51,12 +52,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * This is the GUI for Cookie Manager
+ * This is the GUI for Cookie Manager {@link CookieManager}
*
* Allows the user to specify if she needs cookie services, and give parameters
* for this service.
- *
*/
+@GUIMenuSortOrder(3)
public class CookiePanel extends AbstractConfigGui implements ActionListener {
private static final long serialVersionUID = 241L;
@@ -65,53 +66,36 @@ public class CookiePanel extends Abstrac
//++ Action command names
private static final String ADD_COMMAND = "Add"; //$NON-NLS-1$
-
private static final String DELETE_COMMAND = "Delete"; //$NON-NLS-1$
-
private static final String LOAD_COMMAND = "Load"; //$NON-NLS-1$
-
private static final String SAVE_COMMAND = "Save"; //$NON-NLS-1$
//--
- /**
- * The default policy that is used when creating a new CookieManager
- */
- private static final String DEFAULT_POLICY = HC4CookieHandler.DEFAULT_POLICY_NAME;
-
- private JTable cookieTable;
-
- private PowerTableModel tableModel;
-
- private JCheckBox clearEachIteration;
+ private static final String DEFAULT_POLICY = HC4CookieHandler.DEFAULT_POLICY_NAME;
private static final String[] COLUMN_RESOURCE_NAMES = {
- "name", //$NON-NLS-1$
- "value", //$NON-NLS-1$
- "domain", //$NON-NLS-1$
- "path", //$NON-NLS-1$
- "secure", //$NON-NLS-1$
- // removed expiration because it's just an annoyance for static cookies
+ "name", //$NON-NLS-1$
+ "value", //$NON-NLS-1$
+ "domain", //$NON-NLS-1$
+ "path", //$NON-NLS-1$
+ "secure", //$NON-NLS-1$
+ // removed expiration because it's just an annoyance for static cookies
};
-
private static final Class<?>[] columnClasses = {
- String.class,
- String.class,
- String.class,
- String.class,
- Boolean.class, };
+ String.class,
+ String.class,
+ String.class,
+ String.class,
+ Boolean.class, };
+ private JTable cookieTable;
+ private PowerTableModel tableModel;
+ private JCheckBox clearEachIteration;
private JButton addButton;
-
private JButton deleteButton;
-
private JButton loadButton;
-
private JButton saveButton;
-
private JLabeledChoice policy;
- /**
- * Default constructor.
- */
public CookiePanel() {
init();
}
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/gui/HeaderPanel.java Wed Dec 20 08:54:45 2017
@@ -37,6 +37,7 @@ import javax.swing.ListSelectionModel;
import javax.swing.table.AbstractTableModel;
import org.apache.jmeter.config.gui.AbstractConfigGui;
+import org.apache.jmeter.gui.GUIMenuSortOrder;
import org.apache.jmeter.gui.util.FileDialoger;
import org.apache.jmeter.gui.util.HeaderAsPropertyRenderer;
import org.apache.jmeter.protocol.http.control.Header;
@@ -51,39 +52,26 @@ import org.slf4j.LoggerFactory;
* Allows the user to specify if she needs HTTP header services, and give
* parameters for this service.
*/
+@GUIMenuSortOrder(4)
public class HeaderPanel extends AbstractConfigGui implements ActionListener {
- /** When pasting from the clipboard, split lines on linebreak */
- private static final String CLIPBOARD_LINE_DELIMITER = "\n"; //$NON-NLS-1$
- /** When pasting from the clipboard, split parameters on ':' */
- private static final String CLIPBOARD_COLON_DELIMITER = ":"; //$NON-NLS-1$
+ private static final Logger log = LoggerFactory.getLogger(HeaderPanel.class);
- /** When pasting from the clipboard, split parameters on '\t' */
- private static final String CLIPBOARD_TAB_DELIMITER = "\t";
-
private static final long serialVersionUID = 241L;
- private static final Logger log = LoggerFactory.getLogger(HeaderPanel.class);
-
+ private static final String CLIPBOARD_LINE_DELIMITER = "\n";
+ private static final String CLIPBOARD_COLON_DELIMITER = ":";
+ private static final String CLIPBOARD_TAB_DELIMITER = "\t";
private static final String ADD_COMMAND = "Add"; // $NON-NLS-1$
-
private static final String DELETE_COMMAND = "Delete"; // $NON-NLS-1$
-
private static final String LOAD_COMMAND = "Load"; // $NON-NLS-1$
-
private static final String SAVE_COMMAND = "Save"; // $NON-NLS-1$
-
- /** Command for adding rows from the clipboard */
private static final String ADD_FROM_CLIPBOARD = "addFromClipboard"; // $NON-NLS-1$
private final InnerTableModel tableModel;
-
private final HeaderManager headerManager;
-
private JTable headerTable;
-
private JButton deleteButton;
-
private JButton saveButton;
public HeaderPanel() {
@@ -111,9 +99,6 @@ public class HeaderPanel extends Abstrac
configureTestElement(el);
}
- /**
- * Implements JMeterGUIComponent.clearGui
- */
@Override
public void clearGui() {
super.clearGui();
@@ -362,25 +347,16 @@ public class HeaderPanel extends Abstrac
return manager.getHeaders().size();
}
- /**
- * Required by table model interface.
- */
@Override
public int getColumnCount() {
return manager.getColumnCount();
}
- /**
- * Required by table model interface.
- */
@Override
public String getColumnName(int column) {
return manager.getColumnName(column);
}
- /**
- * Required by table model interface.
- */
@Override
public Object getValueAt(int row, int column) {
Header head = manager.getHeader(row);
@@ -392,9 +368,6 @@ public class HeaderPanel extends Abstrac
return null;
}
- /**
- * Required by table model interface.
- */
@Override
public void setValueAt(Object value, int row, int column) {
Header header = manager.getHeader(row);
Added: jmeter/trunk/test/src/org/apache/jmeter/gui/util/MenuFactorySpec.groovy
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/gui/util/MenuFactorySpec.groovy?rev=1818752&view=auto
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/gui/util/MenuFactorySpec.groovy (added)
+++ jmeter/trunk/test/src/org/apache/jmeter/gui/util/MenuFactorySpec.groovy Wed Dec 20 08:54:45 2017
@@ -0,0 +1,16 @@
+package org.apache.jmeter.gui.util
+
+import org.apache.jmeter.junit.categories.NeedGuiTests
+import org.apache.jmeter.junit.spock.JMeterSpec
+import org.junit.experimental.categories.Category
+
+@Category(NeedGuiTests.class)
+class MenuFactorySpec extends JMeterSpec {
+
+ def "ensure each menu has something in it"() {
+ expect:
+ MenuFactory.menuMap.size() == 11
+ MenuFactory.menuMap.values().stream().noneMatch({ it.isEmpty() })
+ !MenuFactory.elementsToSkip.isEmpty()
+ }
+}
Modified: jmeter/trunk/test/src/org/apache/jmeter/visualizers/GenerateTreeGui.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/visualizers/GenerateTreeGui.java?rev=1818752&r1=1818751&r2=1818752&view=diff
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/visualizers/GenerateTreeGui.java (original)
+++ jmeter/trunk/test/src/org/apache/jmeter/visualizers/GenerateTreeGui.java Wed Dec 20 08:54:45 2017
@@ -26,7 +26,6 @@ import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.Collection;
-import java.util.List;
import javax.swing.Box;
import javax.swing.ButtonGroup;
@@ -52,15 +51,15 @@ import org.apache.jmeter.util.JMeterUtil
/**
* Workbench test element to create a test plan containing samples of each test element
* (apart from Threads and Test Fragment).
- *<p>
+ * <p>
* The user creates a Thread Group, and the elements are created as child elements of
* Simple Controllers.
- *<p>
+ * <p>
* Note: the code currently runs on all versions of JMeter back to 2.2.
* Beware of making changes that rely on more recent APIs.
*/
-public class GenerateTreeGui extends AbstractConfigGui implements
- ActionListener, UnsharedComponent {
+public class GenerateTreeGui extends AbstractConfigGui
+ implements ActionListener, UnsharedComponent {
private static final long serialVersionUID = 1L;
@@ -88,40 +87,42 @@ public class GenerateTreeGui extends Abs
@Override
public Collection<String> getMenuCategories() {
- return Arrays.asList(new String[] { MenuFactory.NON_TEST_ELEMENTS });
+ return Arrays.asList(MenuFactory.NON_TEST_ELEMENTS);
}
@Override
public void actionPerformed(ActionEvent action) {
GuiPackage guiPackage = GuiPackage.getInstance();
JMeterTreeModel treeModel = guiPackage.getTreeModel();
- JMeterTreeNode myTarget = findFirstNodeOfType(org.apache.jmeter.threads.ThreadGroup.class, treeModel);
+ JMeterTreeNode myTarget = findFirstNodeOfType(ThreadGroup.class, treeModel);
if (myTarget == null) {
JMeterUtils.reportErrorToUser("Cannot find Thread Group");
return;
}
addElements(MenuFactory.CONTROLLERS, "Controllers", guiPackage, treeModel, myTarget);
- addElements(MenuFactory.CONFIG_ELEMENTS, "Config Elements", guiPackage, treeModel, myTarget);
+ addElements(MenuFactory.SAMPLERS, "Samplers", guiPackage, treeModel, myTarget);
addElements(MenuFactory.TIMERS, "Timers", guiPackage, treeModel, myTarget);
+ addElements(MenuFactory.ASSERTIONS, "Assertions", guiPackage, treeModel, myTarget);
addElements(MenuFactory.PRE_PROCESSORS, "Pre Processors", guiPackage, treeModel, myTarget);
- addElements(MenuFactory.SAMPLERS, "Samplers", guiPackage, treeModel, myTarget);
addElements(MenuFactory.POST_PROCESSORS, "Post Processors", guiPackage, treeModel, myTarget);
- addElements(MenuFactory.ASSERTIONS, "Assertions", guiPackage, treeModel, myTarget);
+ addElements(MenuFactory.CONFIG_ELEMENTS, "Config Elements", guiPackage, treeModel, myTarget);
addElements(MenuFactory.LISTENERS, "Listeners", guiPackage, treeModel, myTarget);
}
- private void addElements(String menuKey, String title, GuiPackage guiPackage, JMeterTreeModel treeModel,
- JMeterTreeNode myTarget) {
+ private void addElements(
+ String menuKey, String title, GuiPackage guiPackage,
+ JMeterTreeModel treeModel, JMeterTreeNode myTarget) {
+
myTarget = addSimpleController(treeModel, myTarget, title);
JPopupMenu jp = MenuFactory.makeMenu(menuKey, "").getPopupMenu();
for (Component comp : jp.getComponents()) {
- JMenuItem jmi = (JMenuItem) comp;
+ JMenuItem item = (JMenuItem) comp;
try {
- TestElement testElement = guiPackage.createTestElement(jmi.getName());
+ TestElement testElement = guiPackage.createTestElement(item.getName());
addToTree(treeModel, myTarget, testElement);
} catch (Exception e) {
- addSimpleController(treeModel, myTarget, jmi.getName()+" "+e.getMessage());
+ addSimpleController(treeModel, myTarget, item.getName()+" "+e.getMessage());
}
}
}
@@ -167,15 +168,14 @@ public class GenerateTreeGui extends Abs
p.add(Box.createVerticalStrut(70), BorderLayout.WEST);
add(p, BorderLayout.CENTER);
}
+
/**
* Helper method to add a Simple Controller to contain the elements.
* Called from Application Thread that needs to update GUI (JMeterTreeModel)
- * @param model
- * Test component tree model
- * @param node
- * Node in the tree where we will add the Controller
- * @param name
- * A name for the Controller
+ *
+ * @param model Test component tree model
+ * @param node Node in the tree where we will add the Controller
+ * @param name A name for the Controller
* @return the new node
*/
private JMeterTreeNode addSimpleController(JMeterTreeModel model, JMeterTreeNode node, String name) {
@@ -228,20 +228,15 @@ public class GenerateTreeGui extends Abs
/**
* Finds the first enabled node of a given type in the tree.
*
- * @param type
- * class of the node to be found
+ * @param type class of the node to be found
* @param treeModel the tree to search in
- *
* @return the first node of the given type in the test component tree, or
- * <code>null</code> if none was found.
+ * <code>null</code> if none was found.
*/
private JMeterTreeNode findFirstNodeOfType(Class<?> type, JMeterTreeModel treeModel) {
- List<JMeterTreeNode> nodes = treeModel.getNodesOfType(type);
- for (JMeterTreeNode node : nodes) {
- if (node.isEnabled()) {
- return node;
- }
- }
- return null;
+ return treeModel.getNodesOfType(type).stream()
+ .filter(JMeterTreeNode::isEnabled)
+ .findFirst()
+ .orElse(null);
}
}