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>


Reply via email to