jsalvata    2002/12/31 10:05:54

  Modified:    .        .cvsignore
               bin      jmeter.properties
               lib      .cvsignore
               src/core/org/apache/jmeter JMeter.java
               src/core/org/apache/jmeter/control/gui WorkBenchGui.java
               src/core/org/apache/jmeter/gui
                        AbstractJMeterGuiComponent.java
                        JMeterGUIComponent.java MainFrame.java
                        NamePanel.java
               src/core/org/apache/jmeter/gui/action AddParent.java
                        AddToTree.java
               src/core/org/apache/jmeter/gui/tree JMeterCellRenderer.java
                        JMeterTreeModel.java JMeterTreeNode.java
               src/core/org/apache/jmeter/threads/gui ThreadGroupGui.java
               src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui
                        ProxyControlGui.java
  Added:       bin      .cvsignore
               src/core/org/apache/jmeter/gui GUIFactory.java
               src/core/org/apache/jmeter/plugin JMeterPlugin.java
                        PluginManager.java
  Removed:     src/core/org/apache/jmeter/gui GuiFactory.java
  Log:
  Show icons in testplan tree.
  
  Revision  Changes    Path
  1.5       +3 -1      jakarta-jmeter/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/.cvsignore,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- .cvsignore        29 Dec 2002 16:59:41 -0000      1.4
  +++ .cvsignore        31 Dec 2002 18:05:53 -0000      1.5
  @@ -1,2 +1,4 @@
   velocity.log
  -bin/classes
  +build
  +jmeter.log
  +docs
  
  
  
  1.51      +8 -8      jakarta-jmeter/bin/jmeter.properties
  
  Index: jmeter.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/bin/jmeter.properties,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- jmeter.properties 30 Dec 2002 05:08:28 -0000      1.50
  +++ jmeter.properties 31 Dec 2002 18:05:53 -0000      1.51
  @@ -51,14 +51,14 @@
   # �Windows = com.sun.java.swing.plaf.windows.WindowsLookAndFeel
   jmeter.laf=javax.swing.plaf.metal.MetalLookAndFeel
   
  -#icons
  -timer.tree.icon=timer.gif
  -listener.tree.icon=ear.gif
  -bench.tree.icon=clipboard.gif
  -thread.tree.icon=thread.gif
  -control.tree.icon=knob.gif
  -plan.tree.icon=beaker.gif
  -config.tree.icon=leafnode.gif
  +#icons -> moved to program code
  +#timer.tree.icon=timer.gif
  +#listener.tree.icon=ear.gif
  +#bench.tree.icon=clipboard.gif
  +#thread.tree.icon=thread.gif
  +#control.tree.icon=knob.gif
  +#plan.tree.icon=beaker.gif
  +#config.tree.icon=leafnode.gif
   
   # Remote Hosts - comma delimited
   remote_hosts=127.0.0.1
  
  
  
  1.1                  jakarta-jmeter/bin/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  ApacheJMeter.jar
  HTTPSamplerFullTestFile.txt
  jmeter.log
  testresults.txt
  
  
  
  1.3       +8 -1      jakarta-jmeter/lib/.cvsignore
  
  Index: .cvsignore
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/lib/.cvsignore,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- .cvsignore        29 Dec 2002 18:05:19 -0000      1.2
  +++ .cvsignore        31 Dec 2002 18:05:53 -0000      1.3
  @@ -1,3 +1,10 @@
   ext
  -ext/*
   jorphan.jar
  +activation.jar
  +iaik_jce.jar
  +imap.jar
  +mail.jar
  +mailapi.jar
  +pop3.jar
  +smtp.jar
  +w3c_http.jar
  
  
  
  1.7       +46 -4     jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java
  
  Index: JMeter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/JMeter.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JMeter.java       17 Oct 2002 19:47:15 -0000      1.6
  +++ JMeter.java       31 Dec 2002 18:05:53 -0000      1.7
  @@ -77,6 +77,18 @@
   import org.apache.jmeter.save.SaveService;
   import org.apache.jmeter.testelement.TestListener;
   import org.apache.jmeter.util.JMeterUtils;
  +import org.apache.jmeter.plugin.JMeterPlugin;
  +import org.apache.jmeter.plugin.PluginManager;
  +import org.apache.jmeter.control.gui.TestPlanGui;
  +import org.apache.jmeter.control.gui.AbstractControllerGui;
  +import org.apache.jmeter.control.gui.WorkBenchGui;
  +import org.apache.jmeter.threads.gui.ThreadGroupGui;
  +import org.apache.jmeter.timers.gui.AbstractTimerGui;
  +import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
  +import org.apache.jmeter.config.gui.AbstractModifierGui;
  +import org.apache.jmeter.config.gui.AbstractConfigGui;
  +import org.apache.jmeter.config.gui.AbstractResponseBasedModifierGui;
  +import org.apache.jmeter.samplers.gui.AbstractSamplerGui;
   import org.apache.log.Hierarchy;
   import org.apache.log.Logger;
   import org.apache.jorphan.collections.HashTree;
  @@ -88,7 +100,7 @@
    * To change this generated comment edit the template variable "typecomment":
    * Window>Preferences>Java>Templates.
    */
  -public class JMeter {
  +public class JMeter implements JMeterPlugin {
        transient private static Logger log = 
Hierarchy.getDefaultHierarchy().getLoggerFor(
                        "jmeter");
   
  @@ -178,8 +190,9 @@
        /**
         * Starts up JMeter in GUI mode
         */
  -     public void startGui(CLOption testFile) throws IllegalUserActionException {
  +     public void startGui(CLOption testFile) throws IllegalUserActionException, 
IllegalAccessException, ClassNotFoundException, InstantiationException {
   
  +        PluginManager.install(this);
                JMeterTreeModel treeModel = new JMeterTreeModel();
                JMeterTreeListener treeLis = new JMeterTreeListener(treeModel);
                treeLis.setActionHandler(ActionRouter.getInstance());
  @@ -244,7 +257,11 @@
                        System.out.println(e.getMessage());
                        System.out.println("Incorrect Usage");
                        System.out.println(CLUtil.describeOptions(options).toString());
  -             }
  +             } catch (Exception e) {
  +            e.printStackTrace();
  +            System.out.println("An error occurred: " + e.getMessage());
  +            System.exit(-1);
  +        }
        }
   
        /**
  @@ -310,8 +327,10 @@
        }
   
        public void startNonGui(CLOption testFile, CLOption logFile)
  -             throws IllegalUserActionException {
  +             throws IllegalUserActionException, IllegalAccessException, 
ClassNotFoundException, InstantiationException {
                JMeter driver = new JMeter();
  +        PluginManager.install(this);
  +
                if (testFile == null) {
                        throw new IllegalUserActionException();
                }
  @@ -397,4 +416,27 @@
        private static void println(String str) {
                System.out.println(str);
        }
  +
  +
  +    public String[][] getIconMappings()
  +    {
  +        return new String[][] {
  +            { TestPlanGui.class.getName(), "org/apache/jmeter/images/beaker.gif"},
  +            { AbstractTimerGui.class.getName(), 
"org/apache/jmeter/images/timer.gif"},
  +            { ThreadGroupGui.class.getName(), 
"org/apache/jmeter/images/thread.gif"},
  +            { AbstractVisualizer.class.getName(), 
"org/apache/jmeter/images/meter.png"},
  +            { AbstractConfigGui.class.getName(), 
"org/apache/jmeter/images/testtubes.png"},
  +            { AbstractModifierGui.class.getName(), 
"org/apache/jmeter/images/testtubes.gif"},
  +            { AbstractResponseBasedModifierGui.class.getName(), 
"org/apache/jmeter/images/testtubes.gif"},
  +            { AbstractControllerGui.class.getName(), 
"org/apache/jmeter/images/knob.gif"},
  +            { WorkBenchGui.class.getName(), 
"org/apache/jmeter/images/clipboard.gif"},
  +            { AbstractSamplerGui.class.getName(), 
"org/apache/jmeter/images/pipet.png"}
  +        };
  +    }
  +
  +
  +    public String[][] getResourceBundles()
  +    {
  +        return new String[0][];
  +    }
   }
  
  
  
  1.4       +14 -4     
jakarta-jmeter/src/core/org/apache/jmeter/control/gui/WorkBenchGui.java
  
  Index: WorkBenchGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/control/gui/WorkBenchGui.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WorkBenchGui.java 17 Oct 2002 19:47:15 -0000      1.3
  +++ WorkBenchGui.java 31 Dec 2002 18:05:54 -0000      1.4
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -65,6 +65,7 @@
   
   import org.apache.jmeter.gui.JMeterGUIComponent;
   import org.apache.jmeter.gui.NamePanel;
  +import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.gui.util.MenuFactory;
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.testelement.WorkBench;
  @@ -81,9 +82,11 @@
   
   public class WorkBenchGui extends JPanel implements JMeterGUIComponent
   {
  -     NamePanel namePanel;
  +    NamePanel namePanel;
  +    private JMeterTreeNode node;
   
  -     /****************************************
  +
  +        /****************************************
         * !ToDo (Constructor description)
         ***************************************/
        public WorkBenchGui()
  @@ -199,4 +202,11 @@
   
                this.add(mainPanel);
        }
  +
  +
  +    public void setNode(JMeterTreeNode node)
  +    {
  +        this.node = node;
  +        namePanel.setNode(node);
  +    }
   }
  
  
  
  1.3       +76 -7     
jakarta-jmeter/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java
  
  Index: AbstractJMeterGuiComponent.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/AbstractJMeterGuiComponent.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractJMeterGuiComponent.java   19 Aug 2002 22:33:13 -0000      1.2
  +++ AbstractJMeterGuiComponent.java   31 Dec 2002 18:05:54 -0000      1.3
  @@ -1,3 +1,58 @@
  +/*
  + * ====================================================================
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2002 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;
   
   import java.util.Collection;
  @@ -5,6 +60,7 @@
   import javax.swing.JPanel;
   import javax.swing.JPopupMenu;
   import org.apache.jmeter.testelement.TestElement;
  +import org.apache.jmeter.gui.tree.JMeterTreeNode;
   
   /**
    * @author mstover
  @@ -15,10 +71,12 @@
   public abstract class AbstractJMeterGuiComponent
        extends JPanel
        implements JMeterGUIComponent {
  -             
  -             private boolean enabled = true;
   
  -     public AbstractJMeterGuiComponent() {
  +    private boolean enabled = true;
  +    private JMeterTreeNode node;
  +
  +
  +        public AbstractJMeterGuiComponent() {
                namePanel = new NamePanel();
                setName(getStaticLabel());
        }
  @@ -29,12 +87,12 @@
        public void setName(String name) {
                namePanel.setName(name);
        }
  -     
  +
        public boolean isEnabled()
        {
                return enabled;
        }
  -     
  +
        public void setEnabled(boolean e)
        {
                enabled = e;
  @@ -52,7 +110,7 @@
        }
   
        protected NamePanel namePanel;
  -     
  +
        /****************************************
         * !ToDo (Method description)
         *
  @@ -71,4 +129,15 @@
        }
   
   
  -}
  \ No newline at end of file
  +    public void setNode(JMeterTreeNode node)
  +    {
  +        this.node = node;
  +        getNamePanel().setNode(node);
  +    }
  +
  +
  +    protected JMeterTreeNode getNode()
  +    {
  +        return node;
  +    }
  +}
  
  
  
  1.3       +62 -3     
jakarta-jmeter/src/core/org/apache/jmeter/gui/JMeterGUIComponent.java
  
  Index: JMeterGUIComponent.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/JMeterGUIComponent.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JMeterGUIComponent.java   19 Aug 2002 22:33:13 -0000      1.2
  +++ JMeterGUIComponent.java   31 Dec 2002 18:05:54 -0000      1.3
  @@ -1,7 +1,63 @@
  +/*
  + * ====================================================================
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2002 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;
   import java.util.Collection;
   import javax.swing.JPopupMenu;
   import org.apache.jmeter.testelement.TestElement;
  +import org.apache.jmeter.gui.tree.JMeterTreeNode;
   /****************************************
    * <p>
    *
  @@ -48,13 +104,13 @@
         *@return   !ToDo (Return description)
         ***************************************/
        public TestElement createTestElement();
  -     
  +
        /**
         * Test GUI elements can be turned disabled, in which case
         * they do not become part of the test when run.
         */
        public boolean isEnabled();
  -     
  +
        public void setEnabled(boolean enabled);
   
        /****************************************
  @@ -79,4 +135,7 @@
         *@return   !ToDo (Return description)
         ***************************************/
        public Collection getMenuCategories();
  +
  +
  +    public void setNode(JMeterTreeNode node);
   }
  
  
  
  1.7       +10 -8     jakarta-jmeter/src/core/org/apache/jmeter/gui/MainFrame.java
  
  Index: MainFrame.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/MainFrame.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- MainFrame.java    17 Oct 2002 19:47:16 -0000      1.6
  +++ MainFrame.java    31 Dec 2002 18:05:54 -0000      1.7
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -145,11 +145,11 @@
                init();
                this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
        }
  -     
  +
        public MainFrame()
        {
        }
  -     
  +
   
        /****************************************
         * !ToDo (Method description)
  @@ -160,7 +160,7 @@
        {
                menuBar.setFileSaveEnabled(enabled);
        }
  -     
  +
        public void showStoppingMessage(String host)
        {
                stoppingMessage = new JDialog(this,
  @@ -328,7 +328,7 @@
                hosts.remove(host);
                if(hosts.size() == 0)
                {
  -                     runningIndicator.setIcon(stoppedIcon);                  
  +                     runningIndicator.setIcon(stoppedIcon);
                }
                menuBar.setRunning(false,host);
                if(stoppingMessage != null)
  @@ -425,6 +425,8 @@
        {
                tree = new JTree(this.treeModel);
                tree.setCellRenderer(getCellRenderer());
  +             tree.setRootVisible(false);
  +             tree.setShowsRootHandles(true);
                treeListener.setJTree(tree);
                tree.addTreeSelectionListener(treeListener);
                tree.addMouseListener(treeListener);
  
  
  
  1.2       +59 -12    jakarta-jmeter/src/core/org/apache/jmeter/gui/NamePanel.java
  
  Index: NamePanel.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/NamePanel.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NamePanel.java    11 Aug 2002 19:24:43 -0000      1.1
  +++ NamePanel.java    31 Dec 2002 18:05:54 -0000      1.2
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -60,9 +60,14 @@
   import javax.swing.JPanel;
   import javax.swing.JPopupMenu;
   import javax.swing.JTextField;
  +import javax.swing.event.DocumentListener;
  +import javax.swing.event.DocumentEvent;
  +
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.testelement.WorkBench;
   import org.apache.jmeter.util.JMeterUtils;
  +import org.apache.jmeter.util.LocaleChangeEvent;
  +import org.apache.jmeter.gui.tree.JMeterTreeNode;
   /****************************************
    * Title: JMeter Description: Copyright: Copyright (c) 2000 Company: Apache
    *
  @@ -73,11 +78,12 @@
   
   public class NamePanel extends JPanel implements JMeterGUIComponent
   {
  -     private JTextField nameField = new JTextField(30);
  -
  +    private JTextField nameField = new JTextField(30);
  +    private JLabel nameLabel;
  +    private JMeterTreeNode node;
   
   
  -     /****************************************
  +        /****************************************
         * !ToDo (Constructor description)
         ***************************************/
        public NamePanel()
  @@ -161,11 +167,52 @@
                return nameField.getText();
        }
   
  -     private void init()
  -     {
  -             this.setLayout(new FlowLayout(FlowLayout.LEFT));
  -             this.add(new JLabel(JMeterUtils.getResString("name")));
  -             this.add(nameField);
  -     }
  -
  +    private void init() {
  +        this.setLayout(new FlowLayout(FlowLayout.LEFT));
  +        nameLabel = new JLabel(JMeterUtils.getResString("name"));
  +        nameLabel.setName("name");
  +
  +        this.add(nameLabel);
  +        this.add(nameField);
  +        nameLabel.setLabelFor(nameField);
  +        nameField.setName("name");
  +        nameField.getDocument().addDocumentListener(new DocumentListener() {
  +            public void insertUpdate(DocumentEvent e) {
  +                updateName(nameField.getText());
  +            }
  +
  +
  +            public void removeUpdate(DocumentEvent e) {
  +                updateName(nameField.getText());
  +            }
  +
  +
  +            public void changedUpdate(DocumentEvent e) {
  +                // not for text fields
  +            }
  +        });
  +    }
  +
  +
  +    private void updateName(String newValue) {
  +        if (getNode() != null) {
  +            getNode().nameChanged();
  +        }
  +    }
  +
  +
  +    public void localeChanged(LocaleChangeEvent event) {
  +        nameLabel.setText(JMeterUtils.getResString(nameLabel.getName()));
  +    }
  +
  +    public void setNode(JMeterTreeNode node)
  +    {
  +        this.node = node;
  +    }
  +
  +
  +    protected JMeterTreeNode getNode()
  +    {
  +        return node;
  +    }
   }
  
  
  
  1.1                  jakarta-jmeter/src/core/org/apache/jmeter/gui/GUIFactory.java
  
  Index: GUIFactory.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 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;
  
  import java.util.*;
  
  import javax.swing.*;
  
  
  /**
   * @author Oliver Rossmueller
   */
  public class GUIFactory {
  
      private static final Map guiMap = new HashMap();
      private static final Map iconMap = new HashMap();
  
  
      public static ImageIcon getIcon(Class elementClass)
      {
          String key = elementClass.getName();
          ImageIcon icon = (ImageIcon)iconMap.get(key);
  
          if (icon != null)
        {
              return icon;
          }
          if (elementClass.getSuperclass() != null)
        {
              return getIcon(elementClass.getSuperclass());
          }
          return null;
      }
  
  
      public static JComponent getGUI(Class elementClass)
      {
          String key = elementClass.getName();
          JComponent gui = (JComponent)guiMap.get(key);
  
          if (gui != null)
        {
              return gui;
          }
          if (elementClass.getSuperclass() != null)
        {
              return getGUI(elementClass.getSuperclass());
          }
          return null;
      }
  
  
      public static void registerIcon(String key, ImageIcon icon)
      {
          iconMap.put(key, icon);
      }
  
  
      public static void registerGUI(String key, Class guiClass)
              throws InstantiationException, IllegalAccessException
      {
          JMeterGUIComponent gui = (JMeterGUIComponent)guiClass.newInstance();
          JComponent component = (JComponent)gui;
          guiMap.put(key, gui);
      }
  }
  
  
  
  1.4       +57 -2     
jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddParent.java
  
  Index: AddParent.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddParent.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AddParent.java    29 Aug 2002 18:17:38 -0000      1.3
  +++ AddParent.java    31 Dec 2002 18:05:54 -0000      1.4
  @@ -1,3 +1,58 @@
  +/*
  + * ====================================================================
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2002 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.action;
   import java.awt.Component;
   import java.awt.event.ActionEvent;
  @@ -71,7 +126,7 @@
        protected void addParentToTree(JMeterGUIComponent newParent)
        {
                GuiPackage guiPackage = GuiPackage.getInstance();
  -             JMeterTreeNode newNode = new JMeterTreeNode(newParent);
  +             JMeterTreeNode newNode = new JMeterTreeNode(newParent, 
guiPackage.getTreeModel());
                JMeterTreeNode currentNode = 
guiPackage.getTreeListener().getCurrentNode();
                JMeterTreeNode parentNode = (JMeterTreeNode)currentNode.getParent();
                int index = parentNode.getIndex(currentNode);
  
  
  
  1.5       +6 -6      
jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddToTree.java
  
  Index: AddToTree.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/action/AddToTree.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AddToTree.java    29 Aug 2002 18:17:38 -0000      1.4
  +++ AddToTree.java    31 Dec 2002 18:05:54 -0000      1.5
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -87,7 +87,7 @@
                allJMeterComponentCommands = new HashMap();
                allJMeterComponentCommands.put("Add","Add");
                List classes;
  -             
  +
        }
   
   
  @@ -109,7 +109,7 @@
         *@param  guiPackage  Description of Parameter
         */
        public void doAction(ActionEvent e)
  -     {               
  +     {
                try
                {
                        JMeterGUIComponent gui = (JMeterGUIComponent) 
Class.forName(((JComponent)e.getSource()).getName()).newInstance();
  @@ -124,7 +124,7 @@
        protected void addObjectToTree(JMeterGUIComponent guiObject)
        {
                GuiPackage guiPackage = GuiPackage.getInstance();
  -             JMeterTreeNode node = new JMeterTreeNode(guiObject);
  +             JMeterTreeNode node = new JMeterTreeNode(guiObject, 
guiPackage.getTreeModel());
                guiPackage.getTreeModel().insertNodeInto(node,
                                guiPackage.getTreeListener().getCurrentNode(),
                                
guiPackage.getTreeListener().getCurrentNode().getChildCount());
  
  
  
  1.3       +25 -28    
jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterCellRenderer.java
  
  Index: JMeterCellRenderer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterCellRenderer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JMeterCellRenderer.java   19 Aug 2002 22:33:13 -0000      1.2
  +++ JMeterCellRenderer.java   31 Dec 2002 18:05:54 -0000      1.3
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -52,14 +52,13 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    */
  - package org.apache.jmeter.gui.tree;
  +package org.apache.jmeter.gui.tree;
  +
   
   import javax.swing.tree.*;
   import javax.swing.*;
  +
   import java.awt.Component;
  -import org.apache.jmeter.gui.JMeterGUIComponent;
  -import org.apache.jmeter.gui.GuiFactory;
  -import org.apache.jmeter.gui.GuiPackage;
   
   /**
    * Title:        JMeter
  @@ -73,28 +72,26 @@
   public class JMeterCellRenderer extends DefaultTreeCellRenderer
   {
   
  -      ImageIcon timer;
  -
  -     public JMeterCellRenderer()
  -     {
  -              timer = org.apache.jmeter.util.JMeterUtils.getImage("timer.gif");
  -     }
  -
  -     public Component getTreeCellRendererComponent(JTree tree,
  -                                                                                    
                                  Object value,
  -                                                                                    
                                  boolean sel,
  -                                                                                    
                                  boolean expanded,
  -                                                                                    
                                  boolean leaf,
  -                                                                                    
                                  int row,
  -                                                                                    
                                  boolean hasFocus)
  -     {
  -             
super.getTreeCellRendererComponent(tree,((JMeterGUIComponent)value).getName(),
  -                             sel,expanded,leaf,row,hasFocus);
  -             this.setEnabled(((JMeterGUIComponent)value).isEnabled());
  -             ImageIcon ic = ((JMeterTreeNode)value).getIcon();
  -             if (ic!=null)
  -                      setIcon(ic);
  -             return this;
  -     }
  +    public JMeterCellRenderer()
  +    {
  +    }
  +
  +
  +    public Component getTreeCellRendererComponent(JTree tree,
  +                                                  Object value,
  +                                                  boolean sel,
  +                                                  boolean expanded,
  +                                                  boolean leaf,
  +                                                  int row,
  +                                                  boolean hasFocus)
  +    {
  +        super.getTreeCellRendererComponent(tree, ((JMeterTreeNode)value).getName(), 
sel, expanded, leaf, row, hasFocus);
  +        this.setEnabled(((JMeterTreeNode)value).isEnabled());
  +        ImageIcon ic = ((JMeterTreeNode)value).getIcon();
  +        if (ic != null) {
  +            setIcon(ic);
  +        }
  +        return this;
  +    }
   }
   
  
  
  
  1.7       +11 -11    
jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java
  
  Index: JMeterTreeModel.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeModel.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JMeterTreeModel.java      17 Oct 2002 19:47:16 -0000      1.6
  +++ JMeterTreeModel.java      31 Dec 2002 18:05:54 -0000      1.7
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -80,16 +80,16 @@
   
   public class JMeterTreeModel extends DefaultTreeModel
   {
  -     
  +
        /****************************************
         * !ToDo (Constructor description)
         ***************************************/
        public JMeterTreeModel()
        {
  -             super(new JMeterTreeNode(new NamePanel()));
  -             this.insertNodeInto(new JMeterTreeNode(new TestPlanGui()),
  +             super(new JMeterTreeNode(new NamePanel(), null));
  +             this.insertNodeInto(new JMeterTreeNode(new TestPlanGui(), this),
                                (JMeterTreeNode)getRoot(), 0);
  -             this.insertNodeInto(new JMeterTreeNode(new WorkBenchGui()),
  +             this.insertNodeInto(new JMeterTreeNode(new WorkBenchGui(), this),
                                (JMeterTreeNode)getRoot(), 1);
        }
   
  @@ -107,7 +107,7 @@
        }
   
        /****************************************
  -      * Adds the sub tree at the given node.  Returns a boolean indicating 
  +      * Adds the sub tree at the given node.  Returns a boolean indicating
         * whether the added sub tree was a full test plan.
         *
         *@param subTree                         !ToDo
  @@ -152,7 +152,7 @@
                {
                        throw new IllegalUserActionException("This node cannot hold 
sub-elements");
                }
  -             JMeterTreeNode newNode = new 
JMeterTreeNode((JMeterGUIComponent)component);
  +             JMeterTreeNode newNode = new 
JMeterTreeNode((JMeterGUIComponent)component, this);
                this.insertNodeInto(newNode, node, node.getChildCount());
                return newNode;
        }
  @@ -201,14 +201,14 @@
        {
                return 
getCurrentSubTree((JMeterTreeNode)((JMeterTreeNode)this.getRoot()).getChildAt(0));
        }
  -     
  +
        public void clearTestPlan()
        {
                super.removeNodeFromParent((JMeterTreeNode)getChild(getRoot(), 0));
  -             this.insertNodeInto(new JMeterTreeNode(new TestPlanGui()),
  +             this.insertNodeInto(new JMeterTreeNode(new TestPlanGui(), this),
                                (JMeterTreeNode)getRoot(), 0);
                super.removeNodeFromParent((JMeterTreeNode)getChild(getRoot(), 1));
  -             this.insertNodeInto(new JMeterTreeNode(new WorkBenchGui()),
  +             this.insertNodeInto(new JMeterTreeNode(new WorkBenchGui(), this),
                                (JMeterTreeNode)getRoot(), 1);
        }
   }
  
  
  
  1.3       +26 -15    
jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java
  
  Index: JMeterTreeNode.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/tree/JMeterTreeNode.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JMeterTreeNode.java       19 Aug 2002 22:33:13 -0000      1.2
  +++ JMeterTreeNode.java       31 Dec 2002 18:05:54 -0000      1.3
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -59,6 +59,8 @@
   import javax.swing.JPopupMenu;
   import java.util.Collection;
   import org.apache.jmeter.gui.JMeterGUIComponent;
  +import org.apache.jmeter.gui.GUIFactory;
  +
   import java.awt.event.MouseListener;
   import java.awt.event.MouseEvent;
   import org.apache.jmeter.testelement.TestElement;
  @@ -74,30 +76,29 @@
   
   public class JMeterTreeNode extends DefaultMutableTreeNode implements 
JMeterGUIComponent
   {
  +    JMeterTreeModel treeModel;
   
  -     public JMeterTreeNode()
  -     {
  -             this.setUserObject(new org.apache.jmeter.control.gui.WorkBenchGui());
  -     }
   
  -     public JMeterTreeNode(JMeterGUIComponent userObj)
  +     public JMeterTreeNode(JMeterGUIComponent userObj, JMeterTreeModel treeModel)
        {
                super(userObj);
  +             this.treeModel = treeModel;
  +             userObj.setNode(this);
        }
  -     
  +
        public boolean isEnabled()
        {
                return ((JMeterGUIComponent)getUserObject()).isEnabled();
        }
  -     
  +
        public void setEnabled(boolean enabled)
        {
                ((JMeterGUIComponent)getUserObject()).setEnabled(enabled);
        }
  -     
  +
        public ImageIcon getIcon()
        {
  -             return null;
  +             return GUIFactory.getIcon(getUserObject().getClass());
        }
   
        public Collection getMenuCategories()
  @@ -132,8 +133,7 @@
         ***********************************************************/
        public void setName(String name)
        {
  -             Object userObj = getUserObject();
  -             ((JMeterGUIComponent)userObj).setName(name);
  +             ((JMeterGUIComponent)getUserObject()).setName(name);
        }
   
        /************************************************************
  @@ -143,7 +143,18 @@
         ***********************************************************/
        public String getName()
        {
  -             Object userObj = getUserObject();
  -             return ((JMeterGUIComponent)userObj).getName();
  +             return ((JMeterGUIComponent)getUserObject()).getName();
        }
  +
  +
  +    public void setNode(JMeterTreeNode node)
  +    {
  +        ((JMeterGUIComponent)getUserObject()).setNode(node);
  +    }
  +
  +
  +    public void nameChanged()
  +    {
  +        treeModel.nodeChanged(this);
  +    }
   }
  
  
  
  1.1                  
jakarta-jmeter/src/core/org/apache/jmeter/plugin/JMeterPlugin.java
  
  Index: JMeterPlugin.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 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.plugin;
  
  /**
   * @author Oliver Rossmueller
   */
  public interface JMeterPlugin {
  
      public String[][] getIconMappings();
  
      public String[][] getResourceBundles();
  }
  
  
  
  1.1                  
jakarta-jmeter/src/core/org/apache/jmeter/plugin/PluginManager.java
  
  Index: PluginManager.java
  ===================================================================
  /*
   * ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 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.plugin;
  
  
  import java.net.URL;
  
  import javax.swing.*;
  
  import org.apache.jmeter.gui.GUIFactory;
  import org.apache.jmeter.util.JMeterUtils;
  
  
  /**
   * @author Oliver Rossmueller
   */
  public class PluginManager
  {
  
      private static final PluginManager instance = new PluginManager();
  
  
      private PluginManager()
      {
      }
  
  
      public static void install(JMeterPlugin plugin)
              throws ClassNotFoundException, InstantiationException,
                   IllegalAccessException
      {
          instance.installPlugin(plugin);
      }
  
  
      private void installPlugin(JMeterPlugin plugin)
              throws ClassNotFoundException, InstantiationException,
                   IllegalAccessException
      {
          String[][] icons = plugin.getIconMappings();
          ClassLoader classloader = plugin.getClass().getClassLoader();
  
          for (int i = 0; i < icons.length; i++)
        {
              URL resource = classloader.getResource(icons[i][1].trim());
  
              if (resource == null)
            {
                  // todo: log or throw exception
              }
            else
            {
                  GUIFactory.registerIcon(icons[i][0], new ImageIcon(resource));
              }
          }
      }
  }
  
  
  
  1.4       +10 -3     
jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java
  
  Index: ThreadGroupGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/threads/gui/ThreadGroupGui.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ThreadGroupGui.java       17 Oct 2002 19:47:17 -0000      1.3
  +++ ThreadGroupGui.java       31 Dec 2002 18:05:54 -0000      1.4
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -69,6 +69,7 @@
   import org.apache.jmeter.control.gui.LoopControlPanel;
   import org.apache.jmeter.gui.JMeterGUIComponent;
   import org.apache.jmeter.gui.NamePanel;
  +import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.gui.util.FocusRequester;
   import org.apache.jmeter.gui.util.MenuFactory;
   import org.apache.jmeter.gui.util.NumberFieldErrorListener;
  @@ -193,7 +194,7 @@
                loopPanel = new LoopControlPanel(false);
                LoopController looper= (LoopController)loopPanel.createTestElement();
                looper.setLoops(-1);
  -             loopPanel.configure(looper);            
  +             loopPanel.configure(looper);
                return loopPanel;
        }
   
  @@ -265,4 +266,10 @@
   
                this.add(mainPanel);
        }
  +
  +
  +    public void setNode(JMeterTreeNode node)
  +    {
  +        namePanel.setNode(node);
  +    }
   }
  
  
  
  1.4       +17 -10    
jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
  
  Index: ProxyControlGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ProxyControlGui.java      28 Aug 2002 15:53:00 -0000      1.3
  +++ ProxyControlGui.java      31 Dec 2002 18:05:54 -0000      1.4
  @@ -2,7 +2,7 @@
    * ====================================================================
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2002 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -87,6 +87,7 @@
   import org.apache.jmeter.gui.GuiPackage;
   import org.apache.jmeter.gui.JMeterGUIComponent;
   import org.apache.jmeter.gui.NamePanel;
  +import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.gui.util.MenuFactory;
   import org.apache.jmeter.gui.util.PowerTableModel;
   import org.apache.jmeter.protocol.http.proxy.ProxyControl;
  @@ -126,7 +127,7 @@
        private final static String ADD_EXCLUDE = "add_exclude";
        private final static String DELETE_INCLUDE = "delete_include";
        private final static String DELETE_EXCLUDE = "delete_exclude";
  -     
  +
        private final static String INCLUDE_COL = 
JMeterUtils.getResString("patterns_to_include");
        private final static String EXCLUDE_COL = 
JMeterUtils.getResString("patterns_to_exclude");
   
  @@ -161,7 +162,7 @@
                List includeList = getDataList(includeModel,INCLUDE_COL);
                element.setIncludeList(includeList);
        }
  -     
  +
        private void setExcludeListInProxyControl(ProxyControl element)
        {
                List excludeList = getDataList(excludeModel,EXCLUDE_COL);
  @@ -177,8 +178,8 @@
                }
                return list;
        }
  -     
  -     
  +
  +
   
        public void setName(String name)
        {
  @@ -216,7 +217,7 @@
                        model.addRow(new Object[]{iter.next()});
                }
        }
  -     
  +
        public void focusLost(FocusEvent e)
        {
                try
  @@ -227,7 +228,7 @@
                {
                }
        }
  -     
  +
        public void focusGained(FocusEvent e)
        {
        }
  @@ -303,7 +304,7 @@
                                        
"invalid_variables"),"Error",JOptionPane.ERROR_MESSAGE);
                }
        }
  -     
  +
        private void enableRestart()
        {
                if(model != null)
  @@ -421,7 +422,7 @@
                stop = new JButton(JMeterUtils.getResString("stop"));
                stop.addActionListener(this);
                stop.setActionCommand(STOP);
  -             
  +
                restart = new JButton(JMeterUtils.getResString("restart"));
                restart.addActionListener(this);
                restart.setActionCommand(RESTART);
  @@ -502,4 +503,10 @@
                excludeTable.addFocusListener(this);
                return panel;
        }
  +
  +
  +    public void setNode(JMeterTreeNode node)
  +    {
  +        namePanel.setNode(node);
  +    }
   }
  
  
  

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

Reply via email to