This is an automated email from the ASF dual-hosted git repository.
mattcasters pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new 0d14622d73 Add empty option to encoding dropdowns, fixes #7938 (#7939)
0d14622d73 is described below
commit 0d14622d73918027c1e4d59cc648d32010044d57
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Thu Aug 13 16:14:11 2026 +0200
Add empty option to encoding dropdowns, fixes #7938 (#7939)
---
.../hop/workflow/actions/sql/ActionSqlDialog.java | 16 ++------
.../writetofile/ActionWriteToFileDialog.java | 17 ++------
.../mail/pipeline/transforms/mail/MailDialog.java | 18 ++------
.../workflow/actions/mail/ActionMailDialog.java | 17 ++------
.../ChangeFileEncodingDialog.java | 19 ++-------
.../transforms/excelinput/ExcelInputDialog.java | 18 ++------
.../filemetadata/FileMetadataDialog.java | 19 ++-------
.../hop/pipeline/transforms/http/HttpDialog.java | 16 ++------
.../transforms/httppost/HttpPostDialog.java | 16 ++------
.../transforms/jsonoutput/JsonOutputDialog.java | 18 ++------
.../jsonoutputenhanced/JsonEOutputDialog.java | 18 ++------
.../loadfileinput/LoadFileInputDialog.java | 14 ++-----
.../propertyinput/PropertyInputDialog.java | 18 ++------
.../selectvalues/SelectValuesDialog.java | 10 +----
.../sqlfileoutput/SQLFileOutputDialog.java | 19 ++-------
.../transforms/csvinput/CsvInputDialog.java | 17 ++------
.../fileinput/text/TextFileInputDialog.java | 31 +++++---------
.../textfileoutput/TextFileOutputDialog.java | 16 ++------
.../hop/pipeline/transforms/tika/TikaDialog.java | 15 ++-----
.../tokenreplacement/TokenReplacementDialog.java | 16 ++------
.../transforms/vcardoutput/VCardOutputDialog.java | 9 ++--
.../transforms/xml/addxml/AddXmlDialog.java | 19 ++-------
.../advancedxmloutput/AdvancedXmlOutputDialog.java | 17 ++------
.../xml/getxmldata/GetXmlDataDialog.java | 18 ++------
.../transforms/xml/xmljoin/XmlJoinDialog.java | 20 ++-------
.../transforms/xml/xmloutput/XmlOutputDialog.java | 16 ++------
.../main/java/org/apache/hop/ui/core/ConstUi.java | 19 +++++++++
.../java/org/apache/hop/ui/core/ConstUiTest.java | 48 ++++++++++++++++++++++
28 files changed, 165 insertions(+), 349 deletions(-)
diff --git
a/plugins/actions/sql/src/main/java/org/apache/hop/workflow/actions/sql/ActionSqlDialog.java
b/plugins/actions/sql/src/main/java/org/apache/hop/workflow/actions/sql/ActionSqlDialog.java
index d0bd68b3c2..9f91d5bd0e 100644
---
a/plugins/actions/sql/src/main/java/org/apache/hop/workflow/actions/sql/ActionSqlDialog.java
+++
b/plugins/actions/sql/src/main/java/org/apache/hop/workflow/actions/sql/ActionSqlDialog.java
@@ -17,8 +17,6 @@
package org.apache.hop.workflow.actions.sql;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.hop.core.Const;
@@ -27,6 +25,7 @@ import org.apache.hop.core.database.DatabaseMeta;
import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
+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.MessageBox;
@@ -356,16 +355,9 @@ public class ActionSqlDialog extends ActionDialog {
private void setEncodings() {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/actions/writetofile/src/main/java/org/apache/hop/workflow/actions/writetofile/ActionWriteToFileDialog.java
b/plugins/actions/writetofile/src/main/java/org/apache/hop/workflow/actions/writetofile/ActionWriteToFileDialog.java
index 49c36ddd72..c3b8e342f5 100644
---
a/plugins/actions/writetofile/src/main/java/org/apache/hop/workflow/actions/writetofile/ActionWriteToFileDialog.java
+++
b/plugins/actions/writetofile/src/main/java/org/apache/hop/workflow/actions/writetofile/ActionWriteToFileDialog.java
@@ -17,13 +17,12 @@
package org.apache.hop.workflow.actions.writetofile;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import org.apache.hop.core.Const;
import org.apache.hop.core.Props;
import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
+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.MessageBox;
@@ -285,17 +284,9 @@ public class ActionWriteToFileDialog extends ActionDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- java.util.List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/misc/mail/src/main/java/org/apache/hop/mail/pipeline/transforms/mail/MailDialog.java
b/plugins/misc/mail/src/main/java/org/apache/hop/mail/pipeline/transforms/mail/MailDialog.java
index 452e4e2f93..b1f1c3f567 100644
---
a/plugins/misc/mail/src/main/java/org/apache/hop/mail/pipeline/transforms/mail/MailDialog.java
+++
b/plugins/misc/mail/src/main/java/org/apache/hop/mail/pipeline/transforms/mail/MailDialog.java
@@ -17,8 +17,6 @@
package org.apache.hop.mail.pipeline.transforms.mail;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
import org.apache.hop.core.Props;
@@ -30,6 +28,7 @@ import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.mail.metadata.MailServerConnection;
import org.apache.hop.mail.workflow.actions.mail.MailEmbeddedImageField;
import org.apache.hop.pipeline.PipelineMeta;
+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;
@@ -2275,18 +2274,9 @@ public class MailDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- ArrayList<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/misc/mail/src/main/java/org/apache/hop/mail/workflow/actions/mail/ActionMailDialog.java
b/plugins/misc/mail/src/main/java/org/apache/hop/mail/workflow/actions/mail/ActionMailDialog.java
index 9c2ab1f97a..191a9564b5 100644
---
a/plugins/misc/mail/src/main/java/org/apache/hop/mail/workflow/actions/mail/ActionMailDialog.java
+++
b/plugins/misc/mail/src/main/java/org/apache/hop/mail/workflow/actions/mail/ActionMailDialog.java
@@ -17,7 +17,6 @@
package org.apache.hop.mail.workflow.actions.mail;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Random;
import org.apache.hop.core.Const;
@@ -27,6 +26,7 @@ import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.mail.metadata.MailServerConnection;
+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;
@@ -1696,18 +1696,9 @@ public class ActionMailDialog extends ActionDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- java.util.List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
}
diff --git
a/plugins/transforms/changefileencoding/src/main/java/org/apache/hop/pipeline/transforms/changefileencoding/ChangeFileEncodingDialog.java
b/plugins/transforms/changefileencoding/src/main/java/org/apache/hop/pipeline/transforms/changefileencoding/ChangeFileEncodingDialog.java
index d12f16b66c..f7ae9bf5dd 100644
---
a/plugins/transforms/changefileencoding/src/main/java/org/apache/hop/pipeline/transforms/changefileencoding/ChangeFileEncodingDialog.java
+++
b/plugins/transforms/changefileencoding/src/main/java/org/apache/hop/pipeline/transforms/changefileencoding/ChangeFileEncodingDialog.java
@@ -17,8 +17,6 @@
package org.apache.hop.pipeline.transforms.changefileencoding;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import org.apache.hop.core.Const;
import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.row.IRowMeta;
@@ -26,6 +24,7 @@ import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.PipelineMeta;
+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;
@@ -372,18 +371,8 @@ public class ChangeFileEncodingDialog extends
BaseTransformDialog {
private void setEncodings(ComboVar cVar) {
// Encoding of the text file:
- String encoding =
- Const.NVL(cVar.getText(),
Const.getEnvironmentVariable("file.encoding", Const.UTF_8));
- cVar.removeAll();
- ArrayList<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- cVar.add(charSet.displayName());
- }
-
- // Now select the default!
- int idx = Const.indexOfString(encoding, cVar.getItems());
- if (idx >= 0) {
- cVar.select(idx);
- }
+ String encoding = cVar.getText();
+ cVar.setItems(ConstUi.getEncodings());
+ cVar.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
index a52316e0cf..1ed3c03996 100644
---
a/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
+++
b/plugins/transforms/excel/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputDialog.java
@@ -20,7 +20,6 @@ package org.apache.hop.pipeline.transforms.excelinput;
import static
org.apache.hop.pipeline.transforms.excelinput.ExcelInputMeta.EIFile;
import static
org.apache.hop.pipeline.transforms.excelinput.ExcelInputMeta.EISheet;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
@@ -53,6 +52,7 @@ import
org.apache.hop.pipeline.transforms.fileinput.text.DirectoryDialogButtonLi
import org.apache.hop.staticschema.metadata.SchemaDefinition;
import org.apache.hop.staticschema.metadata.SchemaFieldDefinition;
import org.apache.hop.staticschema.util.SchemaDefinitionUtil;
+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.EnterListDialog;
@@ -1936,19 +1936,9 @@ public class ExcelInputDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
-
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadataDialog.java
b/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadataDialog.java
index 8a91936a04..c00cea7080 100644
---
a/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadataDialog.java
+++
b/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadataDialog.java
@@ -19,15 +19,13 @@ package org.apache.hop.pipeline.transforms.filemetadata;
import static
org.apache.hop.pipeline.transforms.filemetadata.FileMetadataMeta.FMCandidate;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.List;
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.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.PipelineMeta;
+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;
@@ -107,18 +105,9 @@ public class FileMetadataDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wDefaultCharset.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wDefaultCharset.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = meta.getDefaultCharset();
- int idx = Const.indexOfString(defEncoding, wDefaultCharset.getItems());
- if (idx >= 0) {
- wDefaultCharset.select(idx);
- }
+ String encoding = wDefaultCharset.getText();
+ wDefaultCharset.setItems(ConstUi.getEncodings());
+ wDefaultCharset.setText(Const.NVL(encoding, ""));
}
}
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 425fac0ac9..217ac0b4fc 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
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.http;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
@@ -871,18 +870,9 @@ public class HttpDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
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 9c88d77d5b..9a84d9c89a 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
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.httppost;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
@@ -1057,18 +1056,9 @@ public class HttpPostDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
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 583d2ab619..b10d4c798a 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
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.jsonoutput;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -706,20 +705,9 @@ public class JsonOutputDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- } else {
- wEncoding.select(Const.indexOfString(Const.UTF_8,
wEncoding.getItems()));
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonEOutputDialog.java
b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonEOutputDialog.java
index dddc6c0a8e..e668c22f35 100644
---
a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonEOutputDialog.java
+++
b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonEOutputDialog.java
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.jsonoutputenhanced;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
@@ -949,20 +948,9 @@ public class JsonEOutputDialog extends BaseTransformDialog
{
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- } else {
- wEncoding.select(Const.indexOfString(Const.UTF_8,
wEncoding.getItems()));
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInputDialog.java
b/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInputDialog.java
index f160346c71..cccb3f0fee 100644
---
a/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInputDialog.java
+++
b/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInputDialog.java
@@ -17,8 +17,6 @@
package org.apache.hop.pipeline.transforms.loadfileinput;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import org.apache.hop.core.Const;
import org.apache.hop.core.Props;
import org.apache.hop.core.exception.HopException;
@@ -33,6 +31,7 @@ import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.Pipeline;
import org.apache.hop.pipeline.PipelineMeta;
import org.apache.hop.pipeline.PipelinePreviewFactory;
+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.EnterNumberDialog;
@@ -1124,15 +1123,8 @@ public class LoadFileInputDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
String encoding = wEncoding.getText();
- wEncoding.removeAll();
- ArrayList<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- if (!Utils.isEmpty(encoding)) {
- wEncoding.setText(encoding);
- }
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInputDialog.java
b/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInputDialog.java
index 9c595a6e3c..4ccc320d93 100644
---
a/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInputDialog.java
+++
b/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInputDialog.java
@@ -17,8 +17,6 @@
package org.apache.hop.pipeline.transforms.propertyinput;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.Iterator;
import org.apache.commons.lang3.StringUtils;
import org.apache.hop.core.Const;
@@ -37,6 +35,7 @@ import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.Pipeline;
import org.apache.hop.pipeline.PipelineMeta;
import org.apache.hop.pipeline.PipelinePreviewFactory;
+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.EnterNumberDialog;
@@ -1049,18 +1048,9 @@ public class PropertyInputDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- ArrayList<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
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 579f95e278..c10369901a 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
@@ -19,9 +19,7 @@ package org.apache.hop.pipeline.transforms.selectvalues;
import static org.apache.hop.core.row.IValueMeta.storageTypeCodes;
-import java.nio.charset.Charset;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -41,6 +39,7 @@ import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.PipelineMeta;
import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.ui.core.ConstUi;
import org.apache.hop.ui.core.FormDataBuilder;
import org.apache.hop.ui.core.PropsUi;
import org.apache.hop.ui.core.dialog.BaseDialog;
@@ -664,12 +663,7 @@ public class SelectValuesDialog extends
BaseTransformDialog {
private String[] getCharsets() {
if (charsets == null) {
- Collection<Charset> charsetCol = Charset.availableCharsets().values();
- charsets = new String[charsetCol.size()];
- int i = 0;
- for (Charset charset : charsetCol) {
- charsets[i++] = charset.displayName();
- }
+ charsets = ConstUi.getEncodings();
}
return charsets;
}
diff --git
a/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutputDialog.java
b/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutputDialog.java
index be89075470..e608ebb519 100644
---
a/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutputDialog.java
+++
b/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutputDialog.java
@@ -17,9 +17,6 @@
package org.apache.hop.pipeline.transforms.sqlfileoutput;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.hop.core.Const;
import org.apache.hop.core.DbCache;
@@ -32,6 +29,7 @@ import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.PipelineMeta;
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;
@@ -754,18 +752,9 @@ public class SQLFileOutputDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputDialog.java
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputDialog.java
index a53bbc009e..d98e76e2b2 100644
---
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputDialog.java
+++
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputDialog.java
@@ -19,7 +19,6 @@ package org.apache.hop.pipeline.transforms.csvinput;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -52,6 +51,7 @@ import
org.apache.hop.pipeline.transforms.fileinput.text.TextFileCSVImportProgre
import org.apache.hop.staticschema.metadata.SchemaDefinition;
import org.apache.hop.staticschema.metadata.SchemaFieldDefinition;
import org.apache.hop.staticschema.util.SchemaDefinitionUtil;
+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.EnterNumberDialog;
@@ -764,18 +764,9 @@ public class CsvInputDialog extends BaseTransformDialog
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
index 8600fc8558..9de080fc20 100644
---
a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
+++
b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputDialog.java
@@ -19,7 +19,6 @@ package org.apache.hop.pipeline.transforms.fileinput.text;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -47,6 +46,7 @@ import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.value.ValueMetaBase;
import org.apache.hop.core.row.value.ValueMetaFactory;
+import org.apache.hop.core.util.EnvUtil;
import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.vfs.HopVfs;
@@ -61,6 +61,7 @@ import
org.apache.hop.pipeline.transforms.file.BaseFileInputMeta;
import org.apache.hop.staticschema.metadata.SchemaDefinition;
import org.apache.hop.staticschema.metadata.SchemaFieldDefinition;
import org.apache.hop.staticschema.util.SchemaDefinitionUtil;
+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.EnterNumberDialog;
@@ -1527,14 +1528,11 @@ public class TextFileInputDialog extends
BaseTransformDialog
}
protected void setLocales() {
- Locale[] locale = Locale.getAvailableLocales();
- String[] dateLocale = new String[locale.length];
- for (int i = 0; i < locale.length; i++) {
- dateLocale[i] = locale[i].toString();
- }
- if (dateLocale != null) {
- wDateLocale.setItems(dateLocale);
- }
+ // The list is sorted and starts with an empty entry so the locale can be
cleared again.
+ //
+ String locale = wDateLocale.getText();
+ wDateLocale.setItems(EnvUtil.getLocaleList());
+ wDateLocale.setText(Const.NVL(locale, ""));
}
private void addErrorTab() {
@@ -2501,18 +2499,9 @@ public class TextFileInputDialog extends
BaseTransformDialog
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
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 c03bd7a4ef..cbbb0aff08 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
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.textfileoutput;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
@@ -1357,18 +1356,9 @@ public class TextFileOutputDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaDialog.java
b/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaDialog.java
index 965b347435..e0652f0ad6 100755
---
a/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaDialog.java
+++
b/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaDialog.java
@@ -17,8 +17,6 @@
package org.apache.hop.pipeline.transforms.tika;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.hop.core.Const;
@@ -32,6 +30,7 @@ import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.Pipeline;
import org.apache.hop.pipeline.PipelineMeta;
import org.apache.hop.pipeline.PipelinePreviewFactory;
+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.EnterNumberDialog;
@@ -761,16 +760,8 @@ public class TikaDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
String encoding = wEncoding.getText();
- wEncoding.removeAll();
- ArrayList<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset value : values) {
- Charset charSet = (Charset) value;
- wEncoding.add(charSet.displayName());
- }
-
- if (!StringUtils.isEmpty(encoding)) {
- wEncoding.setText(encoding);
- }
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
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 60f7b785f1..0c302cffaa 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
@@ -16,7 +16,6 @@
*/
package org.apache.hop.pipeline.transforms.tokenreplacement;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
@@ -1185,18 +1184,9 @@ public class TokenReplacementDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wOutputFileEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wOutputFileEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding,
wOutputFileEncoding.getItems());
- if (idx >= 0) {
- wOutputFileEncoding.select(idx);
- }
+ String encoding = wOutputFileEncoding.getText();
+ wOutputFileEncoding.setItems(ConstUi.getEncodings());
+ wOutputFileEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/vcard/src/main/java/org/apache/hop/pipeline/transforms/vcardoutput/VCardOutputDialog.java
b/plugins/transforms/vcard/src/main/java/org/apache/hop/pipeline/transforms/vcardoutput/VCardOutputDialog.java
index 9ad99cba02..08ab01dee2 100644
---
a/plugins/transforms/vcard/src/main/java/org/apache/hop/pipeline/transforms/vcardoutput/VCardOutputDialog.java
+++
b/plugins/transforms/vcard/src/main/java/org/apache/hop/pipeline/transforms/vcardoutput/VCardOutputDialog.java
@@ -18,7 +18,6 @@ package org.apache.hop.pipeline.transforms.vcardoutput;
import static org.apache.hop.core.util.Utils.isEmpty;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -38,6 +37,7 @@ import
org.apache.hop.pipeline.transforms.vcard.VCardMappingDialogUtil;
import org.apache.hop.pipeline.transforms.vcard.VCardPropertyType;
import org.apache.hop.pipeline.transforms.vcard.VCardStreamFieldMatcher;
import org.apache.hop.pipeline.transforms.vcard.VCardVersionOption;
+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;
@@ -637,10 +637,9 @@ public class VCardOutputDialog extends BaseTransformDialog
implements ITransform
private void setEncodings() {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- for (Charset charset : Charset.availableCharsets().values()) {
- wEncoding.add(charset.displayName());
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlDialog.java
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlDialog.java
index b160694b94..2ddf96a3f0 100644
---
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlDialog.java
+++
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlDialog.java
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.xml.addxml;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -34,6 +33,7 @@ import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.PipelineMeta;
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;
@@ -429,20 +429,9 @@ public class AddXmlDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- } else {
- wEncoding.select(Const.indexOfString(Const.UTF_8,
wEncoding.getItems()));
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/advancedxmloutput/AdvancedXmlOutputDialog.java
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/advancedxmloutput/AdvancedXmlOutputDialog.java
index 690b63aff6..fcc01ee3d7 100644
---
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/advancedxmloutput/AdvancedXmlOutputDialog.java
+++
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/advancedxmloutput/AdvancedXmlOutputDialog.java
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.xml.advancedxmloutput;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
@@ -29,6 +28,7 @@ import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.PipelineMeta;
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;
@@ -715,20 +715,9 @@ public class AdvancedXmlOutputDialog extends
BaseTransformDialog {
return;
}
encodingsLoaded = true;
- List<String> encs = new ArrayList<>(Charset.availableCharsets().keySet());
- java.util.Collections.sort(encs);
String current = wEncoding.getText();
- for (String e : encs) {
- wEncoding.add(e);
- }
- if (!Utils.isEmpty(current)) {
- int idx = wEncoding.indexOf(current);
- if (idx >= 0) {
- wEncoding.select(idx);
- } else {
- wEncoding.setText(current);
- }
- }
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(current, ""));
}
//
---------------------------------------------------------------------------
diff --git
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataDialog.java
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataDialog.java
index 046e938c50..4a7058065d 100644
---
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataDialog.java
+++
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataDialog.java
@@ -24,8 +24,6 @@ import static
org.apache.hop.pipeline.transforms.xml.getxmldata.GetXmlDataField.
import static
org.apache.hop.pipeline.transforms.xml.getxmldata.GetXmlDataField.getTrimTypeByDesc;
import static
org.apache.hop.pipeline.transforms.xml.getxmldata.GetXmlDataField.getTrimTypeCode;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import org.apache.hop.core.Const;
import org.apache.hop.core.Props;
import org.apache.hop.core.RowMetaAndData;
@@ -41,6 +39,7 @@ import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.Pipeline;
import org.apache.hop.pipeline.PipelineMeta;
import org.apache.hop.pipeline.PipelinePreviewFactory;
+import org.apache.hop.ui.core.ConstUi;
import org.apache.hop.ui.core.FormDataBuilder;
import org.apache.hop.ui.core.PropsUi;
import org.apache.hop.ui.core.dialog.BaseDialog;
@@ -1597,18 +1596,9 @@ public class GetXmlDataDialog extends
BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- ArrayList<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
diff --git
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinDialog.java
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinDialog.java
index 879a2fef6f..07be815f73 100644
---
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinDialog.java
+++
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinDialog.java
@@ -17,8 +17,6 @@
package org.apache.hop.pipeline.transforms.xml.xmljoin;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
import org.apache.hop.core.util.Utils;
@@ -26,6 +24,7 @@ import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.pipeline.PipelineMeta;
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.TextVar;
@@ -497,20 +496,9 @@ public class XmlJoinDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- } else {
- wEncoding.select(Const.indexOfString(Const.UTF_8,
wEncoding.getItems()));
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
}
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 09b79550f0..a3b307e82f 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
@@ -17,7 +17,6 @@
package org.apache.hop.pipeline.transforms.xml.xmloutput;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import org.apache.hop.core.Const;
@@ -768,18 +767,9 @@ public class XmlOutputDialog extends BaseTransformDialog {
if (!gotEncodings) {
gotEncodings = true;
- wEncoding.removeAll();
- List<Charset> values = new
ArrayList<>(Charset.availableCharsets().values());
- for (Charset charSet : values) {
- wEncoding.add(charSet.displayName());
- }
-
- // Now select the default!
- String defEncoding = Const.getEnvironmentVariable("file.encoding",
Const.UTF_8);
- int idx = Const.indexOfString(defEncoding, wEncoding.getItems());
- if (idx >= 0) {
- wEncoding.select(idx);
- }
+ String encoding = wEncoding.getText();
+ wEncoding.setItems(ConstUi.getEncodings());
+ wEncoding.setText(Const.NVL(encoding, ""));
}
}
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 4bc7dee85c..046e656c3a 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
@@ -17,7 +17,10 @@
package org.apache.hop.ui.core;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.List;
import org.apache.hop.core.Const;
import org.apache.hop.core.util.Utils;
@@ -257,4 +260,20 @@ public class ConstUi {
}
return names;
}
+
+ /**
+ * Get the available character set encodings to show in a drop down. The
first entry is empty so
+ * that a previously selected encoding can be cleared again, falling back to
the default encoding.
+ *
+ * @return the available encodings, preceded by an empty entry
+ */
+ public static String[] getEncodings() {
+ Collection<Charset> charsets = Charset.availableCharsets().values();
+ List<String> encodings = new ArrayList<>(charsets.size() + 1);
+ encodings.add("");
+ for (Charset charset : charsets) {
+ encodings.add(charset.displayName());
+ }
+ return encodings.toArray(new String[0]);
+ }
}
diff --git a/ui/src/test/java/org/apache/hop/ui/core/ConstUiTest.java
b/ui/src/test/java/org/apache/hop/ui/core/ConstUiTest.java
new file mode 100644
index 0000000000..c8e85de1f2
--- /dev/null
+++ b/ui/src/test/java/org/apache/hop/ui/core/ConstUiTest.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hop.ui.core;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.List;
+import org.junit.jupiter.api.Test;
+
+class ConstUiTest {
+
+ @Test
+ void encodingListStartsWithAnEmptyEntry() {
+ String[] encodings = ConstUi.getEncodings();
+
+ assertEquals("", encodings[0], "The first encoding must be empty so it can
be cleared again");
+ assertEquals(Charset.availableCharsets().size() + 1, encodings.length);
+ }
+
+ @Test
+ void encodingListContainsTheAvailableCharsets() {
+ List<String> encodings = Arrays.asList(ConstUi.getEncodings());
+
+ for (Charset charset : Charset.availableCharsets().values()) {
+ assertTrue(
+ encodings.contains(charset.displayName()),
+ () -> "Encoding " + charset.displayName() + " is missing from the
list");
+ }
+ }
+}