Index: C:/Documents and Settings/alf.hogemark/workspace/Jmeter 2.2 official/src/core/org/apache/jmeter/gui/action/Paste.java =================================================================== --- C:/Documents and Settings/alf.hogemark/workspace/Jmeter 2.2 official/src/core/org/apache/jmeter/gui/action/Paste.java (revision 535755) +++ C:/Documents and Settings/alf.hogemark/workspace/Jmeter 2.2 official/src/core/org/apache/jmeter/gui/action/Paste.java (working copy) @@ -22,9 +22,14 @@ import java.util.HashSet; import java.util.Set; +import org.apache.jmeter.exceptions.IllegalUserActionException; import org.apache.jmeter.gui.GuiPackage; import org.apache.jmeter.gui.tree.JMeterTreeListener; 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; /** * Places a copied JMeterTreeNode under the selected node. @@ -33,6 +38,7 @@ * @version $Revision$ */ public class Paste extends AbstractAction { + private static final Logger log = LoggingManager.getLoggerForClass(); private static Set commands = new HashSet(); static { @@ -56,11 +62,25 @@ if (DragNDrop.canAddTo(currentNode)) { for (int i = 0; i < draggedNodes.length; i++) { if (draggedNodes[i] != null) { - GuiPackage.getInstance().getTreeModel().insertNodeInto(draggedNodes[i], currentNode, - currentNode.getChildCount()); + addNode(currentNode, draggedNodes[i]); } } } GuiPackage.getInstance().getMainFrame().repaint(); } -} \ No newline at end of file + + private void addNode(JMeterTreeNode parent, JMeterTreeNode node) { + try { + // 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++) { + addNode(newNode, (JMeterTreeNode)node.getChildAt(i)); + } + } + catch (IllegalUserActionException iuae) { + log.error("", iuae); // $NON-NLS-1$ + JMeterUtils.reportErrorToUser(iuae.getMessage()); + } + } +}