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 2007/10/10 15:30:55 UTC

svn commit: r583470 - /jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java

Author: sebb
Date: Wed Oct 10 06:30:55 2007
New Revision: 583470

URL: http://svn.apache.org/viewvc?rev=583470&view=rev
Log:
Check that merge target makes sense
Don't expand the test tree after loading

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java?rev=583470&r1=583469&r2=583470&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Load.java Wed Oct 10 06:30:55 2007
@@ -33,10 +33,12 @@
 import org.apache.jmeter.gui.GuiPackage;
 import org.apache.jmeter.gui.tree.JMeterTreeNode;
 import org.apache.jmeter.gui.util.FileDialoger;
+import org.apache.jmeter.gui.util.MenuFactory;
 import org.apache.jmeter.save.SaveService;
 import org.apache.jmeter.services.FileServer;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.testelement.TestPlan;
+import org.apache.jmeter.testelement.WorkBench;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.collections.HashTree;
 import org.apache.jorphan.logging.LoggingManager;
@@ -142,15 +144,28 @@
 		boolean isTestPlan = tree.getArray()[0] instanceof TestPlan;
 
 		// If we are loading a new test plan, initialize the tree with the testplan node we are loading
+		GuiPackage guiInstance = GuiPackage.getInstance();
 		if(isTestPlan && !merging) {
-			GuiPackage.getInstance().getTreeModel().clearTestPlan((TestElement)tree.getArray()[0]);
+			guiInstance.getTreeModel().clearTestPlan((TestElement)tree.getArray()[0]);
 		}
 
-		HashTree newTree = GuiPackage.getInstance().addSubTree(tree);
-		GuiPackage.getInstance().updateCurrentGui();
-		GuiPackage.getInstance().getMainFrame().getTree().setSelectionPath(
+		if (merging){ // Check if target of merge is reasonable
+			TestElement te = (TestElement)tree.getArray()[0];
+			if (!(te instanceof WorkBench || te instanceof TestPlan)){// These are handled specially by addToTree
+				boolean ok = MenuFactory.canAddTo(guiInstance.getCurrentNode(), te);
+				if (!ok){
+					String name = te.getName();
+					String className = te.getClass().getName();
+					className = className.substring(className.lastIndexOf(".")+1);
+					throw new IllegalUserActionException("Can't merge "+name+" ("+className+") here");
+				}				
+			}
+		}
+		HashTree newTree = guiInstance.addSubTree(tree);
+		guiInstance.updateCurrentGui();
+		guiInstance.getMainFrame().getTree().setSelectionPath(
 				new TreePath(((JMeterTreeNode) newTree.getArray()[0]).getPath()));
-		tree = GuiPackage.getInstance().getCurrentSubTree();
+		tree = guiInstance.getCurrentSubTree();
 		// Send different event wether we are merging a test plan into another test plan,
 		// or loading a testplan from scratch
 		ActionEvent actionEvent = null;
@@ -162,12 +177,13 @@
 		}
 
 		ActionRouter.getInstance().actionPerformed(actionEvent);
-	    if (expandTree) {
-			JTree jTree = GuiPackage.getInstance().getMainFrame().getTree();
-			   for(int i = 0; i < jTree.getRowCount(); i++) {
-			     jTree.expandRow(i);
-			   }
-	    }
+// Disabled for now, as it is disconcerting
+//	    if (expandTree) {
+//			JTree jTree = guiInstance.getMainFrame().getTree();
+//			   for(int i = 0; i < jTree.getRowCount(); i++) {
+//			     jTree.expandRow(i);
+//			   }
+//	    }
 
 		return isTestPlan;
 	}



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