khammond    01/09/29 08:47:33

  Modified:    src/org/apache/jmeter/gui/tree NonGuiTree.java
  Log:
  Added isRootNode when calling the WorkBench constructor.
  
  Revision  Changes    Path
  1.6       +512 -256  jakarta-jmeter/src/org/apache/jmeter/gui/tree/NonGuiTree.java
  
  Index: NonGuiTree.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/org/apache/jmeter/gui/tree/NonGuiTree.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NonGuiTree.java   2001/08/31 00:46:44     1.5
  +++ NonGuiTree.java   2001/09/29 15:47:33     1.6
  @@ -1,256 +1,512 @@
  -/*
  - * ====================================================================
  - * 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 java.util.*;
  -import org.apache.jmeter.util.*;
  -import org.apache.jmeter.control.TestPlan;
  -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.log4j.Category;
  -import org.apache.jmeter.control.SamplerController;
  -import org.apache.jmeter.control.WorkBench;
  -
  -/************************************************************
  - *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
  - *  This class simulates a tree and eliminates the need for the swing
  - *  components. Most of the code in this class has been borrowed from
  - *  JMeterTreeModel.
  - *
  - *@author     Tushar Bhatia
  - *@created    June 18, 2001
  - *@version    1.0
  - *@see        org.apache.jmeter.NonGuiDriver
  - ***********************************************************/
  -
  -public class NonGuiTree extends NonGuiTreeNode
  -{
  -     private Category log = Category.getInstance(NonGuiTree.class);
  -
  -     /************************************************************
  -      *  !ToDo (Constructor description)
  -      ***********************************************************/
  -     public NonGuiTree()
  -     {
  -             super(null);
  -
  -             log.info("Adding Test Plan");
  -             this.insertNodeInto(new NonGuiTreeNode(TestPlan.createTestPlan("Test 
Plan")), 0);
  -
  -             log.info("Adding WorkBench");
  -             this.insertNodeInto(new NonGuiTreeNode(new WorkBench("WorkBench")), 
1);
  -     }
  -
  -     /************************************************************
  -      *  !ToDoo (Method description)
  -      *
  -      *@return    !ToDo (Return description)
  -      ***********************************************************/
  -     public NonGuiTreeNode getRoot()
  -     {
  -             return this;
  -     }
  -
  -     /************************************************************
  -      *  !ToDo
  -      *
  -      *@param  subTree  !ToDo
  -      *@param  current  !ToDo
  -      ***********************************************************/
  -     public void addSubTree(ListedHashTree subTree, NonGuiTreeNode current)
  -     {
  -             if (log.isDebugEnabled())
  -             {
  -                     log.debug("addSubTree:" + (current == null ? "null" : 
current.getUserObject().getClass().getName()));
  -             }
  -             Iterator iter = subTree.list().iterator();
  -             while (iter.hasNext())
  -             {
  -                     JMeterComponentModel item = (JMeterComponentModel)iter.next();
  -                     if (item instanceof TestPlan)
  -                     {
  -                             current = 
(NonGuiTreeNode)((NonGuiTreeNode)getRoot()).getChildAt(0);
  -                             addSubTree(subTree.get(item), current);
  -                     }
  -                     else
  -                     {
  -                             addSubTree(subTree.get(item), addComponent(item, 
current));
  -                     }
  -             }
  -     }
  -
  -     /************************************************************
  -      *  Returns the JMeterComponentModel after compiling(adding all children to
  -      *  different objects) after parsing the tree. To invoke this method use the
  -      *  following code: <br>
  -      *  <pre>
  -      *NonGuiTree ngt = new NonGuiTree();
  -      * pass the LinkedHashTree to this class to store all the components.
  -      *ngt.addSubTree(linkedHashTree, null);
  -      * now compile
  -      *TestPlan tp = (TestPlan)ngt.compileComponent(ngt.getChildAt(0));
  -      *Collection threads = tp.getThreadGroups();
  -      *.
  -      *.
  -      * and work on the threads by passing them to the engine etc.
  -      *</pre>
  -      *
  -      *@param  node  !ToDo (Parameter description)
  -      *@return       !ToDo (Return description)
  -      *@see          org.apache.NonGuiDriver
  -      ***********************************************************/
  -     public JMeterComponentModel compileComponent(NonGuiTreeNode node)
  -     {
  -             if (log.isDebugEnabled())
  -             {
  -                     log.debug("compileComponent:" + 
node.getUserObject().getClass().getName());
  -             }
  -             traverseNode(node);
  -             return (JMeterComponentModel)node.getUserObject();
  -     }
  -
  -     private NonGuiTreeNode addComponent(JMeterComponentModel component, 
NonGuiTreeNode node)
  -     {
  -             if (log.isDebugEnabled())
  -             {
  -                     log.debug("addComponent:" + (component == null ? "null" : 
component.getClass().getName()) +
  -                                     ", " + 
node.getUserObject().getClass().getName());
  -             }
  -             NonGuiTreeNode newNode = new NonGuiTreeNode(component);
  -             node.insertNodeInto(newNode, node.getChildCount());
  -             newNode.setParent(node);
  -             return newNode;
  -     }
  -
  -     private void traverseNode(NonGuiTreeNode node)
  -     {
  -             if (log.isDebugEnabled())
  -             {
  -                     log.debug("traverseNode:" + 
node.getUserObject().getClass().getName());
  -             }
  -             Enumeration enum = node.children();
  -             while (enum.hasMoreElements())
  -             {
  -                     NonGuiTreeNode child = (NonGuiTreeNode)enum.nextElement();
  -                     traverseNode(child);
  -             }
  -             NonGuiTreeNode parent = (NonGuiTreeNode)node.getParent();
  -             if (node != null && parent != null)
  -             {
  -                     addChildToParent(node.getUserObject(), 
parent.getUserObject());
  -             }
  -     }
  -
  -     private void addChildToParent(Object child, Object parent)
  -     {
  -             if (log.isDebugEnabled())
  -             {
  -                     log.debug("addChildToParent:" + (child != null ? 
child.getClass().getName() : "null") + ", " +
  -                                     (parent != null ? parent.getClass().getName() 
: "null"));
  -             }
  -             if (parent instanceof ThreadGroup)
  -             {
  -                     if (child instanceof Timer)
  -                     {
  -                             ((ThreadGroup)parent).addTimer((Timer)child);
  -                     }
  -                     else if (child instanceof ConfigElement)
  -                     {
  -                             
((ThreadGroup)parent).addConfigElement((ConfigElement)child);
  -                     }
  -                     else if (child instanceof SamplerController)
  -                     {
  -                             
((ThreadGroup)parent).addSamplerController((SamplerController)child);
  -                     }
  -                     else if (child instanceof SampleListener)
  -                     {
  -                             
((ThreadGroup)parent).addListener((SampleListener)child);
  -                             // Open the file if this is a Filer.
  -                             if (child instanceof 
org.apache.jmeter.reporters.Filer)
  -                             {
  -                                     org.apache.jmeter.reporters.Filer filer = 
(org.apache.jmeter.reporters.Filer)child;
  -                                     log.debug("Opening the file:" + 
filer.getFile());
  -                                     filer.open();
  -                                     //filer.setAutoFlush(true);
  -
  -                             }
  -                     }
  -             }
  -             else if (parent instanceof SamplerController)
  -             {
  -                     if (child instanceof SamplerController)
  -                     {
  -                             
((SamplerController)parent).addSamplerController((SamplerController)child);
  -                     }
  -                     else if (child instanceof ConfigElement)
  -                     {
  -                             
((SamplerController)parent).addConfigElement((ConfigElement)child);
  -                     }
  -             }
  -             else if (parent instanceof TestPlan)
  -             {
  -                     if (child instanceof ThreadGroup)
  -                     {
  -                             ((TestPlan)parent).addThreadGroup((ThreadGroup)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 java.util.*;
  +
  +import org.apache.jmeter.util.*;
  +
  +import org.apache.jmeter.control.TestPlan;
  +
  +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.log4j.Category;
  +
  +import org.apache.jmeter.control.SamplerController;
  +
  +import org.apache.jmeter.control.WorkBench;
  +
  +
  +
  +/************************************************************
  +
  + *  Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
  +
  + *  This class simulates a tree and eliminates the need for the swing
  +
  + *  components. Most of the code in this class has been borrowed from
  +
  + *  JMeterTreeModel.
  +
  + *
  +
  + *@author     Tushar Bhatia
  +
  + *@created    June 18, 2001
  +
  + *@version    1.0
  +
  + *@see        org.apache.jmeter.NonGuiDriver
  +
  + ***********************************************************/
  +
  +
  +
  +public class NonGuiTree extends NonGuiTreeNode
  +
  +{
  +
  +     private Category log = Category.getInstance(NonGuiTree.class);
  +
  +
  +
  +     /************************************************************
  +
  +      *  !ToDo (Constructor description)
  +
  +      ***********************************************************/
  +
  +     public NonGuiTree()
  +
  +     {
  +
  +             super(null);
  +
  +
  +
  +             log.info("Adding Test Plan");
  +
  +             this.insertNodeInto(new NonGuiTreeNode(TestPlan.createTestPlan("Test 
Plan")), 0);
  +
  +
  +
  +             log.info("Adding WorkBench");
  +
  +             this.insertNodeInto(new NonGuiTreeNode(new WorkBench("WorkBench"), 
false), 1);
  +
  +     }
  +
  +
  +
  +     /************************************************************
  +
  +      *  !ToDoo (Method description)
  +
  +      *
  +
  +      *@return    !ToDo (Return description)
  +
  +      ***********************************************************/
  +
  +     public NonGuiTreeNode getRoot()
  +
  +     {
  +
  +             return this;
  +
  +     }
  +
  +
  +
  +     /************************************************************
  +
  +      *  !ToDo
  +
  +      *
  +
  +      *@param  subTree  !ToDo
  +
  +      *@param  current  !ToDo
  +
  +      ***********************************************************/
  +
  +     public void addSubTree(ListedHashTree subTree, NonGuiTreeNode current)
  +
  +     {
  +
  +             if (log.isDebugEnabled())
  +
  +             {
  +
  +                     log.debug("addSubTree:" + (current == null ? "null" : 
current.getUserObject().getClass().getName()));
  +
  +             }
  +
  +             Iterator iter = subTree.list().iterator();
  +
  +             while (iter.hasNext())
  +
  +             {
  +
  +                     JMeterComponentModel item = (JMeterComponentModel)iter.next();
  +
  +                     if (item instanceof TestPlan)
  +
  +                     {
  +
  +                             current = 
(NonGuiTreeNode)((NonGuiTreeNode)getRoot()).getChildAt(0);
  +
  +                             addSubTree(subTree.get(item), current);
  +
  +                     }
  +
  +                     else
  +
  +                     {
  +
  +                             addSubTree(subTree.get(item), addComponent(item, 
current));
  +
  +                     }
  +
  +             }
  +
  +     }
  +
  +
  +
  +     /************************************************************
  +
  +      *  Returns the JMeterComponentModel after compiling(adding all children to
  +
  +      *  different objects) after parsing the tree. To invoke this method use the
  +
  +      *  following code: <br>
  +
  +      *  <pre>
  +
  +      *NonGuiTree ngt = new NonGuiTree();
  +
  +      * pass the LinkedHashTree to this class to store all the components.
  +
  +      *ngt.addSubTree(linkedHashTree, null);
  +
  +      * now compile
  +
  +      *TestPlan tp = (TestPlan)ngt.compileComponent(ngt.getChildAt(0));
  +
  +      *Collection threads = tp.getThreadGroups();
  +
  +      *.
  +
  +      *.
  +
  +      * and work on the threads by passing them to the engine etc.
  +
  +      *</pre>
  +
  +      *
  +
  +      *@param  node  !ToDo (Parameter description)
  +
  +      *@return       !ToDo (Return description)
  +
  +      *@see          org.apache.NonGuiDriver
  +
  +      ***********************************************************/
  +
  +     public JMeterComponentModel compileComponent(NonGuiTreeNode node)
  +
  +     {
  +
  +             if (log.isDebugEnabled())
  +
  +             {
  +
  +                     log.debug("compileComponent:" + 
node.getUserObject().getClass().getName());
  +
  +             }
  +
  +             traverseNode(node);
  +
  +             return (JMeterComponentModel)node.getUserObject();
  +
  +     }
  +
  +
  +
  +     private NonGuiTreeNode addComponent(JMeterComponentModel component, 
NonGuiTreeNode node)
  +
  +     {
  +
  +             if (log.isDebugEnabled())
  +
  +             {
  +
  +                     log.debug("addComponent:" + (component == null ? "null" : 
component.getClass().getName()) +
  +
  +                                     ", " + 
node.getUserObject().getClass().getName());
  +
  +             }
  +
  +             NonGuiTreeNode newNode = new NonGuiTreeNode(component);
  +
  +             node.insertNodeInto(newNode, node.getChildCount());
  +
  +             newNode.setParent(node);
  +
  +             return newNode;
  +
  +     }
  +
  +
  +
  +     private void traverseNode(NonGuiTreeNode node)
  +
  +     {
  +
  +             if (log.isDebugEnabled())
  +
  +             {
  +
  +                     log.debug("traverseNode:" + 
node.getUserObject().getClass().getName());
  +
  +             }
  +
  +             Enumeration enum = node.children();
  +
  +             while (enum.hasMoreElements())
  +
  +             {
  +
  +                     NonGuiTreeNode child = (NonGuiTreeNode)enum.nextElement();
  +
  +                     traverseNode(child);
  +
  +             }
  +
  +             NonGuiTreeNode parent = (NonGuiTreeNode)node.getParent();
  +
  +             if (node != null && parent != null)
  +
  +             {
  +
  +                     addChildToParent(node.getUserObject(), parent.getUserObject());
  +
  +             }
  +
  +     }
  +
  +
  +
  +     private void addChildToParent(Object child, Object parent)
  +
  +     {
  +
  +             if (log.isDebugEnabled())
  +
  +             {
  +
  +                     log.debug("addChildToParent:" + (child != null ? 
child.getClass().getName() : "null") + ", " +
  +
  +                                     (parent != null ? parent.getClass().getName() 
: "null"));
  +
  +             }
  +
  +             if (parent instanceof ThreadGroup)
  +
  +             {
  +
  +                     if (child instanceof Timer)
  +
  +                     {
  +
  +                             ((ThreadGroup)parent).addTimer((Timer)child);
  +
  +                     }
  +
  +                     else if (child instanceof ConfigElement)
  +
  +                     {
  +
  +                             
((ThreadGroup)parent).addConfigElement((ConfigElement)child);
  +
  +                     }
  +
  +                     else if (child instanceof SamplerController)
  +
  +                     {
  +
  +                             
((ThreadGroup)parent).addSamplerController((SamplerController)child);
  +
  +                     }
  +
  +                     else if (child instanceof SampleListener)
  +
  +                     {
  +
  +                             
((ThreadGroup)parent).addListener((SampleListener)child);
  +
  +                             // Open the file if this is a Filer.
  +
  +                             if (child instanceof org.apache.jmeter.reporters.Filer)
  +
  +                             {
  +
  +                                     org.apache.jmeter.reporters.Filer filer = 
(org.apache.jmeter.reporters.Filer)child;
  +
  +                                     log.debug("Opening the file:" + 
filer.getFile());
  +
  +                                     filer.open();
  +
  +                                     //filer.setAutoFlush(true);
  +
  +
  +
  +                             }
  +
  +                     }
  +
  +             }
  +
  +             else if (parent instanceof SamplerController)
  +
  +             {
  +
  +                     if (child instanceof SamplerController)
  +
  +                     {
  +
  +                             
((SamplerController)parent).addSamplerController((SamplerController)child);
  +
  +                     }
  +
  +                     else if (child instanceof ConfigElement)
  +
  +                     {
  +
  +                             
((SamplerController)parent).addConfigElement((ConfigElement)child);
  +
  +                     }
  +
  +             }
  +
  +             else if (parent instanceof TestPlan)
  +
  +             {
  +
  +                     if (child instanceof ThreadGroup)
  +
  +                     {
  +
  +                             ((TestPlan)parent).addThreadGroup((ThreadGroup)child);
  +
  +                     }
  +
  +             }
  +
  +     }
  +
  +
  +
  +}
  +
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to