You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2004/09/26 17:36:26 UTC

cvs commit: jakarta-jmeter/src/core/org/apache/jmeter/gui/action DragNDrop.java Paste.java Copy.java Cut.java

sebb        2004/09/26 08:36:26

  Modified:    src/core/org/apache/jmeter/gui/action Tag: rel-2_0
                        DragNDrop.java Paste.java Copy.java Cut.java
  Log:
  Bug30042 -Cut/Copy/Paste multiple test elements
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.4.2.2   +4 -4      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/DragNDrop.java
  
  Index: DragNDrop.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/DragNDrop.java,v
  retrieving revision 1.4.2.1
  retrieving revision 1.4.2.2
  diff -u -r1.4.2.1 -r1.4.2.2
  --- DragNDrop.java	26 Sep 2004 14:30:20 -0000	1.4.2.1
  +++ DragNDrop.java	26 Sep 2004 15:36:26 -0000	1.4.2.2
  @@ -106,13 +106,13 @@
       
       /**
        * Determine whether or not dragged nodes can be added to this parent.
  -     * 
  +     * Also used by Paste
        * TODO tighten rules
        * TODO move to MenuFactory?
   	 * @param parentNode
   	 * @return whether it is OK to add the dragged nodes to this parent
   	 */
  -	private boolean canAddTo(JMeterTreeNode parentNode) {
  +	static boolean canAddTo(JMeterTreeNode parentNode) {
   		if (null==parentNode) return false;
   		TestElement te = parentNode.getTestElement();
   		//System.out.println("Add to: "+te.getClass().getName());
  
  
  
  1.3.2.1   +17 -12    jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Paste.java
  
  Index: Paste.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Paste.java,v
  retrieving revision 1.3
  retrieving revision 1.3.2.1
  diff -u -r1.3 -r1.3.2.1
  --- Paste.java	14 Feb 2004 03:34:28 -0000	1.3
  +++ Paste.java	26 Sep 2004 15:36:26 -0000	1.3.2.1
  @@ -54,17 +54,22 @@
        */
       public void doAction(ActionEvent e)
       {
  -        JMeterTreeNode draggedNode = Copy.getCopiedNode();
  -        if (draggedNode != null)
  +    	JMeterTreeNode draggedNodes[] = Copy.getCopiedNodes();
  + 		JMeterTreeListener treeListener =
  + 					GuiPackage.getInstance().getTreeListener();
  + 		JMeterTreeNode currentNode = treeListener.getCurrentNode();
  +        if (DragNDrop.canAddTo(currentNode))
           {
  -            JMeterTreeListener treeListener =
  -                GuiPackage.getInstance().getTreeListener();
  -            JMeterTreeNode currentNode = treeListener.getCurrentNode();
  -            GuiPackage.getInstance().getTreeModel().insertNodeInto(
  -                draggedNode,
  -                currentNode,
  -                currentNode.getChildCount());
  +	 		for(int i=0;i<draggedNodes.length;i++) { 
  +	 			if (draggedNodes[i] != null)
  +	 			{
  +	 				GuiPackage.getInstance().getTreeModel().insertNodeInto(
  +	 					draggedNodes[i], 
  +						currentNode,
  +	 					currentNode.getChildCount());
  +				}
  +	 		}
           }
           GuiPackage.getInstance().getMainFrame().repaint();
       }
  -}
  +}
  \ No newline at end of file
  
  
  
  1.7.2.1   +34 -4     jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Copy.java
  
  Index: Copy.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Copy.java,v
  retrieving revision 1.7
  retrieving revision 1.7.2.1
  diff -u -r1.7 -r1.7.2.1
  --- Copy.java	14 Feb 2004 03:34:28 -0000	1.7
  +++ Copy.java	26 Sep 2004 15:36:26 -0000	1.7.2.1
  @@ -40,6 +40,7 @@
   public class Copy extends AbstractAction
   {
       private static JMeterTreeNode copiedNode = null;
  +    private static JMeterTreeNode copiedNodes[] = null;
   
       private static String COPY = "Copy";
       private static HashSet commands = new HashSet();
  @@ -59,7 +60,19 @@
       {
           JMeterTreeListener treeListener =
               GuiPackage.getInstance().getTreeListener();
  -        setCopiedNode((JMeterTreeNode) treeListener.getCurrentNode());
  +        JMeterTreeNode[] nodes = treeListener.getSelectedNodes();
  + 		setCopiedNodes(nodes);
  +    }
  +
  +    public static JMeterTreeNode[] getCopiedNodes()
  +    {
  + 		for(int i=0;i<copiedNodes.length;i++) {
  + 	        if (copiedNodes[i] == null)
  + 	        {
  + 	        	return null;
  +		    }
  + 		}
  +        return cloneTreeNodes(copiedNodes);
       }
   
       public static JMeterTreeNode getCopiedNode()
  @@ -83,6 +96,23 @@
           cloneChildren(treeNode, node);
           return treeNode;
       }
  +    public static void setCopiedNodes(JMeterTreeNode nodes[])
  +    {
  +		copiedNodes = new JMeterTreeNode[nodes.length];
  +		for(int i=0;i<nodes.length;i++)
  + 		{
  +			copiedNodes[i] = cloneTreeNode(nodes[i]);
  +		}
  +    }
  +
  +    public static JMeterTreeNode[] cloneTreeNodes(JMeterTreeNode nodes[])
  +   {
  +		JMeterTreeNode treeNodes[] = new JMeterTreeNode[nodes.length];
  +		for(int i=0;i<nodes.length;i++) {
  +			treeNodes[i] = cloneTreeNode(nodes[i]);
  +		}
  +        return treeNodes;
  +    }
   
       private static void cloneChildren(JMeterTreeNode to, JMeterTreeNode from)
       {
  @@ -97,4 +127,4 @@
               cloneChildren((JMeterTreeNode) to.getLastChild(), child);
           }
       }
  -}
  +}
  \ No newline at end of file
  
  
  
  1.6.2.1   +8 -6      jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Cut.java
  
  Index: Cut.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/Cut.java,v
  retrieving revision 1.6
  retrieving revision 1.6.2.1
  diff -u -r1.6 -r1.6.2.1
  --- Cut.java	27 Feb 2004 00:45:05 -0000	1.6
  +++ Cut.java	26 Sep 2004 15:36:26 -0000	1.6.2.1
  @@ -51,10 +51,12 @@
       public void doAction(ActionEvent e)
       {
           GuiPackage guiPack = GuiPackage.getInstance();
  -        JMeterTreeNode currentNode = guiPack.getTreeListener().getCurrentNode();
  +        JMeterTreeNode[] currentNodes = guiPack.getTreeListener().getSelectedNodes();
   
  -        Copy.setCopiedNode(currentNode);
  -        guiPack.getTreeModel().removeNodeFromParent(currentNode);
  + 		Copy.setCopiedNodes(currentNodes);
  + 		for(int i=0;i<currentNodes.length;i++) {
  + 	        guiPack.getTreeModel().removeNodeFromParent(currentNodes[i]);
  + 		}
           guiPack.getMainFrame().repaint();
       }
  -}
  +}
  \ No newline at end of file
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org