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