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/11/21 20:00:29 UTC
svn commit: r1815976 -
/jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java
Author: pmouawad
Date: Tue Nov 21 20:00:29 2017
New Revision: 1815976
URL: http://svn.apache.org/viewvc?rev=1815976&view=rev
Log:
Bug 61591 - UX : Remove Workbench
Allow moving and copying Test Script Recorder under test plan
Allow moving and copying Test Script Recorder under Test Fragment
Bugzilla Id: 61591
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/util/MenuFactory.java
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=1815976&r1=1815975&r2=1815976&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 Tue Nov 21 20:00:29 2017
@@ -41,6 +41,7 @@ import javax.swing.KeyStroke;
import javax.swing.MenuElement;
import org.apache.jmeter.control.Controller;
+import org.apache.jmeter.control.TestFragmentController;
import org.apache.jmeter.gui.GuiPackage;
import org.apache.jmeter.gui.JMeterGUIComponent;
import org.apache.jmeter.gui.UndoHistory;
@@ -48,6 +49,7 @@ import org.apache.jmeter.gui.action.Acti
import org.apache.jmeter.gui.action.ActionRouter;
import org.apache.jmeter.gui.action.KeyStrokes;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
+import org.apache.jmeter.protocol.http.proxy.ProxyControl;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testbeans.TestBean;
import org.apache.jmeter.testbeans.gui.TestBeanGUI;
@@ -628,15 +630,18 @@ public final class MenuFactory {
return false;
}
- // Cannot move Non-Test Elements from root of Test Plan
- if (!(parent instanceof TestPlan) && foundMenuCategories(nodes, NON_TEST_ELEMENTS)) {
+ // Cannot move Non-Test Elements from root of Test Plan or Test Fragment
+ if (!(parent instanceof TestPlan || parent instanceof TestFragmentController)
+ && foundMenuCategories(nodes, NON_TEST_ELEMENTS)) {
return false;
}
if (parent instanceof TestPlan) {
if (foundClass(nodes,
new Class[]{Sampler.class, Controller.class}, // Samplers and Controllers need not apply ...
- org.apache.jmeter.threads.AbstractThreadGroup.class) // but AbstractThreadGroup (Controller) is OK
+ new Class[]{org.apache.jmeter.threads.AbstractThreadGroup.class,
+ ProxyControl.class
+ }) // but AbstractThreadGroup (Controller) and ProxyControl are OK
){
return false;
}
@@ -660,7 +665,12 @@ public final class MenuFactory {
return false;
}
- // Is any node an instance of one of the classes?
+ /**
+ * Is any of nodes an instance of one of the classes?
+ * @param nodes Array of {@link JMeterTreeNode}
+ * @param classes Array of {@link Class}
+ * @return true if nodes is one of classes
+ */
private static boolean foundClass(JMeterTreeNode[] nodes, Class<?>[] classes) {
for (JMeterTreeNode node : nodes) {
for (Class<?> aClass : classes) {
@@ -672,7 +682,12 @@ public final class MenuFactory {
return false;
}
- // Is any node an instance of one of the menu category?
+ /**
+ * Is any node an instance of one of the menu category?
+ * @param nodes Array of {@link JMeterTreeNode}
+ * @param category Category
+ * @return true if nodes is in category
+ */
private static boolean foundMenuCategories(JMeterTreeNode[] nodes, String category) {
for (JMeterTreeNode node : nodes) {
for (String c : node.getMenuCategories()) {
@@ -684,11 +699,24 @@ public final class MenuFactory {
return false;
}
- // Is any node an instance of one of the classes, but not an exception?
- private static boolean foundClass(JMeterTreeNode[] nodes, Class<?>[] classes, Class<?> except) {
+ /**
+ * Is any node an instance of one of the classes, but not an exceptions?
+ * @param nodes array of {@link JMeterTreeNode}
+ * @param classes Array of {@link Class}
+ * @param exceptions Array of {@link Class}
+ * @return boolean
+ */
+ private static boolean foundClass(JMeterTreeNode[] nodes, Class<?>[] classes, Class<?>[] exceptions) {
for (JMeterTreeNode node : nodes) {
Object userObject = node.getUserObject();
- if (!except.isInstance(userObject)) {
+ boolean isException = false;
+ for (Class<?> except : exceptions) {
+ if (except.isInstance(userObject)) {
+ isException = true;
+ break;
+ }
+ }
+ if (!isException) {
for (Class<?> aClass : classes) {
if (aClass.isInstance(userObject)) {
return true;