You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2023/03/29 12:57:54 UTC

[hop] branch master updated: Configuration setting to determine selector field order #2558

This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/master by this push:
     new e21bc6d804 Configuration setting to determine selector field order #2558
     new 200a97e0fb Merge pull request #2562 from nadment/2558
e21bc6d804 is described below

commit e21bc6d804fd859ba6dcfef054b05c610c22e7cf
Author: Nicolas Adment <39...@users.noreply.github.com>
AuthorDate: Mon Mar 13 21:30:15 2023 +0100

    Configuration setting to determine selector field order #2558
---
 core/src/main/java/org/apache/hop/core/Props.java  |  1 -
 .../transforms/avrooutput/AvroOutputDialog.java    | 21 ++--------
 .../analyticquery/AnalyticQueryDialog.java         | 23 +++--------
 .../transforms/calculator/CalculatorDialog.java    | 28 +++++--------
 .../transforms/checksum/CheckSumDialog.java        | 22 ++---------
 .../transforms/coalesce/CoalesceDialog.java        |  6 ++-
 .../combinationlookup/CombinationLookupDialog.java | 26 +++---------
 .../concatfields/ConcatFieldsDialog.java           | 18 ++-------
 .../databasejoin/DatabaseJoinDialog.java           | 25 +++---------
 .../pipeline/transforms/dbproc/DBProcDialog.java   | 22 ++---------
 .../pipeline/transforms/delete/DeleteDialog.java   | 24 +++--------
 .../dimensionlookup/DimensionLookupDialog.java     | 15 ++-----
 .../excelwriter/ExcelWriterTransformDialog.java    | 23 +++--------
 .../FieldsChangeSequenceDialog.java                | 28 ++++---------
 .../pipeline/transforms/formula/FormulaDialog.java | 25 +++---------
 .../transforms/fuzzymatch/FuzzyMatchDialog.java    | 15 ++-----
 .../pipeline/transforms/groupby/GroupByDialog.java | 21 ++--------
 .../hop/pipeline/transforms/http/HttpDialog.java   | 27 ++++---------
 .../transforms/httppost/HttpPostDialog.java        | 21 ++--------
 .../pipeline/transforms/janino/JaninoDialog.java   | 23 ++---------
 .../transforms/jsonoutput/JsonOutputDialog.java    | 19 ++-------
 .../jsonoutputenhanced/JsonOutputDialog.java       | 21 ++--------
 .../transforms/ldapoutput/LdapOutputDialog.java    | 21 ++--------
 .../transforms/memgroupby/MemoryGroupByDialog.java | 26 +++---------
 .../monetdbbulkloader/MonetDbBulkLoaderDialog.java | 19 ++-------
 .../mongodbdelete/MongoDbDeleteDialog.java         | 19 ++-------
 .../multimerge/MultiMergeJoinDialog.java           | 24 +++--------
 .../transforms/normaliser/NormaliserDialog.java    | 22 ++---------
 .../pipeline/transforms/nullif/NullIfDialog.java   | 21 ++--------
 .../orabulkloader/OraBulkLoaderDialog.java         | 22 ++---------
 .../pgbulkloader/PGBulkLoaderDialog.java           | 20 ++--------
 .../replacestring/ReplaceStringDialog.java         | 20 ++--------
 .../hop/pipeline/transforms/rest/RestDialog.java   | 21 ++--------
 .../salesforceupdate/SalesforceUpdateDialog.java   | 22 +++--------
 .../salesforceupsert/SalesforceUpsertDialog.java   |  4 +-
 .../selectvalues/SelectValuesDialog.java           |  6 ++-
 .../setvalueconstant/SetValueConstantDialog.java   | 21 ++--------
 .../setvaluefield/SetValueFieldDialog.java         | 21 ++--------
 .../transforms/setvariable/SetVariableDialog.java  | 21 ++--------
 .../bulkloader/SnowflakeBulkLoaderDialog.java      | 18 ++-------
 .../pipeline/transforms/sort/SortRowsDialog.java   | 21 ++--------
 .../transforms/sortedmerge/SortedMergeDialog.java  | 21 ++--------
 .../hop/pipeline/transforms/sql/ExecSqlDialog.java | 21 ++--------
 .../transforms/stringcut/StringCutDialog.java      | 21 ++--------
 .../stringoperations/StringOperationsDialog.java   | 16 +++-----
 .../SynchronizeAfterMergeDialog.java               | 21 ++--------
 .../transforms/tableoutput/TableOutputDialog.java  | 21 ++--------
 .../transforms/terafast/TeraFastDialog.java        | 20 ++--------
 .../textfileoutput/TextFileOutputDialog.java       | 21 ++--------
 .../tokenreplacement/TokenReplacementDialog.java   | 21 ++--------
 .../transforms/uniquerows/UniqueRowsDialog.java    | 21 ++--------
 .../UniqueRowsByHashSetDialog.java                 | 21 ++--------
 .../pipeline/transforms/update/UpdateDialog.java   | 20 ++--------
 .../bulkloader/VerticaBulkLoaderDialog.java        |  4 +-
 .../transforms/writetolog/WriteToLogDialog.java    | 23 +++--------
 .../transforms/xml/xmloutput/XmlOutputDialog.java  | 22 +++--------
 .../main/java/org/apache/hop/ui/core/ConstUi.java  | 15 +++++++
 .../main/java/org/apache/hop/ui/core/PropsUi.java  | 20 +++++-----
 .../tabs/ConfigGeneralOptionsTab.java              | 46 +++++++++++-----------
 .../configuration/tabs/ConfigGuiOptionsTab.java    |  2 +-
 .../core/dialog/messages/messages_en_US.properties |  2 +
 61 files changed, 297 insertions(+), 905 deletions(-)

diff --git a/core/src/main/java/org/apache/hop/core/Props.java b/core/src/main/java/org/apache/hop/core/Props.java
index 69c4cbebb4..eb0011e2a8 100644
--- a/core/src/main/java/org/apache/hop/core/Props.java
+++ b/core/src/main/java/org/apache/hop/core/Props.java
@@ -70,7 +70,6 @@ public class Props implements Cloneable {
   public static final String STRING_AUTO_SAVE = "AutoSave";
   public static final String STRING_SAVE_CONF = "SaveConfirmation";
   public static final String STRING_AUTO_SPLIT = "AutoSplit";
-  public static final String STRING_AUTO_COLLAPSE_CORE_TREE = "AutoCollapseCoreObjectsTree";
 
   public static final String STRING_USE_DB_CACHE = "UseDBCache";
   public static final String STRING_OPEN_LAST_FILE = "OpenLastFile";
diff --git a/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avrooutput/AvroOutputDialog.java b/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avrooutput/AvroOutputDialog.java
index 1125249de4..770c83c529 100644
--- a/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avrooutput/AvroOutputDialog.java
+++ b/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avrooutput/AvroOutputDialog.java
@@ -30,6 +30,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -60,11 +61,8 @@ import org.eclipse.swt.widgets.Text;
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class AvroOutputDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG =
@@ -113,7 +111,7 @@ public class AvroOutputDialog extends BaseTransformDialog implements ITransformD
   private final AvroOutputMeta input;
   private Button wAddToResult;
   private ColumnInfo[] colinf;
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
   private Schema avroSchema;
   private boolean validSchema = false;
   private String[] avroFieldNames = null;
@@ -126,7 +124,6 @@ public class AvroOutputDialog extends BaseTransformDialog implements ITransformD
       String transformName) {
     super(parent, variables, (BaseTransformMeta) baseTransformMeta, pipelineMeta, transformName);
     input = (AvroOutputMeta) baseTransformMeta;
-    inputFields = new HashMap<>();
   }
 
   public String open() {
@@ -802,7 +799,7 @@ public class AvroOutputDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -956,17 +953,7 @@ public class AvroOutputDialog extends BaseTransformDialog implements ITransformD
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryDialog.java b/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryDialog.java
index a282dda775..53069c2378 100644
--- a/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryDialog.java
+++ b/plugins/transforms/analyticquery/src/main/java/org/apache/hop/pipeline/transforms/analyticquery/AnalyticQueryDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -46,10 +47,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class AnalyticQueryDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = AnalyticQueryDialog.class; // For Translator
@@ -63,13 +61,12 @@ public class AnalyticQueryDialog extends BaseTransformDialog implements ITransfo
   private ColumnInfo[] ciKey;
   private ColumnInfo[] ciReturn;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public AnalyticQueryDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (AnalyticQueryMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -91,7 +88,7 @@ public class AnalyticQueryDialog extends BaseTransformDialog implements ITransfo
     shell.setText(BaseMessages.getString(PKG, "AnalyticQueryDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
@@ -219,7 +216,7 @@ public class AnalyticQueryDialog extends BaseTransformDialog implements ITransfo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -260,17 +257,7 @@ public class AnalyticQueryDialog extends BaseTransformDialog implements ITransfo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[0].setComboValues(fieldNames);
     ciReturn[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorDialog.java b/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorDialog.java
index b255f0582f..2e302b1678 100644
--- a/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorDialog.java
+++ b/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorDialog.java
@@ -52,10 +52,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class CalculatorDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = CalculatorMeta.class; // For Translator
@@ -69,7 +66,7 @@ public class CalculatorDialog extends BaseTransformDialog implements ITransformD
   private final CalculatorMeta currentMeta;
   private final CalculatorMeta originalMeta;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
   private ColumnInfo[] colinf;
 
   public CalculatorDialog(
@@ -79,7 +76,6 @@ public class CalculatorDialog extends BaseTransformDialog implements ITransformD
     // The order here is important... currentMeta is looked at for changes
     currentMeta = (CalculatorMeta) in;
     originalMeta = (CalculatorMeta) currentMeta.clone();
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -102,7 +98,7 @@ public class CalculatorDialog extends BaseTransformDialog implements ITransformD
     shell.setText(BaseMessages.getString(PKG, "CalculatorDialog.DialogTitle"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
     int fdMargin = 15;
 
     // Buttons at the very bottom
@@ -290,9 +286,8 @@ public class CalculatorDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
-
               setComboBoxes();
             } catch (HopException e) {
               logError(BaseMessages.getString(PKG, "CalculatorDialog.Log.UnableToFindInput"));
@@ -316,10 +311,12 @@ public class CalculatorDialog extends BaseTransformDialog implements ITransformD
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
+    final List<String> fields = new ArrayList<>();
 
     // Add the currentMeta fields...
-    fields.putAll(inputFields);
+    for(String s :  inputFields) {
+      fields.add(s);
+    }
 
     shell
         .getDisplay()
@@ -330,18 +327,11 @@ public class CalculatorDialog extends BaseTransformDialog implements ITransformD
               int nrNonEmptyFields = wFields.nrNonEmpty();
               for (int i = 0; i < nrNonEmptyFields; i++) {
                 TableItem item = wFields.getNonEmpty(i);
-                fields.put(
-                    item.getText(1), 1000000 + i); // The number is just to debug the origin of
-                // the fieldname
+                fields.add(item.getText(1));
               }
             });
 
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(fields);
     colinf[2].setComboValues(fieldNames);
     colinf[3].setComboValues(fieldNames);
     colinf[4].setComboValues(fieldNames);
diff --git a/plugins/transforms/checksum/src/main/java/org/apache/hop/pipeline/transforms/checksum/CheckSumDialog.java b/plugins/transforms/checksum/src/main/java/org/apache/hop/pipeline/transforms/checksum/CheckSumDialog.java
index 6b44d48049..6b25913978 100644
--- a/plugins/transforms/checksum/src/main/java/org/apache/hop/pipeline/transforms/checksum/CheckSumDialog.java
+++ b/plugins/transforms/checksum/src/main/java/org/apache/hop/pipeline/transforms/checksum/CheckSumDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -50,10 +51,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class CheckSumDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = CheckSumDialog.class; // For Translator
@@ -68,7 +66,7 @@ public class CheckSumDialog extends BaseTransformDialog implements ITransformDia
 
   private ColumnInfo[] colinf;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private Label wlResultType;
   private CCombo wResultType;
@@ -77,7 +75,6 @@ public class CheckSumDialog extends BaseTransformDialog implements ITransformDia
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (CheckSumMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -249,9 +246,8 @@ public class CheckSumDialog extends BaseTransformDialog implements ITransformDia
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
-
               setComboBoxes();
             } catch (HopException e) {
               logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message"));
@@ -289,17 +285,7 @@ public class CheckSumDialog extends BaseTransformDialog implements ITransformDia
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceDialog.java b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceDialog.java
index 5110ea8cdd..11a7413085 100644
--- a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceDialog.java
+++ b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceDialog.java
@@ -228,8 +228,10 @@ public class CoalesceDialog extends BaseTransformDialog implements ITransformDia
                 for (int i = 0; i < row.size(); i++) {
                   fieldNames[i] = row.getValueMeta(i).getName();
                 }
-
-                Const.sortStrings(fieldNames);
+                
+                if ( PropsUi.getInstance().isSortFieldByName() ) {
+                  Const.sortStrings(fieldNames);
+                }
               } catch (HopException e) {
                 logError(BaseMessages.getString(PKG, "CoalesceDialog.Log.UnableToFindInput"));
               }
diff --git a/plugins/transforms/combinationlookup/src/main/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupDialog.java b/plugins/transforms/combinationlookup/src/main/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupDialog.java
index 260247aa55..a96f2567c3 100644
--- a/plugins/transforms/combinationlookup/src/main/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupDialog.java
+++ b/plugins/transforms/combinationlookup/src/main/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupDialog.java
@@ -32,6 +32,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -64,10 +65,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class CombinationLookupDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = CombinationLookupDialog.class; // For Translator
@@ -113,8 +111,8 @@ public class CombinationLookupDialog extends BaseTransformDialog implements ITra
 
   private DatabaseMeta databaseMeta;
 
-  private final Map<String, Integer> inputFields;
-
+  private final List<String> inputFields = new ArrayList<>();
+  
   /** List of ColumnInfo that should have the field names of the selected database table */
   private final List<ColumnInfo> tableFieldColumns = new ArrayList<>();
 
@@ -122,7 +120,6 @@ public class CombinationLookupDialog extends BaseTransformDialog implements ITra
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (CombinationLookupMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -141,7 +138,7 @@ public class CombinationLookupDialog extends BaseTransformDialog implements ITra
     shell.setText(BaseMessages.getString(PKG, "CombinationLookupDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     ModifyListener lsMod = e -> input.setChanged();
     ModifyListener lsTableMod =
@@ -558,9 +555,8 @@ public class CombinationLookupDialog extends BaseTransformDialog implements ITra
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
-
               setComboBoxes();
             } catch (HopException e) {
               logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message"));
@@ -601,17 +597,7 @@ public class CombinationLookupDialog extends BaseTransformDialog implements ITra
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
-    // Key fields
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[1].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/concatfields/src/main/java/org/apache/hop/pipeline/transforms/concatfields/ConcatFieldsDialog.java b/plugins/transforms/concatfields/src/main/java/org/apache/hop/pipeline/transforms/concatfields/ConcatFieldsDialog.java
index 2e5543aa4d..f7d2bf98e8 100644
--- a/plugins/transforms/concatfields/src/main/java/org/apache/hop/pipeline/transforms/concatfields/ConcatFieldsDialog.java
+++ b/plugins/transforms/concatfields/src/main/java/org/apache/hop/pipeline/transforms/concatfields/ConcatFieldsDialog.java
@@ -30,6 +30,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -55,10 +56,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 /*
  * ConcatFieldsDialog
@@ -83,7 +81,7 @@ public class ConcatFieldsDialog extends BaseTransformDialog implements ITransfor
 
   private ColumnInfo[] fieldColumns;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public ConcatFieldsDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
@@ -94,7 +92,6 @@ public class ConcatFieldsDialog extends BaseTransformDialog implements ITransfor
         pipelineMeta,
         sname);
     input = (ConcatFieldsMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -376,7 +373,7 @@ public class ConcatFieldsDialog extends BaseTransformDialog implements ITransfor
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -428,14 +425,7 @@ public class ConcatFieldsDialog extends BaseTransformDialog implements ITransfor
   /** Something was changed in the row. Handle this change. */
   protected void setComboBoxes() {
     // Add the currentMeta fields...
-    final Map<String, Integer> fields = new HashMap<>(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[0]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     fieldColumns[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoinDialog.java b/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoinDialog.java
index b17b7dd7c8..e228d5e7a4 100644
--- a/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoinDialog.java
+++ b/plugins/transforms/databasejoin/src/main/java/org/apache/hop/pipeline/transforms/databasejoin/DatabaseJoinDialog.java
@@ -30,6 +30,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -59,10 +60,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class DatabaseJoinDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = DatabaseJoinMeta.class; // For Translator
@@ -85,13 +83,12 @@ public class DatabaseJoinDialog extends BaseTransformDialog implements ITransfor
 
   private ColumnInfo[] ciKey;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public DatabaseJoinDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (DatabaseJoinMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -113,7 +110,7 @@ public class DatabaseJoinDialog extends BaseTransformDialog implements ITransfor
     shell.setText(BaseMessages.getString(PKG, "DatabaseJoinDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
@@ -343,7 +340,7 @@ public class DatabaseJoinDialog extends BaseTransformDialog implements ITransfor
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -367,18 +364,8 @@ public class DatabaseJoinDialog extends BaseTransformDialog implements ITransfor
 
   protected void setComboBoxes() {
     // Something was changed in the row.
-    //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    //    
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/dbproc/src/main/java/org/apache/hop/pipeline/transforms/dbproc/DBProcDialog.java b/plugins/transforms/dbproc/src/main/java/org/apache/hop/pipeline/transforms/dbproc/DBProcDialog.java
index b91cd68123..65b3d22f2c 100644
--- a/plugins/transforms/dbproc/src/main/java/org/apache/hop/pipeline/transforms/dbproc/DBProcDialog.java
+++ b/plugins/transforms/dbproc/src/main/java/org/apache/hop/pipeline/transforms/dbproc/DBProcDialog.java
@@ -31,6 +31,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
@@ -54,12 +55,8 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
-
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class DBProcDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = DBProcMeta.class; // For Translator
@@ -80,13 +77,12 @@ public class DBProcDialog extends BaseTransformDialog implements ITransformDialo
 
   private ColumnInfo[] fieldColumns;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public DBProcDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (DBProcMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -288,7 +284,7 @@ public class DBProcDialog extends BaseTransformDialog implements ITransformDialo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -351,17 +347,7 @@ public class DBProcDialog extends BaseTransformDialog implements ITransformDialo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     fieldColumns[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/DeleteDialog.java b/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/DeleteDialog.java
index 256ace5c91..a6c23304f4 100644
--- a/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/DeleteDialog.java
+++ b/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/DeleteDialog.java
@@ -30,6 +30,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.dialog.BaseDialog;
@@ -58,10 +59,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class DeleteDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = DeleteMeta.class; // For Translator
@@ -78,7 +76,7 @@ public class DeleteDialog extends BaseTransformDialog implements ITransformDialo
 
   private final DeleteMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciKey;
 
@@ -89,7 +87,6 @@ public class DeleteDialog extends BaseTransformDialog implements ITransformDialo
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (DeleteMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -124,7 +121,7 @@ public class DeleteDialog extends BaseTransformDialog implements ITransformDialo
     shell.setText(BaseMessages.getString(PKG, "DeleteDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // THE BUTTONS
     wOk = new Button(shell, SWT.PUSH);
@@ -310,9 +307,8 @@ public class DeleteDialog extends BaseTransformDialog implements ITransformDialo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
-
               setComboBoxes();
             } catch (HopException e) {
               logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message"));
@@ -347,17 +343,7 @@ public class DeleteDialog extends BaseTransformDialog implements ITransformDialo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
-    // Key fields
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[2].setComboValues(fieldNames);
     ciKey[3].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupDialog.java b/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupDialog.java
index 4f4f27743a..fb2181a223 100644
--- a/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupDialog.java
+++ b/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupDialog.java
@@ -40,6 +40,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -149,7 +150,7 @@ public class DimensionLookupDialog extends BaseTransformDialog implements ITrans
 
   private ColumnInfo[] keyColumns;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private boolean gotPreviousFields = false;
 
@@ -163,7 +164,6 @@ public class DimensionLookupDialog extends BaseTransformDialog implements ITrans
     super(
         parent, variables, (BaseTransformMeta<DimensionLookup, DimensionLookupData>) in, tr, sname);
     input = (DimensionLookupMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -691,7 +691,7 @@ public class DimensionLookupDialog extends BaseTransformDialog implements ITrans
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -1047,14 +1047,7 @@ public class DimensionLookupDialog extends BaseTransformDialog implements ITrans
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-
-    // Add the currentMeta fields...
-    final Map<String, Integer> fields = new HashMap<>(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = Const.sortStrings(entries.toArray(new String[0]));
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     keyColumns[1].setComboValues(fieldNames);
     fieldColumns[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java
index cea4b327d8..d682d76201 100644
--- a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java
+++ b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformDialog.java
@@ -30,6 +30,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
@@ -69,10 +70,7 @@ import org.eclipse.swt.widgets.Text;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class ExcelWriterTransformDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = ExcelWriterTransformMeta.class; // For Translator
@@ -136,7 +134,7 @@ public class ExcelWriterTransformDialog extends BaseTransformDialog implements I
 
   private ColumnInfo[] colinf;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private CCombo wIfFileExists;
 
@@ -177,7 +175,6 @@ public class ExcelWriterTransformDialog extends BaseTransformDialog implements I
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (ExcelWriterTransformMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -206,7 +203,7 @@ public class ExcelWriterTransformDialog extends BaseTransformDialog implements I
     shell.setText(BaseMessages.getString(PKG, "ExcelWriterDialog.DialogTitle"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // Buttons go at the bottom
     //
@@ -1445,7 +1442,7 @@ public class ExcelWriterTransformDialog extends BaseTransformDialog implements I
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -1651,17 +1648,7 @@ public class ExcelWriterTransformDialog extends BaseTransformDialog implements I
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
     colinf[7].setComboValues(fieldNames);
     colinf[8].setComboValues(fieldNames);
diff --git a/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceDialog.java b/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceDialog.java
index a57520a2a2..65eae520ee 100644
--- a/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceDialog.java
+++ b/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -51,10 +52,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class FieldsChangeSequenceDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = FieldsChangeSequenceMeta.class; // For Translator
@@ -69,7 +67,7 @@ public class FieldsChangeSequenceDialog extends BaseTransformDialog implements I
 
   private Text wResult;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
 
@@ -79,7 +77,6 @@ public class FieldsChangeSequenceDialog extends BaseTransformDialog implements I
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (FieldsChangeSequenceMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -102,7 +99,7 @@ public class FieldsChangeSequenceDialog extends BaseTransformDialog implements I
     shell.setText(BaseMessages.getString(PKG, "FieldsChangeSequenceDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
@@ -241,9 +238,8 @@ public class FieldsChangeSequenceDialog extends BaseTransformDialog implements I
               if (row != null) {
                 // Remember these fields...
                 for (int i = 0; i < row.size(); i++) {
-                  inputFields.put(row.getValueMeta(i).getName(), i);
+                  inputFields.add(row.getValueMeta(i).getName());
                 }
-
                 setComboBoxes();
               }
 
@@ -253,8 +249,8 @@ public class FieldsChangeSequenceDialog extends BaseTransformDialog implements I
                     if (!wFields.isDisposed()) {
                       for (int i = 0; i < wFields.table.getItemCount(); i++) {
                         TableItem it = wFields.table.getItem(i);
-                        if (!Utils.isEmpty(it.getText(1))) {
-                          if (!inputFields.containsKey(it.getText(1))) {
+                        if (!Utils.isEmpty(it.getText(1))) {                         
+                          if (!inputFields.contains(it.getText(1))) {
                             it.setBackground(GuiResource.getInstance().getColorRed());
                           }
                         }
@@ -283,17 +279,7 @@ public class FieldsChangeSequenceDialog extends BaseTransformDialog implements I
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/formula/src/main/java/org/apache/hop/pipeline/transforms/formula/FormulaDialog.java b/plugins/transforms/formula/src/main/java/org/apache/hop/pipeline/transforms/formula/FormulaDialog.java
index 749edf7e11..af8147e65b 100644
--- a/plugins/transforms/formula/src/main/java/org/apache/hop/pipeline/transforms/formula/FormulaDialog.java
+++ b/plugins/transforms/formula/src/main/java/org/apache/hop/pipeline/transforms/formula/FormulaDialog.java
@@ -29,6 +29,7 @@ import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.formula.editor.FormulaEditor;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
 import org.apache.hop.ui.core.widget.ColumnInfo;
@@ -51,10 +52,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class FormulaDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = FormulaDialog.class; // For Translator
@@ -65,7 +63,7 @@ public class FormulaDialog extends BaseTransformDialog implements ITransformDial
   private FormulaMeta currentMeta;
   private FormulaMeta originalMeta;
 
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
   private ColumnInfo[] colinf;
 
   private String[] fieldNames;
@@ -77,7 +75,6 @@ public class FormulaDialog extends BaseTransformDialog implements ITransformDial
     // The order here is important... currentMeta is looked at for changes
     currentMeta = (FormulaMeta) baseTransformMeta;
     originalMeta = (FormulaMeta) currentMeta.clone();
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -101,7 +98,7 @@ public class FormulaDialog extends BaseTransformDialog implements ITransformDial
     shell.setText(BaseMessages.getString(PKG, "FormulaDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     //
@@ -187,7 +184,7 @@ public class FormulaDialog extends BaseTransformDialog implements ITransformDial
 
                   // Remember these fields...
                   for (int i = 0; i < row.size(); i++) {
-                    inputFields.put(row.getValueMeta(i).getName(), new Integer(i));
+                    inputFields.add(row.getValueMeta(i).getName());
                   }
 
                   setComboBoxes();
@@ -282,25 +279,13 @@ public class FormulaDialog extends BaseTransformDialog implements ITransformDial
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
     shell
         .getDisplay()
         .syncExec(
             () -> {
               // Add the newly create fields.
               //
-
-              Set<String> keySet = fields.keySet();
-              List<String> entries = new ArrayList<>(keySet);
-
-              String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-              Const.sortStrings(fieldNames);
-
+              String[] fieldNames = ConstUi.sortFieldNames(inputFields);
               colinf[5].setComboValues(fieldNames);
               FormulaDialog.this.fieldNames = fieldNames;
             });
diff --git a/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchDialog.java b/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchDialog.java
index 761e9c9b7e..7c850e1fd4 100644
--- a/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchDialog.java
+++ b/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchDialog.java
@@ -33,6 +33,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -826,23 +827,15 @@ public class FuzzyMatchDialog extends BaseTransformDialog implements ITransformD
           if (lookupTransformMeta != null) {
             try {
               IRowMeta row = pipelineMeta.getTransformFields(variables, lookupTransformMeta);
-              Map<String, Integer> lookupFields = new HashMap<>();
+              List<String> lookupFields = new ArrayList<>();
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                lookupFields.put(row.getValueMeta(i).getName(), i);
+                lookupFields.add(row.getValueMeta(i).getName());
               }
 
               // Something was changed in the row.
               //
-
-              // Add the currentMeta fields...
-              final Map<String, Integer> fields = new HashMap<>(lookupFields);
-
-              Set<String> keySet = fields.keySet();
-              List<String> entries = new ArrayList<>(keySet);
-
-              String[] fieldNames = entries.toArray(new String[0]);
-              Const.sortStrings(fieldNames);
+              String[] fieldNames = ConstUi.sortFieldNames(lookupFields);
               // return fields
               ciReturn[0].setComboValues(fieldNames);
             } catch (HopException e) {
diff --git a/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByDialog.java b/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByDialog.java
index e45739d0d2..a82e717c1b 100644
--- a/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByDialog.java
+++ b/plugins/transforms/groupby/src/main/java/org/apache/hop/pipeline/transforms/groupby/GroupByDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -49,10 +50,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 import java.util.stream.IntStream;
 
 public class GroupByDialog extends BaseTransformDialog implements ITransformDialog {
@@ -95,13 +93,12 @@ public class GroupByDialog extends BaseTransformDialog implements ITransformDial
 
   private ColumnInfo[] ciReturn;
 
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public GroupByDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (GroupByMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -407,7 +404,7 @@ public class GroupByDialog extends BaseTransformDialog implements ITransformDial
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), Integer.valueOf(i));
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -449,17 +446,7 @@ public class GroupByDialog extends BaseTransformDialog implements ITransformDial
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[0].setComboValues(fieldNames);
     ciReturn[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/HttpDialog.java b/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/HttpDialog.java
index f019dfb91a..82fd337570 100644
--- a/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/HttpDialog.java
+++ b/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/HttpDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -61,10 +62,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class HttpDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = HttpMeta.class; // For Translator
@@ -106,8 +104,8 @@ public class HttpDialog extends BaseTransformDialog implements ITransformDialog
   private ColumnInfo[] colinf;
   private ColumnInfo[] colinfHeaders;
 
-  private final Map<String, Integer> inputFields;
-
+  private final List<String> inputFields = new ArrayList<>();
+  
   private boolean gotEncodings = false;
 
   private TextVar wConnectionTimeOut;
@@ -119,8 +117,7 @@ public class HttpDialog extends BaseTransformDialog implements ITransformDialog
   public HttpDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
-    input = (HttpMeta) in;
-    inputFields = new HashMap<>();
+    input = (HttpMeta) in;  
   }
 
   @Override
@@ -142,7 +139,7 @@ public class HttpDialog extends BaseTransformDialog implements ITransformDialog
     shell.setLayout(formLayout);
     shell.setText(BaseMessages.getString(PKG, "HTTPDialog.Shell.Title"));
 
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     setupButtons();
 
@@ -279,7 +276,7 @@ public class HttpDialog extends BaseTransformDialog implements ITransformDialog
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -961,17 +958,7 @@ public class HttpDialog extends BaseTransformDialog implements ITransformDialog
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
     colinfHeaders[0].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPostDialog.java b/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPostDialog.java
index 3cd2314d7d..0873b5889c 100644
--- a/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPostDialog.java
+++ b/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPostDialog.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -63,10 +64,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class HttpPostDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = HttpPostMeta.class; // For Translator
@@ -112,7 +110,7 @@ public class HttpPostDialog extends BaseTransformDialog implements ITransformDia
 
   private final HttpPostMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
   private ColumnInfo[] colinfquery;
@@ -137,7 +135,6 @@ public class HttpPostDialog extends BaseTransformDialog implements ITransformDia
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (HttpPostMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -302,7 +299,7 @@ public class HttpPostDialog extends BaseTransformDialog implements ITransformDia
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -1019,17 +1016,7 @@ public class HttpPostDialog extends BaseTransformDialog implements ITransformDia
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
     colinfquery[0].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoDialog.java b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoDialog.java
index 4daa7c9091..520b12f9c9 100644
--- a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoDialog.java
+++ b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoDialog.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.widget.ColumnInfo;
@@ -45,10 +46,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class JaninoDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = JaninoMeta.class; // For Translator
@@ -60,7 +58,7 @@ public class JaninoDialog extends BaseTransformDialog implements ITransformDialo
   private final JaninoMeta currentMeta;
   private final JaninoMeta originalMeta;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
   private ColumnInfo[] colinf;
 
   public JaninoDialog(
@@ -70,7 +68,6 @@ public class JaninoDialog extends BaseTransformDialog implements ITransformDialo
     // The order here is important... currentMeta is looked at for changes
     currentMeta = (JaninoMeta) in;
     originalMeta = (JaninoMeta) currentMeta.clone();
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -189,7 +186,7 @@ public class JaninoDialog extends BaseTransformDialog implements ITransformDialo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -216,24 +213,12 @@ public class JaninoDialog extends BaseTransformDialog implements ITransformDialo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
     shell
         .getDisplay()
         .syncExec(
             () -> {
               // Add the newly create fields.
-
-              Set<String> keySet = fields.keySet();
-              List<String> entries = new ArrayList<>(keySet);
-
-              String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-              Const.sortStrings(fieldNames);
-
+              String[] fieldNames = ConstUi.sortFieldNames(inputFields);
               colinf[5].setComboValues(fieldNames);
             });
   }
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutputDialog.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutputDialog.java
index eb229ba64d..b1138a6081 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutputDialog.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutputDialog.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
@@ -63,11 +64,8 @@ import org.eclipse.swt.widgets.Text;
 
 import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
 
 public class JsonOutputDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = JsonOutputMeta.class; // For Translator
@@ -121,13 +119,12 @@ public class JsonOutputDialog extends BaseTransformDialog implements ITransformD
 
   private CCombo wOperation;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public JsonOutputDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (JsonOutputMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -718,7 +715,7 @@ public class JsonOutputDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -769,15 +766,7 @@ public class JsonOutputDialog extends BaseTransformDialog implements ITransformD
 
   protected void setComboBoxes() {
     // Something was changed in the row.
-    // Add the currentMeta fields...
-    final Map<String, Integer> fields = new HashMap<>(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputDialog.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputDialog.java
index 2832ade93e..4a350b0347 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputDialog.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputDialog.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
@@ -64,10 +65,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class JsonOutputDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = JsonOutputMeta.class; // needed by Translator!!
@@ -136,13 +134,12 @@ public class JsonOutputDialog extends BaseTransformDialog implements ITransformD
 
   private Group wSettings;
 
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public JsonOutputDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (JsonOutputMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -443,7 +440,7 @@ public class JsonOutputDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), Integer.valueOf(i));
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setFieldListComboBoxes();
             } catch (HopException e) {
@@ -948,17 +945,7 @@ public class JsonOutputDialog extends BaseTransformDialog implements ITransformD
   protected void setFieldListComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
     keyColInf[0].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapoutput/LdapOutputDialog.java b/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapoutput/LdapOutputDialog.java
index 6cd16cb7d9..f2f93689f9 100644
--- a/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapoutput/LdapOutputDialog.java
+++ b/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapoutput/LdapOutputDialog.java
@@ -33,6 +33,7 @@ import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.ldapinput.LdapConnection;
 import org.apache.hop.pipeline.transforms.ldapinput.LdapProtocol;
 import org.apache.hop.pipeline.transforms.ldapinput.LdapProtocolFactory;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterMappingDialog;
@@ -67,10 +68,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class LdapOutputDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = LdapOutputMeta.class; // For Translator
@@ -103,7 +101,7 @@ public class LdapOutputDialog extends BaseTransformDialog implements ITransformD
   private Label wlDeleteRDN;
   private Button wDeleteRDN;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciReturn;
 
@@ -153,7 +151,6 @@ public class LdapOutputDialog extends BaseTransformDialog implements ITransformD
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (LdapOutputMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -1014,7 +1011,7 @@ public class LdapOutputDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -1302,17 +1299,7 @@ public class LdapOutputDialog extends BaseTransformDialog implements ITransformD
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
-    // return fields
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciReturn[1].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByDialog.java b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByDialog.java
index 0d260405b3..cd13b0c837 100644
--- a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByDialog.java
+++ b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -46,12 +47,8 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
-
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class MemoryGroupByDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = MemoryGroupByMeta.class; // For Translator
@@ -67,13 +64,12 @@ public class MemoryGroupByDialog extends BaseTransformDialog implements ITransfo
   private ColumnInfo[] ciKey;
   private ColumnInfo[] ciReturn;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public MemoryGroupByDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (MemoryGroupByMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -102,7 +98,7 @@ public class MemoryGroupByDialog extends BaseTransformDialog implements ITransfo
     shell.setText(BaseMessages.getString(PKG, "MemoryGroupByDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
@@ -254,10 +250,10 @@ public class MemoryGroupByDialog extends BaseTransformDialog implements ITransfo
           if (transformMeta != null) {
             try {
               IRowMeta row = pipelineMeta.getPrevTransformFields(variables, transformMeta);
-
+              
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -299,17 +295,7 @@ public class MemoryGroupByDialog extends BaseTransformDialog implements ITransfo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[0].setComboValues(fieldNames);
     ciReturn[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoaderDialog.java b/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoaderDialog.java
index ba6a7e6e8c..f687d8bef0 100644
--- a/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoaderDialog.java
+++ b/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoaderDialog.java
@@ -35,6 +35,7 @@ import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -73,10 +74,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class MonetDbBulkLoaderDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG =
@@ -114,7 +112,7 @@ public class MonetDbBulkLoaderDialog extends BaseTransformDialog implements ITra
 
   private ColumnInfo[] ciReturn;
 
-  private final Map<String, Integer> inputFields = new HashMap<>();
+  private final List<String> inputFields = new ArrayList<>();
 
   /** List of ColumnInfo that should have the field names of the selected database table */
   private final List<ColumnInfo> tableFieldColumns = new ArrayList<>();
@@ -754,7 +752,7 @@ public class MonetDbBulkLoaderDialog extends BaseTransformDialog implements ITra
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -922,16 +920,7 @@ public class MonetDbBulkLoaderDialog extends BaseTransformDialog implements ITra
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     // return fields
     if (ciReturn != null) {
       ciReturn[1].setComboValues(fieldNames);
diff --git a/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbdelete/MongoDbDeleteDialog.java b/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbdelete/MongoDbDeleteDialog.java
index ec887c8943..8b751f3808 100644
--- a/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbdelete/MongoDbDeleteDialog.java
+++ b/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbdelete/MongoDbDeleteDialog.java
@@ -37,6 +37,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -69,9 +70,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 /** Dialog class for MongoDbDelete step */
@@ -97,7 +96,7 @@ public class MongoDbDeleteDialog extends BaseTransformDialog implements ITransfo
   private Label wlExecuteForEachRow;
   private Button wcbEcuteForEachRow;
   private ColumnInfo[] colInf;
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public MongoDbDeleteDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String name) {
@@ -105,7 +104,6 @@ public class MongoDbDeleteDialog extends BaseTransformDialog implements ITransfo
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, name);
     currentMeta = (MongoDbDeleteMeta) in;
     originalMeta = (MongoDbDeleteMeta) currentMeta.clone();
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -369,7 +367,7 @@ public class MongoDbDeleteDialog extends BaseTransformDialog implements ITransfo
 
                 // Remember these fields...
                 for (int i = 0; i < row.size(); i++) {
-                  inputFields.put(row.getValueMeta(i).getName(), Integer.valueOf(i));
+                  inputFields.add(row.getValueMeta(i).getName());
                 }
 
                 setComboBoxes();
@@ -693,16 +691,7 @@ public class MongoDbDeleteDialog extends BaseTransformDialog implements ITransfo
   }
 
   protected void setComboBoxes() {
-    final Map<String, Integer> fields = new HashMap<>();
-
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String fieldNames[] = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colInf[2].setComboValues(fieldNames);
     colInf[2].setReadOnly(false);
     colInf[3].setComboValues(fieldNames);
diff --git a/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinDialog.java b/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinDialog.java
index 4070f23473..8f077341a4 100644
--- a/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinDialog.java
+++ b/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinDialog.java
@@ -32,6 +32,7 @@ import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
 import org.apache.hop.pipeline.transform.stream.StreamIcon;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.MessageDialogWithToggle;
@@ -56,10 +57,8 @@ import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
+
 
 public class MultiMergeJoinDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = MultiMergeJoinMeta.class; // For Translator
@@ -70,11 +69,11 @@ public class MultiMergeJoinDialog extends BaseTransformDialog implements ITransf
   private CCombo joinTypeCombo;
   private final Text[] keyValTextBox;
 
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
   private IRowMeta prev;
   private ColumnInfo[] ciKeys;
 
-  private final int margin = props.getMargin();
+  private final int margin = PropsUi.getMargin();
   private final int middle = props.getMiddlePct();
 
   private final MultiMergeJoinMeta joinMeta;
@@ -289,7 +288,6 @@ public class MultiMergeJoinDialog extends BaseTransformDialog implements ITransf
    */
   private void configureKeys(
       final Text keyValTextBox, final int inputStreamIndex, ModifyListener lsMod) {
-    inputFields = new HashMap<>();
 
     final Shell subShell = new Shell(shell, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX);
     final FormLayout formLayout = new FormLayout();
@@ -351,7 +349,7 @@ public class MultiMergeJoinDialog extends BaseTransformDialog implements ITransf
               if (prev != null) {
                 // Remember these fields...
                 for (int i = 0; i < prev.size(); i++) {
-                  inputFields.put(prev.getValueMeta(i).getName(), Integer.valueOf(i));
+                  inputFields.add(prev.getValueMeta(i).getName());
                 }
                 setComboBoxes();
               }
@@ -411,17 +409,7 @@ public class MultiMergeJoinDialog extends BaseTransformDialog implements ITransf
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKeys[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserDialog.java b/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserDialog.java
index 9af48ade9b..4741e05dbd 100644
--- a/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserDialog.java
+++ b/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserDialog.java
@@ -17,7 +17,6 @@
 
 package org.apache.hop.pipeline.transforms.normaliser;
 
-import org.apache.hop.core.Const;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.util.Utils;
@@ -27,6 +26,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -45,10 +45,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class NormaliserDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = NormaliserMeta.class; // For Translator
@@ -67,13 +64,12 @@ public class NormaliserDialog extends BaseTransformDialog implements ITransformD
 
   private ColumnInfo[] colinf;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public NormaliserDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (NormaliserMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -204,7 +200,7 @@ public class NormaliserDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -224,17 +220,7 @@ public class NormaliserDialog extends BaseTransformDialog implements ITransformD
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/nullif/src/main/java/org/apache/hop/pipeline/transforms/nullif/NullIfDialog.java b/plugins/transforms/nullif/src/main/java/org/apache/hop/pipeline/transforms/nullif/NullIfDialog.java
index b24982ba79..bb9188fdee 100644
--- a/plugins/transforms/nullif/src/main/java/org/apache/hop/pipeline/transforms/nullif/NullIfDialog.java
+++ b/plugins/transforms/nullif/src/main/java/org/apache/hop/pipeline/transforms/nullif/NullIfDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -45,10 +46,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class NullIfDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = NullIfMeta.class; // For Translator
@@ -61,13 +59,12 @@ public class NullIfDialog extends BaseTransformDialog implements ITransformDialo
 
   private ColumnInfo[] colinf;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   public NullIfDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (NullIfMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -176,7 +173,7 @@ public class NullIfDialog extends BaseTransformDialog implements ITransformDialo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -197,17 +194,7 @@ public class NullIfDialog extends BaseTransformDialog implements ITransformDialo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/orabulkloader/src/main/java/org/apache/hop/pipeline/transforms/orabulkloader/OraBulkLoaderDialog.java b/plugins/transforms/orabulkloader/src/main/java/org/apache/hop/pipeline/transforms/orabulkloader/OraBulkLoaderDialog.java
index 3ae12b3653..f75365f4bf 100644
--- a/plugins/transforms/orabulkloader/src/main/java/org/apache/hop/pipeline/transforms/orabulkloader/OraBulkLoaderDialog.java
+++ b/plugins/transforms/orabulkloader/src/main/java/org/apache/hop/pipeline/transforms/orabulkloader/OraBulkLoaderDialog.java
@@ -34,6 +34,7 @@ import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -69,11 +70,7 @@ import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 
 /**
  * Dialog class for the Oracle bulk loader transformation.
@@ -108,7 +105,7 @@ public class OraBulkLoaderDialog  extends BaseTransformDialog implements ITransf
   
   private OraBulkLoaderMeta input;
 
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciReturn;
   private CTabFolder wTabFolder;
@@ -133,7 +130,6 @@ public class OraBulkLoaderDialog  extends BaseTransformDialog implements ITransf
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (OraBulkLoaderMeta) in;
-    inputFields = new HashMap<String, Integer>();
   }
 
   public String open() {
@@ -817,7 +813,7 @@ public class OraBulkLoaderDialog  extends BaseTransformDialog implements ITransf
 
             // Remember these fields...
             for ( int i = 0; i < row.size(); i++ ) {
-              inputFields.put( row.getValueMeta( i ).getName(), i );
+              inputFields.add(row.getValueMeta(i).getName());
             }
 
             setComboBoxes();
@@ -926,17 +922,7 @@ public class OraBulkLoaderDialog  extends BaseTransformDialog implements ITransf
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<String, Integer>();
-
-    // Add the currentMeta fields...
-    fields.putAll( inputFields );
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<String>( keySet );
-
-    String[] fieldNames = entries.toArray( new String[entries.size()] );
-    Const.sortStrings( fieldNames );
-    // return fields
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciReturn[1].setComboValues( fieldNames );
   }
 
diff --git a/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderDialog.java b/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderDialog.java
index 42793c2a7d..d6673855a4 100644
--- a/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderDialog.java
+++ b/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderDialog.java
@@ -35,6 +35,7 @@ import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -66,10 +67,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class PGBulkLoaderDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = PGBulkLoaderMeta.class; // For Translator
@@ -96,7 +94,7 @@ public class PGBulkLoaderDialog extends BaseTransformDialog implements ITransfor
 
   private ColumnInfo[] ciReturn;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   /** List of ColumnInfo that should have the field names of the selected database table */
   private final List<ColumnInfo> tableFieldColumns = new ArrayList<>();
@@ -111,7 +109,6 @@ public class PGBulkLoaderDialog extends BaseTransformDialog implements ITransfor
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (PGBulkLoaderMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -412,7 +409,7 @@ public class PGBulkLoaderDialog extends BaseTransformDialog implements ITransfor
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -517,16 +514,7 @@ public class PGBulkLoaderDialog extends BaseTransformDialog implements ITransfor
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     // return fields
     ciReturn[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringDialog.java b/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringDialog.java
index 8b927e6c43..c941ec83db 100644
--- a/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringDialog.java
+++ b/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -46,10 +47,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 /** Search and replace in string. */
 public class ReplaceStringDialog extends BaseTransformDialog implements ITransformDialog {
@@ -59,7 +57,7 @@ public class ReplaceStringDialog extends BaseTransformDialog implements ITransfo
 
   private final ReplaceStringMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciKey;
 
@@ -67,7 +65,6 @@ public class ReplaceStringDialog extends BaseTransformDialog implements ITransfo
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (ReplaceStringMeta) in, tr, sname);
     input = (ReplaceStringMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -230,7 +227,7 @@ public class ReplaceStringDialog extends BaseTransformDialog implements ITransfo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -252,16 +249,7 @@ public class ReplaceStringDialog extends BaseTransformDialog implements ITransfo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-
-    // Add the currentMeta fields...
-    final Map<String, Integer> fields = new HashMap<>(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[0]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[0].setComboValues(fieldNames);
     ciKey[6].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/rest/src/main/java/org/apache/hop/pipeline/transforms/rest/RestDialog.java b/plugins/transforms/rest/src/main/java/org/apache/hop/pipeline/transforms/rest/RestDialog.java
index 9528457f2e..47283569f9 100644
--- a/plugins/transforms/rest/src/main/java/org/apache/hop/pipeline/transforms/rest/RestDialog.java
+++ b/plugins/transforms/rest/src/main/java/org/apache/hop/pipeline/transforms/rest/RestDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -59,10 +60,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class RestDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = RestMeta.class; // For Translator
@@ -95,7 +93,7 @@ public class RestDialog extends BaseTransformDialog implements ITransformDialog
 
   private final RestMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private Label wlBody;
   private ComboVar wBody;
@@ -137,7 +135,6 @@ public class RestDialog extends BaseTransformDialog implements ITransformDialog
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (RestMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -428,7 +425,7 @@ public class RestDialog extends BaseTransformDialog implements ITransformDialog
 
                 // Remember these fields...
                 for (int i = 0; i < row.size(); i++) {
-                  inputFields.put(row.getValueMeta(i).getName(), i);
+                  inputFields.add(row.getValueMeta(i).getName());
                 }
 
                 setComboBoxes();
@@ -1275,17 +1272,7 @@ public class RestDialog extends BaseTransformDialog implements ITransformDialog
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinfoparams[0].setComboValues(fieldNames);
     colinf[0].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java
index a0e4fbac9f..9f045c8e0c 100644
--- a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java
+++ b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateDialog.java
@@ -34,6 +34,7 @@ import org.apache.hop.pipeline.transforms.salesforce.SalesforceConnection;
 import org.apache.hop.pipeline.transforms.salesforce.SalesforceConnectionUtils;
 import org.apache.hop.pipeline.transforms.salesforce.SalesforceTransformDialog;
 import org.apache.hop.pipeline.transforms.salesforce.SalesforceTransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterMappingDialog;
@@ -70,16 +71,13 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class SalesforceUpdateDialog extends SalesforceTransformDialog {
 
   private static final Class<?> PKG = SalesforceUpdateMeta.class; // For Translator
 
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciReturn;
 
@@ -114,7 +112,6 @@ public class SalesforceUpdateDialog extends SalesforceTransformDialog {
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, in, pipelineMeta, sname);
     input = (SalesforceUpdateMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -492,7 +489,7 @@ public class SalesforceUpdateDialog extends SalesforceTransformDialog {
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), Integer.valueOf(i));
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -504,7 +501,7 @@ public class SalesforceUpdateDialog extends SalesforceTransformDialog {
                           for (int i = 0; i < wReturn.table.getItemCount(); i++) {
                             TableItem it = wReturn.table.getItem(i);
                             if (!Utils.isEmpty(it.getText(2))) {
-                              if (!inputFields.containsKey(it.getText(2))) {
+                              if (!inputFields.contains(it.getText(2))) {
                                 it.setBackground(GuiResource.getInstance().getColorRed());
                               }
                             }
@@ -881,16 +878,7 @@ public class SalesforceUpdateDialog extends SalesforceTransformDialog {
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     // return fields
     ciReturn[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java
index b609b2fd98..ec4587a057 100644
--- a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java
+++ b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertDialog.java
@@ -1015,7 +1015,9 @@ public class SalesforceUpsertDialog extends SalesforceTransformDialog {
     List<String> entries = new ArrayList<>(keySet);
 
     String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
+    if ( PropsUi.getInstance().isSortFieldByName() ) {
+      Const.sortStrings(fieldNames);
+    }
     // return fields
     ciReturn[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesDialog.java b/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesDialog.java
index 9fa55ed845..214705358a 100644
--- a/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesDialog.java
+++ b/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesDialog.java
@@ -132,7 +132,7 @@ public class SelectValuesDialog extends BaseTransformDialog implements ITransfor
     shell.setText(BaseMessages.getString(PKG, "SelectValuesDialog.Shell.Label"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
@@ -961,7 +961,9 @@ public class SelectValuesDialog extends BaseTransformDialog implements ITransfor
 
     String[] fieldNames = entries.toArray(new String[entries.size()]);
 
-    Const.sortStrings(fieldNames);
+    if ( PropsUi.getInstance().isSortFieldByName() ) {
+      Const.sortStrings(fieldNames);
+    }
 
     bPreviousFieldsLoaded = true;
     for (ColumnInfo colInfo : fieldColumns) {
diff --git a/plugins/transforms/setvalueconstant/src/main/java/org/apache/hop/pipeline/transforms/setvalueconstant/SetValueConstantDialog.java b/plugins/transforms/setvalueconstant/src/main/java/org/apache/hop/pipeline/transforms/setvalueconstant/SetValueConstantDialog.java
index e610c0f227..6ba8afd42a 100644
--- a/plugins/transforms/setvalueconstant/src/main/java/org/apache/hop/pipeline/transforms/setvalueconstant/SetValueConstantDialog.java
+++ b/plugins/transforms/setvalueconstant/src/main/java/org/apache/hop/pipeline/transforms/setvalueconstant/SetValueConstantDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -47,10 +48,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class SetValueConstantDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = SetValueConstantMeta.class; // For Translator
@@ -58,7 +56,7 @@ public class SetValueConstantDialog extends BaseTransformDialog implements ITran
   private final SetValueConstantMeta input;
 
   /** all fields from the previous transforms */
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private TableView wFields;
 
@@ -70,7 +68,6 @@ public class SetValueConstantDialog extends BaseTransformDialog implements ITran
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (SetValueConstantMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -211,7 +208,7 @@ public class SetValueConstantDialog extends BaseTransformDialog implements ITran
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -232,17 +229,7 @@ public class SetValueConstantDialog extends BaseTransformDialog implements ITran
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java
index 4ac2c849b5..8cb9829686 100644
--- a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java
+++ b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -45,10 +46,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class SetValueFieldDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = SetValueFieldMeta.class; // For Translator
@@ -59,7 +57,7 @@ public class SetValueFieldDialog extends BaseTransformDialog implements ITransfo
 
   private final SetValueFieldMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
 
@@ -67,7 +65,6 @@ public class SetValueFieldDialog extends BaseTransformDialog implements ITransfo
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (SetValueFieldMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -176,7 +173,7 @@ public class SetValueFieldDialog extends BaseTransformDialog implements ITransfo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -200,17 +197,7 @@ public class SetValueFieldDialog extends BaseTransformDialog implements ITransfo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
     colinf[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/setvariable/src/main/java/org/apache/hop/pipeline/transforms/setvariable/SetVariableDialog.java b/plugins/transforms/setvariable/src/main/java/org/apache/hop/pipeline/transforms/setvariable/SetVariableDialog.java
index 76bd15ed43..76ba05d03a 100644
--- a/plugins/transforms/setvariable/src/main/java/org/apache/hop/pipeline/transforms/setvariable/SetVariableDialog.java
+++ b/plugins/transforms/setvariable/src/main/java/org/apache/hop/pipeline/transforms/setvariable/SetVariableDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -47,10 +48,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class SetVariableDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = SetVariableMeta.class; // For Translator
@@ -65,7 +63,7 @@ public class SetVariableDialog extends BaseTransformDialog implements ITransform
 
   private final SetVariableMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
 
@@ -73,7 +71,6 @@ public class SetVariableDialog extends BaseTransformDialog implements ITransform
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (SetVariableMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -210,7 +207,7 @@ public class SetVariableDialog extends BaseTransformDialog implements ITransform
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -231,17 +228,7 @@ public class SetVariableDialog extends BaseTransformDialog implements ITransform
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/snowflake/src/main/java/org/apache/hop/pipeline/transforms/snowflake/bulkloader/SnowflakeBulkLoaderDialog.java b/plugins/transforms/snowflake/src/main/java/org/apache/hop/pipeline/transforms/snowflake/bulkloader/SnowflakeBulkLoaderDialog.java
index 729d294216..0ca5d3b678 100644
--- a/plugins/transforms/snowflake/src/main/java/org/apache/hop/pipeline/transforms/snowflake/bulkloader/SnowflakeBulkLoaderDialog.java
+++ b/plugins/transforms/snowflake/src/main/java/org/apache/hop/pipeline/transforms/snowflake/bulkloader/SnowflakeBulkLoaderDialog.java
@@ -37,6 +37,7 @@ import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -238,7 +239,7 @@ public class SnowflakeBulkLoaderDialog extends BaseTransformDialog implements IT
   private Link wDevelopedBy;
   private FormData fdDevelopedBy;
 
-  private Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private Display display;
 
@@ -250,7 +251,6 @@ public class SnowflakeBulkLoaderDialog extends BaseTransformDialog implements IT
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (SnowflakeBulkLoaderMeta) in;
-    inputFields = new HashMap<>();
     this.pipelineMeta = pipelineMeta;
   }
 
@@ -1075,7 +1075,7 @@ public class SnowflakeBulkLoaderDialog extends BaseTransformDialog implements IT
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -1168,17 +1168,7 @@ public class SnowflakeBulkLoaderDialog extends BaseTransformDialog implements IT
   private void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/sort/src/main/java/org/apache/hop/pipeline/transforms/sort/SortRowsDialog.java b/plugins/transforms/sort/src/main/java/org/apache/hop/pipeline/transforms/sort/SortRowsDialog.java
index 0e6e42efc0..59b8810ec8 100644
--- a/plugins/transforms/sort/src/main/java/org/apache/hop/pipeline/transforms/sort/SortRowsDialog.java
+++ b/plugins/transforms/sort/src/main/java/org/apache/hop/pipeline/transforms/sort/SortRowsDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -53,10 +54,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class SortRowsDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = SortRowsMeta.class; // For Translator
@@ -76,14 +74,13 @@ public class SortRowsDialog extends BaseTransformDialog implements ITransformDia
   private TableView wFields;
 
   private final SortRowsMeta input;
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
   private ColumnInfo[] colinf;
 
   public SortRowsDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (SortRowsMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -359,7 +356,7 @@ public class SortRowsDialog extends BaseTransformDialog implements ITransformDia
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -389,17 +386,7 @@ public class SortRowsDialog extends BaseTransformDialog implements ITransformDia
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/sortedmerge/src/main/java/org/apache/hop/pipeline/transforms/sortedmerge/SortedMergeDialog.java b/plugins/transforms/sortedmerge/src/main/java/org/apache/hop/pipeline/transforms/sortedmerge/SortedMergeDialog.java
index d1410bb8a5..845a8ef5e4 100644
--- a/plugins/transforms/sortedmerge/src/main/java/org/apache/hop/pipeline/transforms/sortedmerge/SortedMergeDialog.java
+++ b/plugins/transforms/sortedmerge/src/main/java/org/apache/hop/pipeline/transforms/sortedmerge/SortedMergeDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -47,10 +48,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class SortedMergeDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = SortedMergeMeta.class; // For Translator
@@ -61,7 +59,7 @@ public class SortedMergeDialog extends BaseTransformDialog implements ITransform
 
   private final SortedMergeMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
 
@@ -69,7 +67,6 @@ public class SortedMergeDialog extends BaseTransformDialog implements ITransform
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (SortedMergeMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -178,7 +175,7 @@ public class SortedMergeDialog extends BaseTransformDialog implements ITransform
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -204,17 +201,7 @@ public class SortedMergeDialog extends BaseTransformDialog implements ITransform
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSqlDialog.java b/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSqlDialog.java
index 235869e794..4dd05ac2f3 100644
--- a/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSqlDialog.java
+++ b/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSqlDialog.java
@@ -29,6 +29,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -62,10 +63,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class ExecSqlDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = ExecSqlMeta.class; // For Translator
@@ -103,7 +101,7 @@ public class ExecSqlDialog extends BaseTransformDialog implements ITransformDial
 
   private Label wlPosition;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
 
@@ -111,7 +109,6 @@ public class ExecSqlDialog extends BaseTransformDialog implements ITransformDial
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (ExecSqlMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -522,7 +519,7 @@ public class ExecSqlDialog extends BaseTransformDialog implements ITransformDial
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -588,17 +585,7 @@ public class ExecSqlDialog extends BaseTransformDialog implements ITransformDial
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCutDialog.java b/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCutDialog.java
index d9b1826bcd..ccc6a18834 100644
--- a/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCutDialog.java
+++ b/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCutDialog.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -47,10 +48,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class StringCutDialog extends BaseTransformDialog implements ITransformDialog {
 
@@ -60,7 +58,7 @@ public class StringCutDialog extends BaseTransformDialog implements ITransformDi
 
   private final StringCutMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciKey;
 
@@ -68,7 +66,6 @@ public class StringCutDialog extends BaseTransformDialog implements ITransformDi
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (StringCutMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -192,7 +189,7 @@ public class StringCutDialog extends BaseTransformDialog implements ITransformDi
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -214,17 +211,7 @@ public class StringCutDialog extends BaseTransformDialog implements ITransformDi
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsDialog.java b/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsDialog.java
index 2fa19f6b66..43d3eceace 100644
--- a/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsDialog.java
+++ b/plugins/transforms/stringoperations/src/main/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsDialog.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -49,10 +50,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class StringOperationsDialog extends BaseTransformDialog implements ITransformDialog {
 
@@ -63,7 +61,7 @@ public class StringOperationsDialog extends BaseTransformDialog implements ITran
   private final StringOperationsMeta input;
 
   // holds the names of the fields entering this transform
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciKey;
 
@@ -71,7 +69,6 @@ public class StringOperationsDialog extends BaseTransformDialog implements ITran
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (StringOperationsMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -242,7 +239,7 @@ public class StringOperationsDialog extends BaseTransformDialog implements ITran
               if (row != null) {
                 // Remember these fields...
                 for (int i = 0; i < row.size(); i++) {
-                  inputFields.put(row.getValueMeta(i).getName(), i);
+                  inputFields.add(row.getValueMeta(i).getName());
                 }
 
                 setComboBoxes();
@@ -255,7 +252,7 @@ public class StringOperationsDialog extends BaseTransformDialog implements ITran
                       for (int i = 0; i < wFields.table.getItemCount(); i++) {
                         TableItem it = wFields.table.getItem(i);
                         if (!Utils.isEmpty(it.getText(1))) {
-                          if (!inputFields.containsKey(it.getText(1))) {
+                          if (!inputFields.contains(it.getText(1))) {
                             it.setBackground(GuiResource.getInstance().getColorRed());
                           }
                         }
@@ -278,10 +275,7 @@ public class StringOperationsDialog extends BaseTransformDialog implements ITran
   }
 
   protected void setComboBoxes() {
-    Set<String> keySet = inputFields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/synchronizeaftermerge/src/main/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeDialog.java b/plugins/transforms/synchronizeaftermerge/src/main/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeDialog.java
index 325cc5a2d3..831d63cdaa 100644
--- a/plugins/transforms/synchronizeaftermerge/src/main/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeDialog.java
+++ b/plugins/transforms/synchronizeaftermerge/src/main/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeDialog.java
@@ -36,6 +36,7 @@ import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -74,10 +75,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class SynchronizeAfterMergeDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = SynchronizeAfterMergeMeta.class; // For Translator
@@ -115,7 +113,7 @@ public class SynchronizeAfterMergeDialog extends BaseTransformDialog implements
 
   private final SynchronizeAfterMergeMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciKey;
 
@@ -130,7 +128,6 @@ public class SynchronizeAfterMergeDialog extends BaseTransformDialog implements
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (SynchronizeAfterMergeMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -525,7 +522,7 @@ public class SynchronizeAfterMergeDialog extends BaseTransformDialog implements
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -974,17 +971,7 @@ public class SynchronizeAfterMergeDialog extends BaseTransformDialog implements
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciKey[2].setComboValues(fieldNames);
     ciKey[3].setComboValues(fieldNames);
     ciReturn[1].setComboValues(fieldNames);
diff --git a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputDialog.java b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputDialog.java
index e95e4964ef..d6857e4d22 100644
--- a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputDialog.java
+++ b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputDialog.java
@@ -39,6 +39,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -76,10 +77,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class TableOutputDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = TableOutputMeta.class; // For Translator
@@ -138,7 +136,7 @@ public class TableOutputDialog extends BaseTransformDialog implements ITransform
 
   private final TableOutputMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] ciFields;
 
@@ -154,7 +152,6 @@ public class TableOutputDialog extends BaseTransformDialog implements ITransform
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (TableOutputMeta) in;
-    inputFields = new HashMap<>();
   }
 
   /** Open the dialog. */
@@ -792,7 +789,7 @@ public class TableOutputDialog extends BaseTransformDialog implements ITransform
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -1152,17 +1149,7 @@ public class TableOutputDialog extends BaseTransformDialog implements ITransform
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     ciFields[1].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFastDialog.java b/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFastDialog.java
index 3003fdebc9..ccbb45fb0c 100644
--- a/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFastDialog.java
+++ b/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFastDialog.java
@@ -31,6 +31,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.SimpleFileSelection;
 import org.apache.hop.ui.core.dialog.BaseDialog;
@@ -60,11 +61,7 @@ import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.TableItem;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 public class TeraFastDialog extends BaseTransformDialog implements ITransformDialog {
 
   private static final Class<?> PKG = TeraFastMeta.class; // For Translator
@@ -113,7 +110,7 @@ public class TeraFastDialog extends BaseTransformDialog implements ITransformDia
 
   private ColumnInfo[] ciReturn;
 
-  private final Map<String, Integer> inputFields = new HashMap<>();
+  private final List<String> inputFields = new ArrayList<>();
 
   /** List of ColumnInfo that should have the field names of the selected database table. */
   private final List<ColumnInfo> tableFieldColumns = new ArrayList<>();
@@ -198,7 +195,7 @@ public class TeraFastDialog extends BaseTransformDialog implements ITransformDia
 
             // Remember these fields...
             for (int i = 0; i < row.size(); i++) {
-              TeraFastDialog.this.inputFields.put(row.getValueMeta(i).getName(), i);
+              inputFields.add(row.getValueMeta(i).getName());
             }
 
             setComboBoxes();
@@ -222,16 +219,7 @@ public class TeraFastDialog extends BaseTransformDialog implements ITransformDia
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(this.inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     // return fields
     this.ciReturn[1].setComboValues(fieldNames);
   }
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java
index c4978ee0da..039c6c55d7 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputDialog.java
@@ -32,6 +32,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
@@ -68,10 +69,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class TextFileOutputDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = TextFileOutputMeta.class; // For Translator
@@ -158,7 +156,7 @@ public class TextFileOutputDialog extends BaseTransformDialog implements ITransf
 
   private ColumnInfo[] colinf;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private boolean gotPreviousFields = false;
 
@@ -166,7 +164,6 @@ public class TextFileOutputDialog extends BaseTransformDialog implements ITransf
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (TextFileOutputMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -1134,7 +1131,7 @@ public class TextFileOutputDialog extends BaseTransformDialog implements ITransf
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), Integer.valueOf(i));
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -1292,17 +1289,7 @@ public class TextFileOutputDialog extends BaseTransformDialog implements ITransf
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/tokenreplacement/src/main/java/org/apache/hop/pipeline/transforms/tokenreplacement/TokenReplacementDialog.java b/plugins/transforms/tokenreplacement/src/main/java/org/apache/hop/pipeline/transforms/tokenreplacement/TokenReplacementDialog.java
index 5e06483de5..0440e55b77 100644
--- a/plugins/transforms/tokenreplacement/src/main/java/org/apache/hop/pipeline/transforms/tokenreplacement/TokenReplacementDialog.java
+++ b/plugins/transforms/tokenreplacement/src/main/java/org/apache/hop/pipeline/transforms/tokenreplacement/TokenReplacementDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -60,10 +61,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class TokenReplacementDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = TokenReplacementMeta.class; // For Translator
@@ -153,7 +151,7 @@ public class TokenReplacementDialog extends BaseTransformDialog implements ITran
 
   private final TokenReplacementMeta input;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private boolean gotPreviousFields = false;
 
@@ -163,7 +161,6 @@ public class TokenReplacementDialog extends BaseTransformDialog implements ITran
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (TokenReplacementMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -1153,7 +1150,7 @@ public class TokenReplacementDialog extends BaseTransformDialog implements ITran
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -1400,17 +1397,7 @@ public class TokenReplacementDialog extends BaseTransformDialog implements ITran
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[1].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRowsDialog.java b/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRowsDialog.java
index 1916a705fd..38cb8938af 100644
--- a/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRowsDialog.java
+++ b/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRowsDialog.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -49,10 +50,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 import java.util.stream.IntStream;
 
 public class UniqueRowsDialog extends BaseTransformDialog implements ITransformDialog {
@@ -71,7 +69,7 @@ public class UniqueRowsDialog extends BaseTransformDialog implements ITransformD
 
   private ColumnInfo[] colinf;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private Button wRejectDuplicateRow;
 
@@ -82,7 +80,6 @@ public class UniqueRowsDialog extends BaseTransformDialog implements ITransformD
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (UniqueRowsMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -288,7 +285,7 @@ public class UniqueRowsDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -319,17 +316,7 @@ public class UniqueRowsDialog extends BaseTransformDialog implements ITransformD
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSetDialog.java b/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSetDialog.java
index fa9c57d4f9..ff9d2acb3f 100644
--- a/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSetDialog.java
+++ b/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSetDialog.java
@@ -27,6 +27,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -49,10 +50,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class UniqueRowsByHashSetDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = UniqueRowsByHashSetMeta.class; // For Translator
@@ -63,7 +61,7 @@ public class UniqueRowsByHashSetDialog extends BaseTransformDialog implements IT
 
   private Button wStoreValues;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
 
@@ -76,7 +74,6 @@ public class UniqueRowsByHashSetDialog extends BaseTransformDialog implements IT
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (UniqueRowsByHashSetMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -269,7 +266,7 @@ public class UniqueRowsByHashSetDialog extends BaseTransformDialog implements IT
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -301,17 +298,7 @@ public class UniqueRowsByHashSetDialog extends BaseTransformDialog implements IT
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateDialog.java b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateDialog.java
index 69db3e9f44..bb8708762d 100644
--- a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateDialog.java
+++ b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateDialog.java
@@ -32,6 +32,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.database.dialog.SqlEditor;
@@ -60,10 +61,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class UpdateDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = UpdateMeta.class; // For Translator
@@ -94,7 +92,7 @@ public class UpdateDialog extends BaseTransformDialog implements ITransformDialo
 
   private ColumnInfo[] ciReturn;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private Button wSkipLookup;
 
@@ -105,7 +103,6 @@ public class UpdateDialog extends BaseTransformDialog implements ITransformDialo
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (UpdateMeta) in;
-    inputFields = new HashMap<>();
   }
 
   public String open() {
@@ -479,7 +476,7 @@ public class UpdateDialog extends BaseTransformDialog implements ITransformDialo
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
 
               setComboBoxes();
@@ -536,16 +533,7 @@ public class UpdateDialog extends BaseTransformDialog implements ITransformDialo
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     // Key fields
     ciKey[2].setComboValues(fieldNames);
     ciKey[3].setComboValues(fieldNames);
diff --git a/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoaderDialog.java b/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoaderDialog.java
index 8bdee5a96e..803d323e20 100644
--- a/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoaderDialog.java
+++ b/plugins/transforms/verticabulkloader/src/main/java/org/apache/hop/pipeline/transforms/vertica/bulkloader/VerticaBulkLoaderDialog.java
@@ -847,7 +847,9 @@ public class VerticaBulkLoaderDialog extends BaseTransformDialog implements ITra
 
     String[] fieldNames = (String[]) entries.toArray(new String[entries.size()]);
 
-    Const.sortStrings(fieldNames);
+    if ( PropsUi.getInstance().isSortFieldByName() ) {
+      Const.sortStrings(fieldNames);
+    }
     ciFields[1].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/writetolog/src/main/java/org/apache/hop/pipeline/transforms/writetolog/WriteToLogDialog.java b/plugins/transforms/writetolog/src/main/java/org/apache/hop/pipeline/transforms/writetolog/WriteToLogDialog.java
index 5a27763fa7..b2824095c4 100644
--- a/plugins/transforms/writetolog/src/main/java/org/apache/hop/pipeline/transforms/writetolog/WriteToLogDialog.java
+++ b/plugins/transforms/writetolog/src/main/java/org/apache/hop/pipeline/transforms/writetolog/WriteToLogDialog.java
@@ -29,6 +29,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
@@ -53,10 +54,7 @@ import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class WriteToLogDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = WriteToLogDialog.class; // For Translator
@@ -76,7 +74,7 @@ public class WriteToLogDialog extends BaseTransformDialog implements ITransformD
   Label wlLimitRowsNumber;
   private Text wLimitRowsNumber;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
 
   private ColumnInfo[] colinf;
 
@@ -84,7 +82,6 @@ public class WriteToLogDialog extends BaseTransformDialog implements ITransformD
       Shell parent, IVariables variables, Object in, PipelineMeta tr, String sname) {
     super(parent, variables, (BaseTransformMeta) in, tr, sname);
     input = (WriteToLogMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -124,7 +121,7 @@ public class WriteToLogDialog extends BaseTransformDialog implements ITransformD
     shell.setText(BaseMessages.getString(PKG, "WriteToLogDialog.Shell.Title"));
 
     int middle = props.getMiddlePct();
-    int margin = props.getMargin();
+    int margin = PropsUi.getMargin();
 
     // TransformName line
     wlTransformName = new Label(shell, SWT.RIGHT);
@@ -302,7 +299,7 @@ public class WriteToLogDialog extends BaseTransformDialog implements ITransformD
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -328,17 +325,7 @@ public class WriteToLogDialog extends BaseTransformDialog implements ITransformD
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputDialog.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputDialog.java
index 9a8baa8172..5c4db95bea 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputDialog.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputDialog.java
@@ -30,6 +30,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
@@ -64,10 +65,7 @@ import org.eclipse.swt.widgets.Text;
 
 import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public class XmlOutputDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = XmlOutputMeta.class; // For Translator
@@ -115,13 +113,13 @@ public class XmlOutputDialog extends BaseTransformDialog implements ITransformDi
 
   private ColumnInfo[] colinf;
 
-  private final Map<String, Integer> inputFields;
+  private final List<String> inputFields = new ArrayList<>();
+
 
   public XmlOutputDialog(
       Shell parent, IVariables variables, Object in, PipelineMeta pipelineMeta, String sname) {
     super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
     input = (XmlOutputMeta) in;
-    inputFields = new HashMap<>();
   }
 
   @Override
@@ -747,7 +745,7 @@ public class XmlOutputDialog extends BaseTransformDialog implements ITransformDi
 
               // Remember these fields...
               for (int i = 0; i < row.size(); i++) {
-                inputFields.put(row.getValueMeta(i).getName(), i);
+                inputFields.add(row.getValueMeta(i).getName());
               }
               setComboBoxes();
             } catch (HopException e) {
@@ -1102,17 +1100,7 @@ public class XmlOutputDialog extends BaseTransformDialog implements ITransformDi
   protected void setComboBoxes() {
     // Something was changed in the row.
     //
-    final Map<String, Integer> fields = new HashMap<>();
-
-    // Add the currentMeta fields...
-    fields.putAll(inputFields);
-
-    Set<String> keySet = fields.keySet();
-    List<String> entries = new ArrayList<>(keySet);
-
-    String[] fieldNames = entries.toArray(new String[entries.size()]);
-
-    Const.sortStrings(fieldNames);
+    String[] fieldNames = ConstUi.sortFieldNames(inputFields);
     colinf[0].setComboValues(fieldNames);
   }
 }
diff --git a/ui/src/main/java/org/apache/hop/ui/core/ConstUi.java b/ui/src/main/java/org/apache/hop/ui/core/ConstUi.java
index ac1388fac0..8be63abe5c 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/ConstUi.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/ConstUi.java
@@ -22,6 +22,8 @@ import org.apache.hop.core.util.Utils;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.TreeItem;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * This class is used to define a number of default values for various settings throughout Hop. It
@@ -224,4 +226,17 @@ public class ConstUi {
     }
     menu.setVisible(true);
   }
+  
+  /**
+   * Sort field names if options is enabled
+   * 
+   * @param names
+   */
+  public static String[] sortFieldNames(List<String> names) {
+    String[] result = names.toArray(new String[0]);
+    if ( PropsUi.getInstance().isSortFieldByName() ) {
+      Arrays.sort(result);
+    }
+    return result;
+  }
 }
diff --git a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
index caf34dc4ce..ebba063cdf 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
@@ -71,6 +71,8 @@ public class PropsUi extends Props {
   private static final String SHOW_HELP_TOOL_TIPS = "ShowHelpToolTips";
 
   private static final String HIDE_MENU_BAR = "HideMenuBar";
+  
+  private static final String SORT_FIELD_BY_NAME = "SortFieldByName";
 
   private static final String CANVAS_GRID_SIZE = "CanvasGridSize";
 
@@ -430,15 +432,6 @@ public class PropsUi extends Props {
     return YES.equalsIgnoreCase(autosplit); // Default = OFF
   }
 
-  public void setAutoCollapseCoreObjectsTree(boolean autoCollapse) {
-    setProperty(STRING_AUTO_COLLAPSE_CORE_TREE, autoCollapse ? YES : NO);
-  }
-
-  public boolean getAutoCollapseCoreObjectsTree() {
-    String autoCollapse = getProperty(STRING_AUTO_COLLAPSE_CORE_TREE);
-    return YES.equalsIgnoreCase(autoCollapse); // Default = OFF
-  }
-
   public void setExitWarningShown(boolean show) {
     setProperty(STRING_SHOW_EXIT_WARNING, show ? YES : NO);
   }
@@ -807,7 +800,16 @@ public class PropsUi extends Props {
     return YES.equalsIgnoreCase(
         System.getProperty(ConstUi.HOP_GUI_HIDE_MENU, getProperty(HIDE_MENU_BAR, YES)));
   }
+  
+  public void setSortFieldByName(boolean sort) {
+    setProperty(SORT_FIELD_BY_NAME, sort ? YES : NO);
+  }
 
+  public boolean isSortFieldByName() {
+    return YES.equalsIgnoreCase(
+        System.getProperty(SORT_FIELD_BY_NAME, getProperty(SORT_FIELD_BY_NAME, YES)));
+  }
+  
   public void setShowingHelpToolTips(boolean show) {
     setProperty(SHOW_HELP_TOOL_TIPS, show ? YES : NO);
   }
diff --git a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGeneralOptionsTab.java b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGeneralOptionsTab.java
index 337403d4bb..c10069903c 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGeneralOptionsTab.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGeneralOptionsTab.java
@@ -59,11 +59,11 @@ public class ConfigGeneralOptionsTab {
   private Button wAutoSplit;
   private Button wCopyDistribute;
   private Button wExitWarning;
-  private Button wAutoCollapse;
   private Button wToolTip;
   private Button wHelpTip;
   private Button wbUseDoubleClick;
   private Button wbUseGlobalFileBookmarks;
+  private Button wSortFieldByName;
 
   public ConfigGeneralOptionsTab() {
     // This instance is created in the GuiPlugin system by calling this constructor, after which it
@@ -320,27 +320,27 @@ public class ConfigGeneralOptionsTab {
         });
     lastControl = wClearCustom;
 
-    // Auto-collapse core objects tree branches?
-    Label wlAutoCollapse = new Label(wGeneralComp, SWT.RIGHT);
-    wlAutoCollapse.setText(
-        BaseMessages.getString(PKG, "EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label"));
-    PropsUi.setLook(wlAutoCollapse);
-    FormData fdlAutoCollapse = new FormData();
-    fdlAutoCollapse.left = new FormAttachment(0, 0);
-    fdlAutoCollapse.top = new FormAttachment(lastControl, 2 * margin);
-    fdlAutoCollapse.right = new FormAttachment(middle, -margin);
-    wlAutoCollapse.setLayoutData(fdlAutoCollapse);
-    wAutoCollapse = new Button(wGeneralComp, SWT.CHECK);
-    PropsUi.setLook(wAutoCollapse);
-    wAutoCollapse.setSelection(props.getAutoCollapseCoreObjectsTree());
-    FormData fdAutoCollapse = new FormData();
-    fdAutoCollapse.left = new FormAttachment(middle, 0);
-    fdAutoCollapse.top = new FormAttachment(wlAutoCollapse, 0, SWT.CENTER);
-    fdAutoCollapse.right = new FormAttachment(100, 0);
-    wAutoCollapse.setLayoutData(fdAutoCollapse);
-    wAutoCollapse.addListener(SWT.Selection, this::saveValues);
-    lastControl = wlAutoCollapse;
-
+    // Sort field by name
+    Label wlSortFieldByName = new Label(wGeneralComp, SWT.RIGHT);
+    wlSortFieldByName.setText(BaseMessages.getString(PKG, "EnterOptionsDialog.SortFieldByName.Label"));
+    wlSortFieldByName.setToolTipText(BaseMessages.getString(PKG, "EnterOptionsDialog.SortFieldByName.ToolTip"));
+    PropsUi.setLook(wlSortFieldByName);
+    FormData fdlSortFieldByName = new FormData();
+    fdlSortFieldByName.left = new FormAttachment(0, 0);
+    fdlSortFieldByName.right = new FormAttachment(middle, -margin);
+    fdlSortFieldByName.top = new FormAttachment(lastControl, 2 * margin);
+    wlSortFieldByName.setLayoutData(fdlSortFieldByName);
+    wSortFieldByName = new Button(wGeneralComp, SWT.CHECK);
+    PropsUi.setLook(wSortFieldByName);
+    FormData fdSortFieldByName = new FormData();
+    fdSortFieldByName.left = new FormAttachment(middle, 0);
+    fdSortFieldByName.right = new FormAttachment(100, -margin);
+    fdSortFieldByName.top = new FormAttachment(wlSortFieldByName, 0, SWT.CENTER);
+    wSortFieldByName.setLayoutData(fdSortFieldByName);
+    wSortFieldByName.setSelection(props.isSortFieldByName());   
+    wSortFieldByName.addListener(SWT.Selection, e -> saveValues(e));
+    lastControl = wSortFieldByName;
+    
     // Tooltips
     Label wlToolTip = new Label(wGeneralComp, SWT.RIGHT);
     wlToolTip.setText(BaseMessages.getString(PKG, "EnterOptionsDialog.ToolTipsEnabled.Label"));
@@ -476,7 +476,7 @@ public class ConfigGeneralOptionsTab {
     props.setShowCopyOrDistributeWarning(wCopyDistribute.getSelection());
     props.setExitWarningShown(wExitWarning.getSelection());
     props.setShowToolTips(wToolTip.getSelection());
-    props.setAutoCollapseCoreObjectsTree(wAutoCollapse.getSelection());
+    props.setSortFieldByName(wSortFieldByName.getSelection());
     props.setShowingHelpToolTips(wHelpTip.getSelection());
     props.setUseDoubleClickOnCanvas(wbUseDoubleClick.getSelection());
     props.setUseGlobalFileBookmarks(wbUseGlobalFileBookmarks.getSelection());
diff --git a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
index 04b719557c..416e6bffd0 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
@@ -441,7 +441,7 @@ public class ConfigGuiOptionsTab {
     wHideMenuBar.setLayoutData(fdHideMenuBar);
     wHideMenuBar.addListener(SWT.Selection, e -> saveValues());
 
-    // Hide menu bar?
+    // Show tableview tool bar ?
     Label wlShowTableViewToolbar = new Label(wLookComp, SWT.RIGHT);
     wlShowTableViewToolbar.setText(
         BaseMessages.getString(PKG, "EnterOptionsDialog.ShowTableViewToolbar.Label"));
diff --git a/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties b/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
index 234b08c4f4..aaa6e80c26 100644
--- a/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
+++ b/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
@@ -100,6 +100,8 @@ EnterOptionsDialog.DefaultPreviewSize.Label=Preview data batch size
 EnterOptionsDialog.WhatIsHopConfigSize.Label=This location can be changed with environment variable HOP_CONFIG_FOLDER
 EnterOptionsDialog.DialogMiddlePercentage.Label=Dialog middle percentage
 EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=Auto collapse palette tree
+EnterOptionsDialog.SortFieldByName.Label=Sort field by name
+EnterOptionsDialog.SortFieldByName.ToolTip=Determines the order when you select a field (incoming or sorted by name)
 EnterOptionsDialog.DefaultFont.Label=Default font
 EnterOptionsDialog.FixedWidthFont.Label=Fixed width font
 EnterOptionsDialog.General.Label=General