khammond 01/09/29 08:18:52 Modified: src/org/apache/jmeter/gui/tree JMeterTreeModel.java Log: Passes isRootNode flag to WorkBench constructor. Revision Changes Path 1.9 +189 -190 jakarta-jmeter/src/org/apache/jmeter/gui/tree/JMeterTreeModel.java Index: JMeterTreeModel.java =================================================================== RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/gui/tree/JMeterTreeModel.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- JMeterTreeModel.java 2001/08/31 00:46:43 1.8 +++ JMeterTreeModel.java 2001/09/29 15:18:52 1.9 @@ -1,190 +1,189 @@ -/* - * ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2001 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache JMeter" must not be used to endorse or promote products - * derived from this software without prior written permission. For - * written permission, please contact [EMAIL PROTECTED] - * - * 5. Products derived from this software may not be called "Apache", - * "Apache JMeter", nor may "Apache" appear in their name, without - * prior written permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * <http://www.apache.org/>. - */ -package org.apache.jmeter.gui.tree; - -import javax.swing.tree.*; - -import java.util.*; - -import org.apache.jmeter.threads.ThreadGroup; -import org.apache.jmeter.config.ConfigElement; -import org.apache.jmeter.timers.Timer; -import org.apache.jmeter.samplers.SampleListener; -import org.apache.jmeter.gui.JMeterComponentModel; -import org.apache.jmeter.util.ListedHashTree; -import org.apache.jmeter.control.SamplerController; -import org.apache.jmeter.control.TestPlan; -import org.apache.jmeter.control.WorkBench; - -/************************************************************ - * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache - * - *@author Michael Stover - *@created $Date: 2001/08/31 00:46:43 $ - *@version 1.0 - ***********************************************************/ - -public class JMeterTreeModel extends DefaultTreeModel -{ - - private static ResourceBundle rb = ResourceBundle.getBundle("org.apache.jmeter.resources.messages"); - - /************************************************************ - * !ToDo (Constructor description) - ***********************************************************/ - public JMeterTreeModel() - { - super(new JMeterTreeNode(new WorkBench(rb.getString("root")))); - this.insertNodeInto(new JMeterTreeNode(TestPlan.createTestPlan(rb.getString("test_plan"))), - (JMeterTreeNode)getRoot(), 0); - this.insertNodeInto(new JMeterTreeNode(new WorkBench(rb.getString("workbench"))), - (JMeterTreeNode)getRoot(), 1); - } - - /************************************************************ - * !ToDoo (Method description) - * - *@param type !ToDo (Parameter description) - *@return !ToDo (Return description) - ***********************************************************/ - public List getNodesOfType(Class type) - { - List nodeList = new LinkedList(); - traverseAndFind(type, (JMeterTreeNode)this.getRoot(), nodeList); - return nodeList; - } - - /************************************************************ - * !ToDo - * - *@param subTree !ToDo - *@param current !ToDo - ***********************************************************/ - public void addSubTree(ListedHashTree subTree, JMeterTreeNode current) - { - Iterator iter = subTree.list().iterator(); - while (iter.hasNext()) - { - JMeterComponentModel item = (JMeterComponentModel)iter.next(); - if (item instanceof TestPlan) - { - current = (JMeterTreeNode)((JMeterTreeNode)getRoot()).getChildAt(0); - addSubTree(subTree.get(item), current); - } - else - { - addSubTree(subTree.get(item), addComponent(item, current)); - } - } - } - - /************************************************************ - * !ToDo - * - *@param component !ToDo - *@param node !ToDo - *@return !ToDo (Return description) - ***********************************************************/ - public JMeterTreeNode addComponent(JMeterComponentModel component, JMeterTreeNode node) - { - JMeterTreeNode newNode = new JMeterTreeNode(component); - this.insertNodeInto(newNode, node, node.getChildCount()); - return newNode; - } - - /************************************************************ - * !ToDo (Method description) - * - *@param node !ToDo (Parameter description) - *@return !ToDo (Return description) - ***********************************************************/ - public JMeterComponentModel compileComponent(JMeterTreeNode node) - { - traverseNodeForCompiling(node); - return (JMeterComponentModel)node.getUserObject(); - } - - private void traverseAndFind(Class type, JMeterTreeNode node, List nodeList) - { - if (type.isInstance(node.getUserObject())) - { - nodeList.add(node); - } - Enumeration enum = node.children(); - while (enum.hasMoreElements()) - { - JMeterTreeNode child = (JMeterTreeNode)enum.nextElement(); - traverseAndFind(type, child, nodeList); - } - } - - private void traverseNodeForCompiling(JMeterTreeNode node) - { - node.uncompile(); - Enumeration enum = node.children(); - while (enum.hasMoreElements()) - { - JMeterTreeNode child = (JMeterTreeNode)enum.nextElement(); - traverseNodeForCompiling(child); - } - JMeterTreeNode parent = (JMeterTreeNode)node.getParent(); - addChildToParent((JMeterComponentModel)node.getUserObject(), (JMeterComponentModel)parent.getUserObject()); - } - - private void addChildToParent(JMeterComponentModel child, JMeterComponentModel parent) - { - parent.addJMeterComponent(child); - } -} +/* + * ==================================================================== + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2001 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, + * if any, must include the following acknowledgment: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowledgment may appear in the software itself, + * if and wherever such third-party acknowledgments normally appear. + * + * 4. The names "Apache" and "Apache Software Foundation" and + * "Apache JMeter" must not be used to endorse or promote products + * derived from this software without prior written permission. For + * written permission, please contact [EMAIL PROTECTED] + * + * 5. Products derived from this software may not be called "Apache", + * "Apache JMeter", nor may "Apache" appear in their name, without + * prior written permission of the Apache Software Foundation. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ + +package org.apache.jmeter.gui.tree; + +import javax.swing.tree.*; +import java.util.*; + +import org.apache.jmeter.threads.ThreadGroup; +import org.apache.jmeter.config.ConfigElement; +import org.apache.jmeter.timers.Timer; +import org.apache.jmeter.samplers.SampleListener; +import org.apache.jmeter.gui.JMeterComponentModel; +import org.apache.jmeter.util.ListedHashTree; +import org.apache.jmeter.control.SamplerController; +import org.apache.jmeter.control.TestPlan; +import org.apache.jmeter.control.WorkBench; + +/************************************************************ + * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache + * + *@author Michael Stover + *@created $Date: 2001/09/29 15:18:52 $ + *@version 1.0 + ***********************************************************/ + +public class JMeterTreeModel extends DefaultTreeModel +{ + private static ResourceBundle rb = ResourceBundle.getBundle("org.apache.jmeter.resources.messages"); + + /************************************************************ + * !ToDo (Constructor description) + ***********************************************************/ + public JMeterTreeModel() + { + super(new JMeterTreeNode(new WorkBench(rb.getString("root"), true))); + this.insertNodeInto(new JMeterTreeNode(TestPlan.createTestPlan(rb.getString("test_plan"))), + (JMeterTreeNode)getRoot(), 0); + this.insertNodeInto(new JMeterTreeNode(new WorkBench(rb.getString("workbench"), false)), + (JMeterTreeNode)getRoot(), 1); + } + + /************************************************************ + * !ToDoo (Method description) + * + *@param type !ToDo (Parameter description) + *@return !ToDo (Return description) + ***********************************************************/ + public List getNodesOfType(Class type) + { + List nodeList = new LinkedList(); + traverseAndFind(type, (JMeterTreeNode)this.getRoot(), nodeList); + return nodeList; + } + + /************************************************************ + * !ToDo + * + *@param subTree !ToDo + *@param current !ToDo + ***********************************************************/ + public void addSubTree(ListedHashTree subTree, JMeterTreeNode current) + { + Iterator iter = subTree.list().iterator(); + while (iter.hasNext()) + { + JMeterComponentModel item = (JMeterComponentModel)iter.next(); + if (item instanceof TestPlan) + { + current = (JMeterTreeNode)((JMeterTreeNode)getRoot()).getChildAt(0); + addSubTree(subTree.get(item), current); + } + else + { + addSubTree(subTree.get(item), addComponent(item, current)); + } + } + } + + /************************************************************ + * !ToDo + * + *@param component !ToDo + *@param node !ToDo + *@return !ToDo (Return description) + ***********************************************************/ + public JMeterTreeNode addComponent(JMeterComponentModel component, JMeterTreeNode node) + { + JMeterTreeNode newNode = new JMeterTreeNode(component); + this.insertNodeInto(newNode, node, node.getChildCount()); + return newNode; + } + + /************************************************************ + * !ToDo (Method description) + * + *@param node !ToDo (Parameter description) + *@return !ToDo (Return description) + ***********************************************************/ + public JMeterComponentModel compileComponent(JMeterTreeNode node) + { + traverseNodeForCompiling(node); + return (JMeterComponentModel)node.getUserObject(); + } + + private void traverseAndFind(Class type, JMeterTreeNode node, List nodeList) + { + if (type.isInstance(node.getUserObject())) + { + nodeList.add(node); + } + Enumeration enum = node.children(); + while (enum.hasMoreElements()) + { + JMeterTreeNode child = (JMeterTreeNode)enum.nextElement(); + traverseAndFind(type, child, nodeList); + } + } + + private void traverseNodeForCompiling(JMeterTreeNode node) + { + node.uncompile(); + Enumeration enum = node.children(); + while (enum.hasMoreElements()) + { + JMeterTreeNode child = (JMeterTreeNode)enum.nextElement(); + traverseNodeForCompiling(child); + } + JMeterTreeNode parent = (JMeterTreeNode)node.getParent(); + addChildToParent((JMeterComponentModel)node.getUserObject(), (JMeterComponentModel)parent.getUserObject()); + } + + private void addChildToParent(JMeterComponentModel child, JMeterComponentModel parent) + { + parent.addJMeterComponent(child); + } +}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
