Author: pmouawad
Date: Mon Feb 22 21:09:04 2016
New Revision: 1731740
URL: http://svn.apache.org/viewvc?rev=1731740&view=rev
Log:
Bug 59046 - JMeter Gui Replace controller should keep the name and the selection
#resolve #139
https://github.com/apache/jmeter/pull/139
Contribution by Benoit Wiart
Bugzilla Id: 59046
Modified:
jmeter/trunk/src/core/org/apache/jmeter/gui/action/ChangeParent.java
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/ChangeParent.java
URL:
http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/ChangeParent.java?rev=1731740&r1=1731739&r2=1731740&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/gui/action/ChangeParent.java
(original)
+++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/ChangeParent.java Mon
Feb 22 21:09:04 2016
@@ -24,11 +24,18 @@ import java.awt.event.ActionEvent;
import java.util.HashSet;
import java.util.Set;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
+
+import org.apache.commons.lang3.StringUtils;
import org.apache.jmeter.control.Controller;
import org.apache.jmeter.gui.GuiPackage;
+import org.apache.jmeter.gui.JMeterGUIComponent;
import org.apache.jmeter.gui.tree.JMeterTreeModel;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
@@ -73,6 +80,16 @@ public class ChangeParent implements Com
}
private void changeParent(TestElement newParent, GuiPackage guiPackage,
JMeterTreeNode currentNode) {
+
+ // keep the old name if it was not the default one
+ Controller currentController = (Controller)
currentNode.getUserObject();
+ JMeterGUIComponent currentGui = guiPackage.getCurrentGui();
+ String defaultName =
JMeterUtils.getResString(currentGui.getLabelResource());
+ if(StringUtils.isNotBlank(currentController.getName())
+ && !currentController.getName().equals(defaultName)){
+ newParent.setName(currentController.getName());
+ }
+
JMeterTreeModel treeModel = guiPackage.getTreeModel();
JMeterTreeNode newNode = new JMeterTreeNode(newParent, treeModel);
JMeterTreeNode parentNode = (JMeterTreeNode) currentNode.getParent();
@@ -86,6 +103,11 @@ public class ChangeParent implements Com
treeModel.removeNodeFromParent(node);
treeModel.insertNodeInto(node, newNode, newNode.getChildCount());
}
+
+ // select the node
+ TreeNode[] nodes = treeModel.getPathToRoot(newNode);
+ JTree tree = guiPackage.getTreeListener().getJTree();
+ tree.setSelectionPath(new TreePath(nodes));
}
}
Modified: jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1731740&r1=1731739&r2=1731740&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Mon Feb 22 21:09:04 2016
@@ -213,6 +213,7 @@ Summary
<li><bug>59037</bug>Drop HtmlParserHTMLParser and dependencies on htmlparser
and htmllexer</li>
<li><bug>58933</bug>JSyntaxTextArea : Ability to set font. Contributed by
Denis Kirpichenkov (denis.kirpichenkov at gmail.com)</li>
<li><bug>58793</bug>Create developers page explaining how to build and
contribute</li>
+<li><bug>59046</bug>JMeter Gui Replace controller should keep the name and the
selection. Contributed by Benoit Wiart (benoit dot wiart at gmail.com)</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>