Good catch, forgot to commit On Sunday, October 27, 2013, sebb wrote:
> On 26 October 2013 23:32, <[email protected] <javascript:;>> wrote: > > Author: pmouawad > > Date: Sat Oct 26 22:32:44 2013 > > New Revision: 1536042 > > > > URL: http://svn.apache.org/r1536042 > > Log: > > Bug 55693 - Add a "Save as Test Fragment" option > > Bugzilla Id: 55693 > > > > Modified: > > jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java > > > > Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java?rev=1536042&r1=1536041&r2=1536042&view=diff > > > ============================================================================== > > --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java > (original) > > +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java Sat Oct > 26 22:32:44 2013 > > @@ -37,6 +37,7 @@ import org.apache.jmeter.gui.tree.JMeter > > import org.apache.jmeter.gui.util.FileDialoger; > > import org.apache.jmeter.save.SaveService; > > 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; > > @@ -100,15 +101,22 @@ public class Save implements Command { > > } > > else if > (e.getActionCommand().equals(ActionNames.SAVE_AS_TEST_FRAGMENT)) { > > JMeterTreeNode[] nodes = > GuiPackage.getInstance().getTreeListener().getSelectedNodes(); > > - subTree = GuiPackage.getInstance().getCurrentSubTree(); > > - > > - TestElement element = > GuiPackage.getInstance().createTestElement(TestFragmentControllerGui.class.getName()); > > - HashTree hashTree = new ListedHashTree(); > > - HashTree tfTree = hashTree.add(new JMeterTreeNode(element, > null)); > > - for (int i = 0; i < nodes.length; i++) { > > - tfTree.add(nodes[i]); > > + if(checkAcceptableForTestFragment(nodes)) { > > + subTree = GuiPackage.getInstance().getCurrentSubTree(); > > + > > + TestElement element = > GuiPackage.getInstance().createTestElement(TestFragmentControllerGui.class.getName()); > > + HashTree hashTree = new ListedHashTree(); > > + HashTree tfTree = hashTree.add(new > JMeterTreeNode(element, null)); > > + for (int i = 0; i < nodes.length; i++) { > > + tfTree.add(nodes[i]); > > + } > > + subTree = hashTree; > > + } else { > > + JMeterUtils.reportErrorToUser( > > + > JMeterUtils.getResString("save_as_test_fragment_error"), // $NON-NLS-1$ > > The above needs to be added to the properties files. > > > + > JMeterUtils.getResString("save_as_test_fragment")); // $NON-NLS-1$ > > + return; > > } > > - subTree = hashTree; > > } else { > > fullSave = true; > > HashTree testPlan = > GuiPackage.getInstance().getTreeModel().getTestPlan(); > > @@ -181,6 +189,21 @@ public class Save implements Command { > > GuiPackage.getInstance().updateCurrentGui(); > > } > > > > + /** > > + * Check nodes does not contain a node of type TestPlan or > ThreadGroup > > + * @param nodes > > + */ > > + private static final boolean > checkAcceptableForTestFragment(JMeterTreeNode[] nodes) { > > + for (int i = 0; i < nodes.length; i++) { > > + Object userObject = nodes[i].getUserObject(); > > + if(userObject instanceof > org.apache.jmeter.threads.ThreadGroup || > > + userObject instanceof TestPlan) { > > + return false; > > + } > > + } > > + return true; > > + } > > + > > // package protected to allow access from test code > > void convertSubTree(HashTree tree) { > > Iterator<Object> iter = new > LinkedList<Object>(tree.list()).iterator(); > > > > > -- Cordialement. Philippe Mouawad.
