You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2013/08/16 02:37:24 UTC
svn commit: r1514547 - in
/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui: EnumEditor.java
GenericTestBeanCustomizer.java TypeEditor.java
Author: sebb
Date: Fri Aug 16 00:37:24 2013
New Revision: 1514547
URL: http://svn.apache.org/r1514547
Log:
Need GUI Editor to process fields which are based on Enums with localised display strings
Better invocation strategy - pass in enum class and resource bundle
Bugzilla Id: 55241
Modified:
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/EnumEditor.java
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TypeEditor.java
Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/EnumEditor.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/EnumEditor.java?rev=1514547&r1=1514546&r2=1514547&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/EnumEditor.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/EnumEditor.java Fri Aug 16 00:37:24 2013
@@ -33,8 +33,6 @@ import org.apache.jmeter.gui.ClearGui;
* <p>
* The provided GUI is a combo box with an option for each value in the enum.
* <p>
- * The resource bundle must be provided by the attribute
- * GenericTestBeanCustomizer.RESOURCE_BUNDLE
*/
class EnumEditor extends PropertyEditorSupport implements ClearGui {
@@ -42,26 +40,20 @@ class EnumEditor extends PropertyEditorS
private final DefaultComboBoxModel model;
- private final Enum<?>[] eNum;
-
- private final ResourceBundle rb;
-
private final int defaultIndex;
- public EnumEditor(PropertyDescriptor descriptor) {
+ public EnumEditor(final PropertyDescriptor descriptor, final Class<? extends Enum<?>> enumClazz, final ResourceBundle rb) {
model = new DefaultComboBoxModel();
combo = new JComboBox(model);
combo.setEditable(false);
- rb = (ResourceBundle) descriptor.getValue(GenericTestBeanCustomizer.RESOURCE_BUNDLE);
- eNum = (Enum<?>[]) descriptor.getValue(GenericTestBeanCustomizer.TAGS);
- for(Enum<?> e : eNum) {
+ for(Enum<?> e : enumClazz.getEnumConstants()) {
model.addElement(rb.getObject(e.toString()));
}
Enum<?> def = (Enum<?>) descriptor.getValue(GenericTestBeanCustomizer.DEFAULT);
if (def != null) {
- this.defaultIndex = def.ordinal();
+ defaultIndex = def.ordinal();
} else {
- this.defaultIndex = 0;
+ defaultIndex = 0;
}
combo.setSelectedIndex(defaultIndex);
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java?rev=1514547&r1=1514546&r2=1514547&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Fri Aug 16 00:37:24 2013
@@ -225,6 +225,10 @@ public class GenericTestBeanCustomizer e
Object guiType = descriptor.getValue(GUITYPE);
if (guiType instanceof TypeEditor) {
propertyEditor = ((TypeEditor) guiType).getInstance(descriptor);
+ } else if (guiType instanceof Class && Enum.class.isAssignableFrom((Class<?>) guiType)) {
+ @SuppressWarnings("unchecked") // we check the class type above
+ final Class<? extends Enum<?>> enumClass = (Class<? extends Enum<?>>) guiType;
+ propertyEditor = new EnumEditor(descriptor, enumClass, (ResourceBundle) descriptor.getValue(GenericTestBeanCustomizer.RESOURCE_BUNDLE));
} else {
Class<?> editorClass = descriptor.getPropertyEditorClass();
if (log.isDebugEnabled()) {
Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TypeEditor.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TypeEditor.java?rev=1514547&r1=1514546&r2=1514547&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TypeEditor.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/TypeEditor.java Fri Aug 16 00:37:24 2013
@@ -29,7 +29,6 @@ public enum TypeEditor {
PasswordEditor {@Override PropertyEditor getInstance(PropertyDescriptor descriptor) { return new PasswordEditor(); }},
TableEditor {@Override PropertyEditor getInstance(PropertyDescriptor descriptor) { return new TableEditor(); }},
TextAreaEditor {@Override PropertyEditor getInstance(PropertyDescriptor descriptor) { return new TextAreaEditor(descriptor); }},
- EnumEditor {@Override PropertyEditor getInstance(PropertyDescriptor descriptor) { return new EnumEditor(descriptor); }},
;
// Some editors may need the descriptor
abstract PropertyEditor getInstance(PropertyDescriptor descriptor);