Hello,
-1 for a new property saveconfig.sort

Let's decide of a sort order and impose it.

Regards

On Sat, Mar 12, 2016 at 10:37 PM, <[email protected]> wrote:

> Author: sebb
> Date: Sat Mar 12 21:37:42 2016
> New Revision: 1734740
>
> URL: http://svn.apache.org/viewvc?rev=1734740&view=rev
> Log:
> Sample Result SaveConfig Dialog is generated in random order
> TODO - remove the test code when the sort order is decided
> Bugzilla Id: 59171
>
> Modified:
>     jmeter/trunk/src/core/org/apache/jmeter/gui/SavePropertyDialog.java
>
> Modified:
> jmeter/trunk/src/core/org/apache/jmeter/gui/SavePropertyDialog.java
> URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/SavePropertyDialog.java?rev=1734740&r1=1734739&r2=1734740&view=diff
>
> ==============================================================================
> --- jmeter/trunk/src/core/org/apache/jmeter/gui/SavePropertyDialog.java
> (original)
> +++ jmeter/trunk/src/core/org/apache/jmeter/gui/SavePropertyDialog.java
> Sat Mar 12 21:37:42 2016
> @@ -28,7 +28,11 @@ import java.awt.event.ActionEvent;
>  import java.awt.event.ActionListener;
>  import java.lang.reflect.InvocationTargetException;
>  import java.lang.reflect.Method;
> +import java.util.ArrayList;
> +import java.util.Collections;
> +import java.util.Comparator;
>  import java.util.HashMap;
> +import java.util.List;
>  import java.util.Map;
>
>  import javax.swing.JButton;
> @@ -98,6 +102,7 @@ public class SavePropertyDialog extends
>          int x = (countMethods(methods) / 3) + 1;
>          log.debug("grid panel is " + 3 + " by " + x);
>          JPanel checkPanel = new JPanel(new GridLayout(x, 3));
> +        List<JCheckBox> checks = new ArrayList<>();
>          for (Method method : methods) {
>              String name = method.getName();
>              if (name.startsWith(NAME_SAVE_PFX) &&
> method.getParameterTypes().length == 0) {
> @@ -106,7 +111,7 @@ public class SavePropertyDialog extends
>                      JCheckBox check = new JCheckBox(
>                              JMeterUtils.getResString(RESOURCE_PREFIX +
> name),
>                              ((Boolean) method.invoke(saveConfig, new
> Object[0])).booleanValue());
> -                    checkPanel.add(check, BorderLayout.NORTH);
> +                    checks.add(check);
>                      check.addActionListener(this);
>                      String actionCommand = NAME_SET_PREFIX + name; //
> $NON-NLS-1$
>                      check.setActionCommand(actionCommand);
> @@ -118,6 +123,22 @@ public class SavePropertyDialog extends
>                  }
>              }
>          }
> +        // sortOrder is a temporary hack to allow easy testing of sort
> alternatives (Bug 59171)
> +        final String sortOrder =
> JMeterUtils.getPropDefault("saveconfig.sort", "");
> +        if (sortOrder.length() > 0) {
> +            Collections.sort(checks, new Comparator<JCheckBox>(){
> +                @Override
> +                public int compare(JCheckBox o1, JCheckBox o2) {
> +                    if ("text".equals(sortOrder)) {
> +                        return
> o1.getText().compareToIgnoreCase(o2.getText()); // depends on language
> +                    } else {
> +                        return
> o1.getActionCommand().compareToIgnoreCase(o2.getActionCommand()); //
> propName
> +                    }
> +                }});
> +        }
> +        for(JCheckBox check : checks) {
> +            checkPanel.add(check, BorderLayout.NORTH);
> +        }
>          getContentPane().add(checkPanel, BorderLayout.NORTH);
>          JButton exit = new JButton(JMeterUtils.getResString("done")); //
> $NON-NLS-1$
>          this.getContentPane().add(exit, BorderLayout.SOUTH);
>
>
>


-- 
Cordialement.
Philippe Mouawad.

Reply via email to