This is an automated email from the ASF dual-hosted git repository.
pmouawad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
The following commit(s) were added to refs/heads/master by this push:
new 2b783f9 Bug 64275: Function Helper Dialog: Improve UX
2b783f9 is described below
commit 2b783f96ae798d62db9d3645e268d83a3aac7c72
Author: pmouawad <[email protected]>
AuthorDate: Sun May 3 21:39:18 2020 +0200
Bug 64275: Function Helper Dialog: Improve UX
Allow lookup of function name when typing first characters
---
.../apache/jmeter/functions/gui/FunctionHelper.java | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git
a/src/core/src/main/java/org/apache/jmeter/functions/gui/FunctionHelper.java
b/src/core/src/main/java/org/apache/jmeter/functions/gui/FunctionHelper.java
index c2cb842..06bf4a4 100644
--- a/src/core/src/main/java/org/apache/jmeter/functions/gui/FunctionHelper.java
+++ b/src/core/src/main/java/org/apache/jmeter/functions/gui/FunctionHelper.java
@@ -26,6 +26,7 @@ import java.io.Reader;
import java.io.StringReader;
import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -79,6 +80,8 @@ public class FunctionHelper extends JDialog implements
ActionListener, ChangeLis
private static final String RESET_VARS = "RESET_VARS";
+ private static final String FUNCTION_PREFIX = "__";
+
private JLabeledChoice functionList;
private ArgumentsPanel parameterPanel;
@@ -172,7 +175,8 @@ public class FunctionHelper extends JDialog implements
ActionListener, ChangeLis
private void initializeFunctionList() {
String[] functionNames = CompoundVariable.getFunctionNames();
Arrays.sort(functionNames, String::compareToIgnoreCase);
- functionList = new
JLabeledChoice(JMeterUtils.getResString("choose_function"), functionNames);
//$NON-NLS-1$
+ functionList = new
JLabeledChoice(JMeterUtils.getResString("choose_function"),
+ Arrays.stream(functionNames).map(e ->
e.substring(FUNCTION_PREFIX.length())).collect(Collectors.toList()).toArray(new
String[0])); //$NON-NLS-1$
functionList.addChangeListener(this);
}
@@ -198,7 +202,7 @@ public class FunctionHelper extends JDialog implements
ActionListener, ChangeLis
*/
protected void initParameterPanel() throws InstantiationException,
IllegalAccessException {
Arguments args = new Arguments();
- Function function =
CompoundVariable.getFunctionClass(functionList.getText()).newInstance();
+ Function function =
CompoundVariable.getFunctionClass(getFunctionName(functionList.getText())).newInstance();
List<String> argumentDesc = function.getArgumentDesc();
for (String help : argumentDesc) {
args.addArgument(help, ""); //$NON-NLS-1$
@@ -207,11 +211,19 @@ public class FunctionHelper extends JDialog implements
ActionListener, ChangeLis
parameterPanel.revalidate();
}
+ /**
+ * @param text Function name without __ prefix
+ * @return String function name with __ prefix
+ */
+ private static final String getFunctionName(String text) {
+ return FUNCTION_PREFIX+text;
+ }
+
@Override
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if(GENERATE.equals(actionCommand)) {
- String functionName = functionList.getText();
+ String functionName = getFunctionName(functionList.getText());
Arguments args = (Arguments) parameterPanel.createTestElement();
String functionCall = buildFunctionCallString(functionName, args);
cutPasteFunction.setText(functionCall);
@@ -310,7 +322,7 @@ public class FunctionHelper extends JDialog implements
ActionListener, ChangeLis
private class HelpListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
- String[] source = new String[] { Help.HELP_FUNCTIONS,
functionList.getText() };
+ String[] source = new String[] { Help.HELP_FUNCTIONS,
getFunctionName(functionList.getText()) };
ActionRouter.getInstance().doActionNow(
new ActionEvent(source, e.getID(), ActionNames.HELP));