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]