jsalvata    2004/01/18 17:58:56

  Modified:    src/components/org/apache/jmeter/control/gui
                        ModuleControllerGui.java
               src/core/org/apache/jmeter/gui GuiPackage.java
               src/protocol/http/org/apache/jmeter/protocol/http/proxy/gui
                        ProxyControlGui.java
  Log:
  Have the component's GUIs change (be rebuilt) when user
  switches locale.
  
  Incidentally, this fixes an anoying (but harmless) NPE.
  
  PR: 25143
  
  Revision  Changes    Path
  1.12      +12 -7     
jakarta-jmeter/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java
  
  Index: ModuleControllerGui.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ModuleControllerGui.java  20 Oct 2003 23:56:22 -0000      1.11
  +++ ModuleControllerGui.java  19 Jan 2004 01:58:56 -0000      1.12
  @@ -56,8 +56,6 @@
   package org.apache.jmeter.control.gui;
   
   import java.awt.FlowLayout;
  -import java.awt.event.ActionEvent;
  -import java.awt.event.ActionListener;
   
   import javax.swing.DefaultComboBoxModel;
   import javax.swing.JComboBox;
  @@ -69,7 +67,6 @@
   import org.apache.jmeter.control.Controller;
   import org.apache.jmeter.control.ModuleController;
   import org.apache.jmeter.gui.GuiPackage;
  -import org.apache.jmeter.gui.action.ActionRouter;
   import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.gui.util.MenuFactory;
   import org.apache.jmeter.testelement.TestElement;
  @@ -186,8 +183,16 @@
           nodesModel = new DefaultComboBoxModel();
           nodes = new JComboBox(nodesModel);
           reinitialize();
  -
  -        try
  +        
  +             /* This listener subscription prevents freeing up the GUI when it's no 
longer in use
  +              * (e.g. on locale change)...
  +              * ... plus I don't think it's really necessary: 
configure(TestElement) already takes
  +              * care of reinitializing the target combo when we come back to it. 
And I can't see how
  +              * the tree can change in a relevant way without we leaving this GUI.
  +              * I'll comment it out for the time being:
  +              * TODO: remove once we're convinced it's really unnecessary.
  +              */
  +        /*try
           {
               Class addToTree =
                   Class.forName("org.apache.jmeter.gui.action.AddToTree");
  @@ -205,7 +210,7 @@
           }
           catch (ClassNotFoundException e)
           {
  -        }
  +        }*/
           modulesPanel.add(nodes);
           add(modulesPanel);
       }
  
  
  
  1.21      +17 -2     jakarta-jmeter/src/core/org/apache/jmeter/gui/GuiPackage.java
  
  Index: GuiPackage.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/src/core/org/apache/jmeter/gui/GuiPackage.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- GuiPackage.java   15 Jan 2004 02:02:41 -0000      1.20
  +++ GuiPackage.java   19 Jan 2004 01:58:56 -0000      1.21
  @@ -70,6 +70,9 @@
   import org.apache.jmeter.testbeans.gui.TestBeanGUI;
   import org.apache.jmeter.testelement.TestElement;
   import org.apache.jmeter.testelement.TestPlan;
  +import org.apache.jmeter.util.JMeterUtils;
  +import org.apache.jmeter.util.LocaleChangeEvent;
  +import org.apache.jmeter.util.LocaleChangeListener;
   import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
   import org.apache.jorphan.collections.HashTree;
   import org.apache.jorphan.logging.LoggingManager;
  @@ -86,7 +89,7 @@
    * @author Michael Stover
    * @version $Revision$
    */
  -public final class GuiPackage
  +public final class GuiPackage implements LocaleChangeListener
   {
       /** Logging. */
       private static transient Logger log =
  @@ -138,6 +141,7 @@
        */
       private GuiPackage()
       {
  +     JMeterUtils.addLocaleChangeListener(this);
       }
       
       /**
  @@ -610,5 +614,16 @@
               popup.setVisible(true);
               popup.requestFocus();
           }
  +    }
  +
  +    /* (non-Javadoc)
  +     * @see 
org.apache.jmeter.util.LocaleChangeListener#localeChanged(org.apache.jmeter.util.LocaleChangeEvent)
  +     */
  +    public void localeChanged(LocaleChangeEvent event)
  +    {
  +        // Forget about all GUIs we've created so far: we'll need to re-created 
them all!
  +        guis= new HashMap();
  +        nodesToGui= new HashMap();
  +        testBeanGUIs= new HashMap();
       }
   }
  
  
  
  1.35      +14 -4     
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.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- ProxyControlGui.java      7 Jan 2004 00:43:51 -0000       1.34
  +++ ProxyControlGui.java      19 Jan 2004 01:58:56 -0000      1.35
  @@ -92,7 +92,6 @@
   import org.apache.jmeter.gui.GuiPackage;
   import org.apache.jmeter.gui.JMeterGUIComponent;
   import org.apache.jmeter.gui.UnsharedComponent;
  -import org.apache.jmeter.gui.action.ActionRouter;
   import org.apache.jmeter.gui.tree.JMeterTreeNode;
   import org.apache.jmeter.gui.util.HorizontalPanel;
   import org.apache.jmeter.gui.util.MenuFactory;
  @@ -550,7 +549,18 @@
           panel.add(label);
           panel.add(targetNodes);
   
  -        try
  +             /* This listener subscription prevents freeing up the GUI when it's no 
longer in use
  +              * (e.g. on locale change)... plus causes some anoying NPEs in the GUI 
instance
  +              * created by the menu manager just to find out our name and which 
menus we
  +              * want to be in...
  +              * ... plus I don't think it's really necessary: 
configure(TestElement) already takes
  +              * care of reinitializing the target combo when we come back to it. 
And I can't see how
  +              * the tree can change in a relevant way without we leaving this GUI 
(since it is very
  +              * unlikely that we will want to record into one of the controllers 
created by the proxy).
  +              * I'll comment it out for the time being:
  +              * TODO: remove once we're convinced it's really unnecessary.
  +              */
  +        /*try
           {
               Class addToTree =
                   Class.forName("org.apache.jmeter.gui.action.AddToTree");
  @@ -570,7 +580,7 @@
           {
               // This should never happen -- throw an Error:
               throw new Error(e.toString());//JDK1.4: remove .toString()
  -        }
  +        }*/
           
           return panel;        
       }
  
  
  

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

Reply via email to