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 0c2f97a355 Database lookup/Insert update transform should sort field
names #2468
new 1374ec6bb8 Merge pull request #2469 from nadment/2468
0c2f97a355 is described below
commit 0c2f97a355695c4dcb23a60f7328d808982af0f7
Author: Nicolas Adment <[email protected]>
AuthorDate: Fri Feb 24 13:49:29 2023 +0100
Database lookup/Insert update transform should sort field names #2468
---
.../databaselookup/DatabaseLookupDialog.java | 147 +++++++---------
.../messages/messages_de_DE.properties | 1 -
.../messages/messages_en_US.properties | 1 -
.../messages/messages_es_AR.properties | 1 -
.../messages/messages_es_ES.properties | 1 -
.../messages/messages_it_IT.properties | 1 -
.../messages/messages_ja_JP.properties | 1 -
.../messages/messages_ko_KR.properties | 1 -
.../messages/messages_pt_BR.properties | 1 -
.../messages/messages_pt_PT.properties | 1 -
.../messages/messages_zh_CN.properties | 1 -
.../insertupdate/InsertUpdateDialog.java | 190 ++++++++-------------
.../messages/messages_en_US.properties | 1 -
.../messages/messages_es_AR.properties | 1 -
.../messages/messages_es_ES.properties | 1 -
.../messages/messages_fr_FR.properties | 1 -
.../messages/messages_ja_JP.properties | 1 -
.../messages/messages_ko_KR.properties | 1 -
.../messages/messages_zh_CN.properties | 1 -
19 files changed, 128 insertions(+), 226 deletions(-)
diff --git
a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
index f939b1eaae..a6d324c1a4 100644
---
a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
+++
b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupDialog.java
@@ -59,7 +59,6 @@ import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
public class DatabaseLookupDialog extends BaseTransformDialog implements
ITransformDialog {
@@ -141,12 +140,12 @@ public class DatabaseLookupDialog extends
BaseTransformDialog implements ITransf
shell.setText(BaseMessages.getString(PKG,
"DatabaseLookupDialog.shell.Title"));
int middle = props.getMiddlePct();
- int margin = props.getMargin();
+ int margin = PropsUi.getMargin();
// TransformName line
wlTransformName = new Label(shell, SWT.RIGHT);
- wlTransformName.setText(
- BaseMessages.getString(PKG,
"DatabaseLookupDialog.TransformName.Label"));
+ wlTransformName.setText(BaseMessages.getString(PKG,
"System.TransformName.Label"));
+ wlTransformName.setToolTipText(BaseMessages.getString(PKG,
"System.TransformName.Tooltip"));
PropsUi.setLook(wlTransformName);
fdlTransformName = new FormData();
fdlTransformName.left = new FormAttachment(0, 0);
@@ -497,25 +496,12 @@ public class DatabaseLookupDialog extends
BaseTransformDialog implements ITransf
wGet.addListener(SWT.Selection, e -> get());
wGetLU.addListener(SWT.Selection, e -> getlookup());
wCancel.addListener(SWT.Selection, e -> cancel());
-
- wbSchema.addSelectionListener(
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- getSchemaNames();
- }
- });
- wbTable.addSelectionListener(
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- getTableName();
- }
- });
+ wbSchema.addListener(SWT.Selection, e -> getSchemaName());
+ wbTable.addListener(SWT.Selection, e -> getTableName());
getData();
- setComboValues();
+ setInputFieldCombo();
setTableFieldCombo();
BaseDialog.defaultShellHandling(shell, c -> ok(), c -> cancel());
@@ -523,73 +509,58 @@ public class DatabaseLookupDialog extends
BaseTransformDialog implements ITransf
return transformName;
}
- private void setComboValues() {
- Runnable fieldLoader =
- () -> {
- try {
- prevFields = pipelineMeta.getPrevTransformFields(variables,
transformName);
- } catch (HopException e) {
- prevFields = new RowMeta();
- String msg =
- BaseMessages.getString(PKG,
"DatabaseLookupDialog.DoMapping.UnableToFindInput");
- logError(msg);
- }
- String[] prevTransformFieldNames = prevFields.getFieldNames();
- Arrays.sort(prevTransformFieldNames);
- for (ColumnInfo colInfo : fieldColumns) {
- colInfo.setComboValues(prevTransformFieldNames);
- }
- };
- new Thread(fieldLoader).start();
+ private void setInputFieldCombo() {
+ shell.getDisplay().asyncExec(() -> {
+ try {
+ prevFields = pipelineMeta.getPrevTransformFields(variables,
transformName);
+ } catch (HopException e) {
+ prevFields = new RowMeta();
+ String msg =
+ BaseMessages.getString(PKG,
"DatabaseLookupDialog.DoMapping.UnableToFindInput");
+ logError(msg);
+ }
+ String[] fieldNames = Const.sortStrings(prevFields.getFieldNames());
+ for (ColumnInfo colInfo : fieldColumns) {
+ colInfo.setComboValues(fieldNames);
+ }
+ });
}
private void setTableFieldCombo() {
- Runnable fieldLoader =
- () -> {
- if (!wTable.isDisposed() && !wConnection.isDisposed() &&
!wSchema.isDisposed()) {
- final String tableName = wTable.getText();
- final String connectionName = wConnection.getText();
- final String schemaName = wSchema.getText();
- if (!Utils.isEmpty(tableName)) {
- DatabaseMeta ci = pipelineMeta.findDatabase(connectionName,
variables);
- if (ci != null) {
- Database db = new Database(loggingObject, variables, ci);
- try {
- db.connect();
-
- String schemaTable =
- ci.getQuotedSchemaTableCombination(variables,
schemaName, tableName);
- IRowMeta r = db.getTableFields(schemaTable);
-
- if (null != r) {
- String[] fieldNames = r.getFieldNames();
- if (null != fieldNames) {
- for (ColumnInfo colInfo : tableFieldColumns) {
- colInfo.setComboValues(fieldNames);
- }
- }
- }
- } catch (Exception e) {
+ shell.getDisplay().asyncExec(() -> {
+ if (!wTable.isDisposed() && !wConnection.isDisposed() &&
!wSchema.isDisposed()) {
+ final String tableName = wTable.getText();
+ final String connectionName = wConnection.getText();
+ final String schemaName = wSchema.getText();
+ if (!Utils.isEmpty(tableName)) {
+ DatabaseMeta databaseMeta =
pipelineMeta.findDatabase(connectionName, variables);
+ if (databaseMeta != null) {
+ try (Database database = new Database(loggingObject, variables,
databaseMeta)) {
+ database.connect();
+
+ String schemaTable =
+ databaseMeta.getQuotedSchemaTableCombination(variables,
schemaName, tableName);
+ IRowMeta rowMeta = database.getTableFields(schemaTable);
+
+ if (null != rowMeta) {
+ String[] fieldNames =
Const.sortStrings(rowMeta.getFieldNames());
+ if (null != fieldNames) {
for (ColumnInfo colInfo : tableFieldColumns) {
- colInfo.setComboValues(new String[] {});
- }
- // ignore any errors here. drop downs will not be
- // filled, but no problem for the user
- } finally {
- try {
- if (db != null) {
- db.disconnect();
- }
- } catch (Exception ignored) {
- // ignore any errors here.
- db = null;
+ colInfo.setComboValues(fieldNames);
}
}
}
+ } catch (Exception e) {
+ for (ColumnInfo colInfo : tableFieldColumns) {
+ colInfo.setComboValues(new String[] {});
+ }
+ // ignore any errors here. drop downs will not be
+ // filled, but no problem for the user
}
}
- };
- shell.getDisplay().asyncExec(fieldLoader);
+ }
+ }
+ });
}
private void enableFields() {
@@ -768,16 +739,15 @@ public class DatabaseLookupDialog extends
BaseTransformDialog implements ITransf
}
private void getlookup() {
- DatabaseMeta ci = pipelineMeta.findDatabase(wConnection.getText(),
variables);
- if (ci != null) {
- Database db = new Database(loggingObject, variables, ci);
- try {
- db.connect();
+ DatabaseMeta databaseMeta =
pipelineMeta.findDatabase(wConnection.getText(), variables);
+ if (databaseMeta != null) {
+ try (Database database = new Database(loggingObject, variables,
databaseMeta)) {
+ database.connect();
if (!Utils.isEmpty(wTable.getText())) {
String schemaTable =
- ci.getQuotedSchemaTableCombination(variables, wSchema.getText(),
wTable.getText());
- IRowMeta r = db.getTableFields(schemaTable);
+ databaseMeta.getQuotedSchemaTableCombination(variables,
wSchema.getText(), wTable.getText());
+ IRowMeta r = database.getTableFields(schemaTable);
if (r != null && !r.isEmpty()) {
logDebug(
@@ -817,11 +787,10 @@ public class DatabaseLookupDialog extends
BaseTransformDialog implements ITransf
}
}
- private void getSchemaNames() {
+ private void getSchemaName() {
DatabaseMeta databaseMeta =
pipelineMeta.findDatabase(wConnection.getText(), variables);
if (databaseMeta != null) {
- Database database = new Database(loggingObject, variables, databaseMeta);
- try {
+ try (Database database = new Database(loggingObject, variables,
databaseMeta)) {
database.connect();
String[] schemas = database.getSchemas();
@@ -853,8 +822,6 @@ public class DatabaseLookupDialog extends
BaseTransformDialog implements ITransf
BaseMessages.getString(PKG, "System.Dialog.Error.Title"),
BaseMessages.getString(PKG,
"DatabaseLookupDialog.ErrorGettingSchemas"),
e);
- } finally {
- database.disconnect();
}
}
}
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
index 0b555ead63..629be3a52d 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_de_DE.properties
@@ -43,7 +43,6 @@ DatabaseLookupMeta.Check.MissingConnectionError=Bitte
w\u00E4hlen oder erstellen
DatabaseLookupMeta.Check.NoInputReceivedFromOtherTransforms=Kein Input wird
von anderen Schritten erhalten.\!
DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Ein Fehler ist
aufgetreten:
DatabaseLookupDialog.shell.Title=Datenbanksuche
-DatabaseLookupDialog.TransformName.Label=Schrittname
DatabaseLookupDialog.Lookuptable.Label=Zu durchsuchende Tabelle
DatabaseLookupDialog.Browse.Button=&Durchsuchen...
DatabaseLookupDialog.Cache.Label=Cache aktivieren?
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
index 782e860a06..33ecfc0d14 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_en_US.properties
@@ -25,7 +25,6 @@ DatabaseLookupDialog.ColumnInfo.Newname=New name
DatabaseLookupDialog.Lookuptable.Label=Lookup table
DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Missing fields, not
found in input from previous transforms\:
DatabaseLookupDialog.ErrorOccurred.DialogMessage=An error occurred\:
-DatabaseLookupDialog.TransformName.Label=Transform name
DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Because of an error,
this transform can''t continue\:
DatabaseLookupDialog.shell.Title=Database lookup
DatabaseLookupDialog.ColumnInfo.Default=Default
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
index 7c1a7c39a6..4177562774 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_AR.properties
@@ -27,7 +27,6 @@ DatabaseLookupDialog.ColumnInfo.Newname=Nuevo nombre
DatabaseLookupDialog.Lookuptable.Label=Tabla de b\u00FAsqueda
DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Campos no encontrados en
la entrada de pasos anteriores\:
DatabaseLookupDialog.ErrorOccurred.DialogMessage=Se ha producido un error\:
-DatabaseLookupDialog.TransformName.Label=Nombre del paso
DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Este paso no puede
continuar debido a un error\:
DatabaseLookupDialog.shell.Title=B\u00FAsqueda de valor en base de datos
DatabaseLookupDialog.ColumnInfo.Default=Por Defecto
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
index 823f46ff52..f89df817a5 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_es_ES.properties
@@ -53,7 +53,6 @@ DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Se ha
producido un error:
DatabaseLookupMeta.Impact.Key=Clave
DatabaseLookupMeta.Impact.ReturnValue=Valor devuelto
DatabaseLookupDialog.shell.Title=Búsqueda de valor en base de datos
-DatabaseLookupDialog.TransformName.Label=Nombre paso
DatabaseLookupDialog.TargetSchema.Label=Esquema de búsqueda
DatabaseLookupDialog.Lookuptable.Label=Tabla de búsqueda
DatabaseLookupDialog.Browse.Button=&Examinar...
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
index c76e902f10..1def5a0a3d 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_it_IT.properties
@@ -25,7 +25,6 @@ DatabaseLookupDialog.ColumnInfo.Newname=Nuovo nome
DatabaseLookupDialog.Lookuptable.Label=Tabella di lookup
DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Campi mancanti, non
trovati nell''input dai transform precedenti transforms\:
DatabaseLookupDialog.ErrorOccurred.DialogMessage=Errore\:
-DatabaseLookupDialog.TransformName.Label=Nome transform
DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=A causa di un errore,
questo transform non pu\u00F2 continuare\:
DatabaseLookupDialog.shell.Title=Lookup di valori dal database
DatabaseLookupDialog.ColumnInfo.Default=Default
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
index 1716e2b9d0..1f354d6771 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ja_JP.properties
@@ -27,7 +27,6 @@
DatabaseLookupDialog.ColumnInfo.Newname=\u65b0\u3057\u3044\u30d5\u30a3\u30fc\u30
DatabaseLookupDialog.Lookuptable.Label=\u30c6\u30fc\u30d6\u30eb\u540d
DatabaseLookupMeta.Check.MissingFieldsNotFoundInInput=Missing fields, not
found in input from previous transforms\:
DatabaseLookupDialog.ErrorOccurred.DialogMessage=\u30a8\u30e9\u30fc\u304c\u8d77\u3053\u308a\u307e\u3057\u305f\u3002\:
-DatabaseLookupDialog.TransformName.Label=\u30b9\u30c6\u30c3\u30d7\u540d
DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Because of an error,
this transform can''t continue\:
DatabaseLookupDialog.shell.Title=\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u53c2\u7167
DatabaseLookupDialog.ColumnInfo.Default=\u30c7\u30d5\u30a9\u30eb\u30c8
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
index 94bbaf5d5b..22942e6beb 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_ko_KR.properties
@@ -24,7 +24,6 @@ DatabaseLookupMeta.Impact.ReturnValue=Return value
DatabaseLookupDialog.ColumnInfo.Newname=\uC0C8 \uC774\uB984
DatabaseLookupDialog.Lookuptable.Label=Lookup \uD14C\uC774\uBE14
DatabaseLookupDialog.ErrorOccurred.DialogMessage=\uC624\uB958\uAC00
\uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4\:
-DatabaseLookupDialog.TransformName.Label=transform \uC774\uB984
DatabaseLookup.ERROR003.UnexpectedErrorDuringProcessing=Because of an error,
this transform can''t continue\:
DatabaseLookupDialog.shell.Title=Database lookup
DatabaseLookupDialog.ColumnInfo.Default=\uAE30\uBCF8\uAC12
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
index c251575ce8..6b2575d4c9 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_BR.properties
@@ -51,7 +51,6 @@ DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Ocorreu
um erro:
DatabaseLookupMeta.Impact.Key=Chave
DatabaseLookupMeta.Impact.ReturnValue=Valor Retornado
DatabaseLookupDialog.shell.Title=Lookup de valor do banco de dados
-DatabaseLookupDialog.TransformName.Label=Nome do transform
DatabaseLookupDialog.Lookuptable.Label=Tabela Lookup
DatabaseLookupDialog.Browse.Button=&Navega...
DatabaseLookupDialog.Cache.Label=Habilita cache?
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
index 180d847d35..6838cb7836 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_pt_PT.properties
@@ -51,7 +51,6 @@ DatabaseLookupMeta.ERROR0004.ErrorGettingTableFields=Ocorreu
um erro:
DatabaseLookupMeta.Impact.Key=Chave
DatabaseLookupMeta.Impact.ReturnValue=Valor Retornado
DatabaseLookupDialog.shell.Title=Lookup de valor do banco de dados
-DatabaseLookupDialog.TransformName.Label=Nome do transform
DatabaseLookupDialog.Lookuptable.Label=Tabela Lookup
DatabaseLookupDialog.Browse.Button=&Navega...
DatabaseLookupDialog.Cache.Label=Habilita cache?
diff --git
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
index 68e3d1a2da..ae3a416bf4 100644
---
a/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
+++
b/plugins/transforms/databaselookup/src/main/resources/org/apache/hop/pipeline/transforms/databaselookup/messages/messages_zh_CN.properties
@@ -78,7 +78,6 @@ DatabaseLookupDialog.NoSchema.Error=There is no schema
available.
DatabaseLookupDialog.Orderby.Label=\u6392\u5E8F\:
DatabaseLookupDialog.Return.Label=\u67E5\u8BE2\u8868\u8FD4\u56DE\u7684\u503C \:
DatabaseLookupDialog.TargetSchema.Label=Schema \u540D\u79F0\:
-DatabaseLookupDialog.TransformName.Label=Transform \u540D\u79F0\:
DatabaseLookupDialog.TrimTypeColumn.Column=\u6E05\u9664\u65B9\u5F0F
DatabaseLookupDialog.shell.Title=\u6570\u636E\u5E93\u67E5\u8BE2
DatabaseLookupMeta.Check.AllFieldsFoundInInput=All fields found in the input
stream.
diff --git
a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
index 562e02e2dc..a80758c243 100644
---
a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
+++
b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateDialog.java
@@ -68,7 +68,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
public class InsertUpdateDialog extends BaseTransformDialog implements
ITransformDialog {
private static final Class<?> PKG = InsertUpdateMeta.class; // For Translator
@@ -89,20 +88,16 @@ public class InsertUpdateDialog extends BaseTransformDialog
implements ITransfor
private final InsertUpdateMeta input;
- private final Map<String, Integer> inputFields;
-
- private ColumnInfo[] ciKey;
-
- private ColumnInfo[] ciReturn;
-
/** List of ColumnInfo that should have the field names of the selected
database table */
private final List<ColumnInfo> tableFieldColumns = new ArrayList<>();
+
+ /** List of ColumnInfo that should have the field names of the input fields
*/
+ private final List<ColumnInfo> inputFieldColumns = new ArrayList<>();
public InsertUpdateDialog(
Shell parent, IVariables variables, Object in, PipelineMeta
pipelineMeta, String sname) {
super(parent, variables, (BaseTransformMeta) in, pipelineMeta, sname);
input = (InsertUpdateMeta) in;
- inputFields = new HashMap<>();
}
@Override
@@ -137,11 +132,12 @@ public class InsertUpdateDialog extends
BaseTransformDialog implements ITransfor
shell.setText(BaseMessages.getString(PKG,
"InsertUpdateDialog.Shell.Title"));
int middle = props.getMiddlePct();
- int margin = props.getMargin();
+ int margin = PropsUi.getMargin();
// TransformName line
wlTransformName = new Label(shell, SWT.RIGHT);
- wlTransformName.setText(BaseMessages.getString(PKG,
"InsertUpdateDialog.TransformName.Label"));
+ wlTransformName.setText(BaseMessages.getString(PKG,
"System.TransformName.Label"));
+ wlTransformName.setToolTipText(BaseMessages.getString(PKG,
"System.TransformName.Tooltip"));
PropsUi.setLook(wlTransformName);
fdlTransformName = new FormData();
fdlTransformName.left = new FormAttachment(0, 0);
@@ -268,7 +264,7 @@ public class InsertUpdateDialog extends BaseTransformDialog
implements ITransfor
? input.getInsertUpdateLookupField().getLookupKeys().size()
: 1);
- ciKey = new ColumnInfo[nrKeyCols];
+ ColumnInfo[] ciKey = new ColumnInfo[nrKeyCols];
ciKey[0] =
new ColumnInfo(
BaseMessages.getString(PKG,
"InsertUpdateDialog.ColumnInfo.TableField"),
@@ -298,13 +294,18 @@ public class InsertUpdateDialog extends
BaseTransformDialog implements ITransfor
ColumnInfo.COLUMN_TYPE_CCOMBO,
new String[] {""},
false);
+
ciKey[3] =
new ColumnInfo(
BaseMessages.getString(PKG,
"InsertUpdateDialog.ColumnInfo.StreamField2"),
ColumnInfo.COLUMN_TYPE_CCOMBO,
new String[] {""},
false);
- tableFieldColumns.add(ciKey[0]);
+
+ tableFieldColumns.add(ciKey[0]);
+ inputFieldColumns.add(ciKey[2]);
+ inputFieldColumns.add(ciKey[3]);
+
wKey =
new TableView(
variables,
@@ -356,7 +357,7 @@ public class InsertUpdateDialog extends BaseTransformDialog
implements ITransfor
? input.getInsertUpdateLookupField().getValueFields().size()
: 1);
- ciReturn = new ColumnInfo[upInsCols];
+ ColumnInfo[] ciReturn = new ColumnInfo[upInsCols];
ciReturn[0] =
new ColumnInfo(
BaseMessages.getString(PKG,
"InsertUpdateDialog.ColumnInfo.TableField"),
@@ -374,7 +375,10 @@ public class InsertUpdateDialog extends
BaseTransformDialog implements ITransfor
BaseMessages.getString(PKG,
"InsertUpdateDialog.ColumnInfo.Update"),
ColumnInfo.COLUMN_TYPE_CCOMBO,
new String[] {"Y", "N"});
+
tableFieldColumns.add(ciReturn[0]);
+ inputFieldColumns.add(ciReturn[1]);
+
wReturn =
new TableView(
variables,
@@ -408,50 +412,14 @@ public class InsertUpdateDialog extends
BaseTransformDialog implements ITransfor
fdReturn.bottom = new FormAttachment(wOk, -2 * margin);
wReturn.setLayoutData(fdReturn);
- //
- // Search the fields in the background
- //
-
- final Runnable runnable =
- () -> {
- TransformMeta transformMeta =
pipelineMeta.findTransform(transformName);
- 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);
- }
-
- setComboBoxes();
- } catch (HopException e) {
- logError(BaseMessages.getString(PKG,
"System.Dialog.GetFieldsFailed.Message"));
- }
- }
- };
- new Thread(runnable).start();
-
// Add listeners
wGet.addListener(SWT.Selection, e -> get());
wGetLU.addListener(SWT.Selection, e -> getUpdate());
-
- wbSchema.addSelectionListener(
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- getSchemaNames();
- }
- });
- wbTable.addSelectionListener(
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- getTableName();
- }
- });
+ wbSchema.addListener(SWT.Selection, e -> getSchemaName());
+ wbTable.addListener(SWT.Selection, e -> getTableName());
getData();
+ setInputFieldCombo();
setTableFieldCombo();
input.setChanged(changed);
@@ -460,24 +428,24 @@ public class InsertUpdateDialog extends
BaseTransformDialog implements ITransfor
return transformName;
}
- 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
- ciKey[2].setComboValues(fieldNames);
- ciKey[3].setComboValues(fieldNames);
- // return fields
- ciReturn[1].setComboValues(fieldNames);
+ /**
+ * Search the fields in the background
+ */
+ protected void setInputFieldCombo() {
+ shell.getDisplay().asyncExec(() -> {
+ TransformMeta transformMeta = pipelineMeta.findTransform(transformName);
+ if (transformMeta != null) {
+ try {
+ IRowMeta rowMeta = pipelineMeta.getPrevTransformFields(variables,
transformMeta);
+ String[] fieldNames = Const.sortStrings(rowMeta.getFieldNames());
+ for (ColumnInfo colInfo : inputFieldColumns) {
+ colInfo.setComboValues(fieldNames);
+ }
+ } catch (HopException e) {
+ logError(BaseMessages.getString(PKG,
"System.Dialog.GetFieldsFailed.Message"));
+ }
+ }
+ });
}
/**
@@ -757,56 +725,43 @@ public class InsertUpdateDialog extends
BaseTransformDialog implements ITransfor
}
private void setTableFieldCombo() {
- Runnable fieldLoader =
- () -> {
- if (!wTable.isDisposed() && !wConnection.isDisposed() &&
!wSchema.isDisposed()) {
- final String tableName = wTable.getText();
- final String connectionName = wConnection.getText();
- final String schemaName = wSchema.getText();
-
- // clear
- for (ColumnInfo colInfo : tableFieldColumns) {
- colInfo.setComboValues(new String[] {});
- }
- if (!Utils.isEmpty(tableName)) {
- DatabaseMeta databaseMeta =
pipelineMeta.findDatabase(connectionName, variables);
- if (databaseMeta != null) {
- Database db = new Database(loggingObject, variables,
databaseMeta);
- try {
- db.connect();
-
- IRowMeta r =
- db.getTableFieldsMeta(
- variables.resolve(schemaName),
variables.resolve(tableName));
- if (null != r) {
- String[] fieldNames = r.getFieldNames();
- if (null != fieldNames) {
- for (ColumnInfo colInfo : tableFieldColumns) {
- colInfo.setComboValues(fieldNames);
- }
- }
- }
- } catch (Exception e) {
+ shell.getDisplay().asyncExec(() -> {
+ if (!wTable.isDisposed() && !wConnection.isDisposed() &&
!wSchema.isDisposed()) {
+ final String tableName = wTable.getText();
+ final String connectionName = wConnection.getText();
+ final String schemaName = wSchema.getText();
+
+ // clear
+ for (ColumnInfo colInfo : tableFieldColumns) {
+ colInfo.setComboValues(new String[] {});
+ }
+ if (!Utils.isEmpty(tableName)) {
+ DatabaseMeta databaseMeta =
pipelineMeta.findDatabase(connectionName, variables);
+ if (databaseMeta != null) {
+ try (Database database = new Database(loggingObject, variables,
databaseMeta)) {
+ database.connect();
+
+ IRowMeta rowMeta =
database.getTableFieldsMeta(variables.resolve(schemaName),
+ variables.resolve(tableName));
+ if (null != rowMeta) {
+ String[] fieldNames =
Const.sortStrings(rowMeta.getFieldNames());
+ if (null != fieldNames) {
for (ColumnInfo colInfo : tableFieldColumns) {
- colInfo.setComboValues(new String[] {});
- }
- // ignore any errors here. drop downs will not be
- // filled, but no problem for the user
- } finally {
- try {
- if (db != null) {
- db.disconnect();
- }
- } catch (Exception ignored) {
- // ignore any errors here.
- db = null;
+ colInfo.setComboValues(fieldNames);
}
}
}
+ } catch (Exception e) {
+ for (ColumnInfo colInfo : tableFieldColumns) {
+ colInfo.setComboValues(new String[] {});
+ }
+ // ignore any errors here. drop downs will not be
+ // filled, but no problem for the user
}
}
- };
- shell.getDisplay().asyncExec(fieldLoader);
+ }
+ }
+ });
}
private void ok() {
@@ -829,11 +784,10 @@ public class InsertUpdateDialog extends
BaseTransformDialog implements ITransfor
dispose();
}
- private void getSchemaNames() {
+ private void getSchemaName() {
DatabaseMeta databaseMeta =
pipelineMeta.findDatabase(wConnection.getText(), variables);
if (databaseMeta != null) {
- Database database = new Database(loggingObject, variables, databaseMeta);
- try {
+ try (Database database = new Database(loggingObject, variables,
databaseMeta)) {
database.connect();
String[] schemas = database.getSchemas();
@@ -865,8 +819,6 @@ public class InsertUpdateDialog extends BaseTransformDialog
implements ITransfor
BaseMessages.getString(PKG, "System.Dialog.Error.Title"),
BaseMessages.getString(PKG,
"InsertUpDateDialog.ErrorGettingSchemas"),
e);
- } finally {
- database.disconnect();
}
}
}
diff --git
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
index a250a0984c..2e29958373 100644
---
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
+++
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_en_US.properties
@@ -60,7 +60,6 @@ InsertUpdateMeta.CheckResult.NoInputError=No input received
from other transform
InsertUpdateDialog.GetFields.Button=\ &Get fields
InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=No table is defined on
this connection.
InsertUpDateDialog.GetSchemas.Error=ERROR
-InsertUpdateDialog.TransformName.Label=Transform name
InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=Couldn''t read the table
info, please check the table-name & permissions.
InsertUpdateMeta.CheckResult.TableNameOK=Table name is filled in.
InsertUpdateDialog.Browse.Button=&Browse...
diff --git
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
index 7a362ca2cd..934b6cbb1f 100644
---
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
+++
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_AR.properties
@@ -61,7 +61,6 @@ InsertUpdateMeta.CheckResult.NoInputError=No se est\u00E1
recibiendo entrada de
InsertUpdateDialog.GetFields.Button=\ &Obtener campos
InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=No hay ninguna tabla
definida en esta conexi\u00F3n.
InsertUpDateDialog.GetSchemas.Error=ERROR
-InsertUpdateDialog.TransformName.Label=Nombre del paso
InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=No se ha podido leer la
informaci\u00F3n de la tabla, compruebe el nombre de la tabla y los permisos.
InsertUpdateMeta.CheckResult.TableNameOK=Se ha introducido un nombre de tabla.
InsertUpdateDialog.Browse.Button=&Examinar...
diff --git
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
index 4dda313eb2..6ce1028a98 100644
---
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
+++
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_es_ES.properties
@@ -32,7 +32,6 @@ InsertUpdate.Log.ErrorInTransform=Error en paso, pidiendo a
todos que se paren:
InsertUpdate.Log.ErrorOccurredDuringTransformInitialize=Se ha producido un
error inicializando, el proceso se detendrá:
InsertUpdate.Log.UnableToCommitConnection=No se ha podido terminar
transacción(s):
InsertUpdateDialog.Shell.Title=Insertar/actualizar
-InsertUpdateDialog.TransformName.Label=Nombre de paso
InsertUpdateDialog.TargetSchema.Label=Esquema destino
InsertUpdateDialog.TargetTable.Label=Tabla destino
InsertUpdateDialog.Browse.Button=&Examinar...
diff --git
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
index eaaa13f1c8..0f5f0e4ba3 100644
---
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
+++
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_fr_FR.properties
@@ -62,7 +62,6 @@ InsertUpdateMeta.CheckResult.NoInputError=Aucun flux en
provenance des autres tr
InsertUpdateDialog.GetFields.Button=\ &R\u00E9cup\u00E9rer champs
InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=Aucun table n''a
\u00E9t\u00E9 d\u00E9finie sur cette connexion.
InsertUpDateDialog.GetSchemas.Error=ERREUR
-InsertUpdateDialog.TransformName.Label=Nom de la transformation
InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=Impossible de lire la table
\! Veuillez svp v\u00E9rifier le nom de la table et les droits d''acc\u00E8s.
InsertUpdateMeta.CheckResult.TableNameOK=Le nom de la table a \u00E9t\u00E9
renseign\u00E9.
InsertUpdateDialog.Browse.Button=&Parcourir...
diff --git
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
index ba352db4cc..44894adef0 100644
---
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
+++
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ja_JP.properties
@@ -62,7 +62,6 @@ InsertUpdateMeta.CheckResult.NoInputError=No input received
from other transform
InsertUpdateDialog.GetFields.Button=\u3000\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u53d6\u5f97(&G)
InsertUpdateMeta.ReturnValue.NoTableDefinedOnConnection=No table is defined on
this connection.
InsertUpDateDialog.GetSchemas.Error=\u30a8\u30e9\u30fc
-InsertUpdateDialog.TransformName.Label=\u30b9\u30c6\u30c3\u30d7\u540d
InsertUpdateMeta.CheckResult.CouldNotReadTableInfo=Couldn''t read the table
info, please check the table-name & permissions.
InsertUpdateMeta.CheckResult.TableNameOK=Table name is filled in.
InsertUpdateDialog.Browse.Button=\u53c2\u7167(&B)....
diff --git
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
index 04b408d646..f770ddaab3 100644
---
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
+++
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_ko_KR.properties
@@ -65,7 +65,6 @@
InsertUpdateMeta.CheckResult.DatabaseErrorOccurred=\uB370\uC774\uD130\uBCA0\uC77
InsertUpdateDialog.TargetTable.Label=\uB300\uC0C1 \uD14C\uC774\uBE14
InsertUpdateDialog.SQLError.DialogTitle=\uC624\uB958
InsertUpdateDialog.InvalidConnection.DialogTitle=\uC624\uB958
-InsertUpdateDialog.TransformName.Label=transform \uC774\uB984
InsertUpdateDialog.NoSQLNeeds.DialogTitle=\uD655\uC778
InsertUpdateDialog.CouldNotBuildSQL.DialogMessage=\uC624\uB958\uB85C
\uC778\uD574 SQL\uC744 \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
InsertUpDateDialog.AvailableSchemas.Title=\uC0AC\uC6A9 \uAC00\uB2A5\uD55C
\uC2A4\uD0A4\uB9C8
diff --git
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
index 2bc0d3ea0a..11b98eb3fd 100644
---
a/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
+++
b/plugins/transforms/insertupdate/src/main/resources/org/apache/hop/pipeline/transforms/insertupdate/messages/messages_zh_CN.properties
@@ -79,7 +79,6 @@ InsertUpdateDialog.Shell.Title=\u63D2\u5165/\u66F4\u65B0
InsertUpdateDialog.TargetSchema.Label=\u76EE\u6807\u6A21\u5F0F\:
InsertUpdateDialog.TargetTable.Label=\u76EE\u6807\u8868\:
InsertUpdateDialog.TransformMeta.Title=CombinationLookup
-InsertUpdateDialog.TransformName.Label=Transform \u540D\u79F0\:
InsertUpdateDialog.UpdateBypassed.Label=\u4E0D\u6267\u884C\u4EFB\u4F55\u66F4\u65B0\:
InsertUpdateDialog.UpdateFields.Label=\u66F4\u65B0\u5B57\u6BB5\:
InsertUpdateMeta.CheckResult.AllFieldsFoundInInput=All fields found in the
input stream.