This is an automated email from the ASF dual-hosted git repository.
hansva 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 1e97eb50a8 [bug] hide/disable unused fields #4843 (#5768)
1e97eb50a8 is described below
commit 1e97eb50a81df56d7b4b9a2af644cef079d0d6aa
Author: Alex Mueller <[email protected]>
AuthorDate: Tue Oct 14 15:42:17 2025 +0200
[bug] hide/disable unused fields #4843 (#5768)
[bug] catch NPE when a previous transform has no proper configuration
[chore] refactored layout initialization for better overview
[DOCS] explain transform Get Filenames operating modes
[chore]: refactored to use WidgetUtils
Co-authored-by: Alex Mueller <[email protected]>
---
.../pages/pipeline/transforms/getfilenames.adoc | 36 +-
.../getfilenames/GetFileNamesDialog.java | 1002 ++++++++++----------
.../messages/messages_de_DE.properties | 8 +-
.../messages/messages_en_US.properties | 10 +-
.../messages/messages_es_AR.properties | 3 +-
.../messages/messages_fr_FR.properties | 3 +-
.../messages/messages_it_IT.properties | 3 +-
.../messages/messages_ja_JP.properties | 3 +-
.../messages/messages_ko_KR.properties | 3 +-
.../messages/messages_zh_CN.properties | 3 +-
.../org/apache/hop/ui/core/FormDataBuilder.java | 8 +
11 files changed, 559 insertions(+), 523 deletions(-)
diff --git
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/getfilenames.adoc
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/getfilenames.adoc
index 915482ca61..254ab9eb11 100644
---
a/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/getfilenames.adoc
+++
b/docs/hop-user-manual/modules/ROOT/pages/pipeline/transforms/getfilenames.adoc
@@ -20,29 +20,35 @@ under the License.
= image:transforms/icons/getfilenames.svg[Get filenames transform Icon,
role="image-doc-icon"] Get filenames
-[%noheader,cols="3a,1a", role="table-no-borders" ]
+[%noheader,cols="3a,1a",role="table-no-borders" ]
|===
|
+
== Description
The Get File Names transform allows you to get information associated with
file names on the file system.
The information about the retrieved files is added as rows onto the stream.
-|
-== Supported Engines
-[%noheader,cols="2,1a",frame=none, role="table-supported-engines"]
+| == Supported Engines
+
+[%noheader,cols="2,1a",frame=none,role="table-supported-engines"]
!===
-!Hop Engine! image:check_mark.svg[Supported, 24]
-!Spark! image:check_mark.svg[Supported, 24]
-!Flink! image:check_mark.svg[Supported, 24]
-!Dataflow! image:check_mark.svg[Supported, 24]
+!Hop Engine! image:check_mark.svg[Supported,24]
+!Spark! image:check_mark.svg[Supported,24]
+!Flink! image:check_mark.svg[Supported,24]
+!Dataflow! image:check_mark.svg[Supported,24]
!===
+
|===
== Usage
-The output fields for this transform are:
+This transform operates in two modes.
+
+When metadata is configured within this transform, the input from previous
transforms is discarded and new rows are being generated.
+
+When metadata is provided form a file field, the following fields are appended
to the output:
* filename - the complete filename, including the path (/tmp/hop/somefile.txt)
* short_filename - only the filename, without the path (somefile.txt)
@@ -65,15 +71,18 @@ For more information about specifying file locations, see
section "Selecting fil
Example: You have a static directory of c:\temp where you expect files with an
extension of .dat to be placed.
Under file/directory you would specify c:\temp and under Wildcard you would
have a RegEx with something like .*\.dat$
+
[options="header"]
|===
|Option|Description
|Is filename defined in a field?|Indicates whether the file you want to load
is in a field that you can specify.
+2+|*Filenames from field:*
|Get filename from field|The field to load the file name from.
|Inclusion wildcard field (RegExp)|If you are loading multiple files, define a
regular expression that matches the file names to load.
|Exclusion wildcard field (RegExp)|Define a regular expression that matches
files you want to exclude from the transform.
|Include subfolders?|Indicates whether files in subfolders are considered by
the expressions.
+2+|*Filenames as defined:*
|File or directory|If the file is not defined by a field, specify the file
name or the directory to load multiple files from.
|Add|Click to add the specified file, directory, and regular expressions to
the selected file list.
|Browse|Click to select a file.
@@ -95,10 +104,12 @@ The filters tab allows you to filter the retrieved file
names based on:
It also gives you:
* The ability to include a row number in the output
-* The ability to limit the number of rows returned. The limit parameter will
act on the total number of rows returned and not only on the number of files
returned.
+* The ability to limit the number of rows returned.
+The limit parameter will act on the total number of rows returned and not only
on the number of files returned.
* The ability to add the filename(s) to the result list
* The ability to print an error message in case no files/folders are found
without stop processing
* The ability to raise an exception and stop processing in case no
files/folders are found.
+
[options="header"]
|===
|Option|Description
@@ -113,10 +124,13 @@ It also gives you:
|===
=== Details on how exceptions are raised when no files are found
+
As described above, if you enable the switch in the _Filter_ tab, Hop will
raise an exception in case no files are found and will stop the process.
In this case, we need to be aware about two different ways the exceptions are
raised depending on the way you choose to identify the set of files you are
looking for.
* If you specified the files (or the inclusion/exclusion expressions) as a set
in the _Selected files_ table, the files retrieval is performed by considering
the entire set specified (all at once) and the exception is raised in no files
are found.
-* If you specified the files by going through the _Filenames from field_
option, the details about the files that we are going to retrieve comes in the
incoming rows. That means that the retrieval is done row by row and as soon as
one of the details used to specify the searched files fails the exception is
raised. Therefore, in this case, the evaluation to fire the exception is done
after the evaluation of each single incoming row and not evaluating the overall
dataset returned and gener [...]
+* If you specified the files by going through the _Filenames from field_
option, the details about the files that we are going to retrieve comes in the
incoming rows.
+That means that the retrieval is done row by row and as soon as one of the
details used to specify the searched files fails the exception is raised.
+Therefore, in this case, the evaluation to fire the exception is done after
the evaluation of each single incoming row and not evaluating the overall
dataset returned and generated by the details found in the incoming rows.
diff --git
a/plugins/transforms/getfilenames/src/main/java/org/apache/hop/pipeline/transforms/getfilenames/GetFileNamesDialog.java
b/plugins/transforms/getfilenames/src/main/java/org/apache/hop/pipeline/transforms/getfilenames/GetFileNamesDialog.java
index 7c6f2f24df..8d13e0900e 100644
---
a/plugins/transforms/getfilenames/src/main/java/org/apache/hop/pipeline/transforms/getfilenames/GetFileNamesDialog.java
+++
b/plugins/transforms/getfilenames/src/main/java/org/apache/hop/pipeline/transforms/getfilenames/GetFileNamesDialog.java
@@ -21,6 +21,7 @@ import org.apache.hop.core.Const;
import org.apache.hop.core.Props;
import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.fileinput.FileInputList;
+import org.apache.hop.core.logging.LogChannel;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
@@ -28,7 +29,9 @@ 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.FormDataBuilder;
import org.apache.hop.ui.core.PropsUi;
+import org.apache.hop.ui.core.WidgetUtils;
import org.apache.hop.ui.core.dialog.BaseDialog;
import org.apache.hop.ui.core.dialog.EnterNumberDialog;
import org.apache.hop.ui.core.dialog.EnterSelectionDialog;
@@ -49,11 +52,10 @@ import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
@@ -105,6 +107,7 @@ public class GetFileNamesDialog extends BaseTransformDialog
{
private final GetFileNamesMeta input;
private Button wFileField;
+ private Label wFileFieldWarning;
private Label wlFilenameField;
private CCombo wFilenameField;
@@ -128,6 +131,10 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
private boolean getPreviousFields = false;
+ private Group groupAsDefined;
+
+ private Group groupFromField;
+
public GetFileNamesDialog(
Shell parent,
IVariables variables,
@@ -137,108 +144,60 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
input = transformMeta;
}
- @Override
- public String open() {
- Shell parent = getParent();
-
- shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX |
SWT.MIN);
- PropsUi.setLook(shell);
- setShellImage(shell, input);
-
- ModifyListener lsMod = e -> input.setChanged();
- changed = input.hasChanged();
-
- FormLayout formLayout = new FormLayout();
- formLayout.marginWidth = PropsUi.getFormMargin();
- formLayout.marginHeight = PropsUi.getFormMargin();
-
- shell.setLayout(formLayout);
- shell.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.DialogTitle"));
+ private void createTransformName(Shell shell, int margin, int middle,
ModifyListener lsMod) {
+ // TransformName line
+ wlTransformName = new Label(shell, SWT.RIGHT);
+ wlTransformName.setText(BaseMessages.getString(PKG,
"System.TransformName.Label"));
+ wlTransformName.setToolTipText(BaseMessages.getString(PKG,
"System.TransformName.Tooltip"));
+ PropsUi.setLook(wlTransformName);
+ wlTransformName.setLayoutData(
+ new FormDataBuilder().left(0, margin).top(0, margin).right(middle, -2
* margin).result());
- int middle = props.getMiddlePct();
- int margin = PropsUi.getMargin();
+ wTransformName = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
+ wTransformName.setText(transformName);
+ PropsUi.setLook(wTransformName);
+ wTransformName.addModifyListener(lsMod);
+ wTransformName.setLayoutData(
+ new FormDataBuilder().left(middle, -margin).top(0, margin).right(100,
-margin).result());
+ }
- // Buttons at the bottom
+ private void createDialogButtons(Shell shell, int margin) {
wOk = new Button(shell, SWT.PUSH);
wOk.setText(BaseMessages.getString(PKG, "System.Button.OK"));
wOk.addListener(SWT.Selection, e -> ok());
+
wPreview = new Button(shell, SWT.PUSH);
wPreview.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Preview.Button"));
wPreview.addListener(SWT.Selection, e -> preview());
+
wCancel = new Button(shell, SWT.PUSH);
wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel"));
wCancel.addListener(SWT.Selection, e -> cancel());
setButtonPositions(new Button[] {wOk, wPreview, wCancel}, margin, null);
+ }
- // TransformName line
- wlTransformName = new Label(shell, SWT.RIGHT);
- 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);
- fdlTransformName.top = new FormAttachment(0, margin);
- fdlTransformName.right = new FormAttachment(middle, -margin);
- wlTransformName.setLayoutData(fdlTransformName);
- wTransformName = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
- wTransformName.setText(transformName);
- PropsUi.setLook(wTransformName);
- wTransformName.addModifyListener(lsMod);
- fdTransformName = new FormData();
- fdTransformName.left = new FormAttachment(middle, 0);
- fdTransformName.top = new FormAttachment(0, margin);
- fdTransformName.right = new FormAttachment(100, 0);
- wTransformName.setLayoutData(fdTransformName);
-
- CTabFolder wTabFolder = new CTabFolder(shell, SWT.BORDER);
- PropsUi.setLook(wTabFolder, Props.WIDGET_STYLE_TAB);
-
- // ////////////////////////
- // START OF FILE TAB ///
- // ////////////////////////
- CTabItem wFileTab = new CTabItem(wTabFolder, SWT.NONE);
- wFileTab.setFont(GuiResource.getInstance().getFontDefault());
- wFileTab.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FileTab.TabTitle"));
-
- Composite wFileComp = new Composite(wTabFolder, SWT.NONE);
- PropsUi.setLook(wFileComp);
-
- FormLayout fileLayout = new FormLayout();
- fileLayout.marginWidth = 3;
- fileLayout.marginHeight = 3;
- wFileComp.setLayout(fileLayout);
-
- // ///////////////////////////////
- // START OF Origin files GROUP //
- // ///////////////////////////////
-
- Group wOriginFiles = new Group(wFileComp, SWT.SHADOW_NONE);
- PropsUi.setLook(wOriginFiles);
- wOriginFiles.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.OriginFiles.Label"));
-
- FormLayout originFilesgroupLayout = new FormLayout();
- originFilesgroupLayout.marginWidth = 10;
- originFilesgroupLayout.marginHeight = 10;
- wOriginFiles.setLayout(originFilesgroupLayout);
-
- // Is Filename defined in a Field
- Label wlFileField = new Label(wOriginFiles, SWT.RIGHT);
- wlFileField.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FileField.Label"));
- PropsUi.setLook(wlFileField);
- FormData fdlFileField = new FormData();
- fdlFileField.left = new FormAttachment(0, -margin);
- fdlFileField.top = new FormAttachment(0, margin);
- fdlFileField.right = new FormAttachment(middle, -2 * margin);
- wlFileField.setLayoutData(fdlFileField);
-
- wFileField = new Button(wOriginFiles, SWT.CHECK);
+ private Group createGroupOpMode(Composite parent, int margin, int middle) {
+ Group group = new Group(parent, SWT.SHADOW_NONE);
+ PropsUi.setLook(group);
+ group.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Group.OpMode.Label"));
+ WidgetUtils.setFormLayout(group, 10);
+
+ Label label = new Label(group, SWT.RIGHT);
+ label.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FileField.Label"));
+ PropsUi.setLook(label);
+ label.setLayoutData(
+ new FormDataBuilder()
+ .left(0, -margin)
+ .top(group, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ wFileField = new Button(group, SWT.CHECK);
PropsUi.setLook(wFileField);
wFileField.setToolTipText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FileField.Tooltip"));
- FormData fdFileField = new FormData();
- fdFileField.left = new FormAttachment(middle, -margin);
- fdFileField.top = new FormAttachment(wlFileField, 0, SWT.CENTER);
- wFileField.setLayoutData(fdFileField);
- SelectionAdapter lfilefield =
+ wFileField.setLayoutData(new FormDataBuilder().left(middle,
-margin).top(0, margin).result());
+
+ wFileField.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
@@ -246,89 +205,117 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
setFileField();
input.setChanged();
}
- };
- wFileField.addSelectionListener(lfilefield);
+ });
+
+ wFileFieldWarning = new Label(group, SWT.LEFT);
+ wFileFieldWarning.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FileField.Warning"));
+ PropsUi.setLook(wFileFieldWarning);
+ wFileFieldWarning.setLayoutData(
+ new FormDataBuilder()
+ .left(wFileField, margin)
+ .top(label, 0, SWT.CENTER)
+ .right(100, -margin)
+ .result());
+
+ return group;
+ }
+
+ private Group createGroupFromField(
+ Composite parent, int margin, int middle, ModifyListener lsMod) {
+ Group group = new Group(parent, SWT.SHADOW_NONE);
+ PropsUi.setLook(group);
+ group.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Group.FromField.Label"));
+ WidgetUtils.setFormLayout(group, 10);
// Filename field
- wlFilenameField = new Label(wOriginFiles, SWT.RIGHT);
+ wlFilenameField = new Label(group, SWT.RIGHT);
wlFilenameField.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FilenameField.Label"));
PropsUi.setLook(wlFilenameField);
- FormData fdlFilenameField = new FormData();
- fdlFilenameField.left = new FormAttachment(0, -margin);
- fdlFilenameField.top = new FormAttachment(wFileField, margin);
- fdlFilenameField.right = new FormAttachment(middle, -2 * margin);
- wlFilenameField.setLayoutData(fdlFilenameField);
-
- wFilenameField = new CCombo(wOriginFiles, SWT.BORDER | SWT.READ_ONLY);
+ wlFilenameField.setLayoutData(
+ new FormDataBuilder()
+ .left(0, -margin)
+ .top(wFileField, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ wFilenameField = new CCombo(group, SWT.BORDER | SWT.READ_ONLY);
wFilenameField.setEditable(true);
PropsUi.setLook(wFilenameField);
wFilenameField.addModifyListener(lsMod);
- FormData fdFilenameField = new FormData();
- fdFilenameField.left = new FormAttachment(middle, -margin);
- fdFilenameField.top = new FormAttachment(wFileField, margin);
- fdFilenameField.right = new FormAttachment(100, -margin);
- wFilenameField.setLayoutData(fdFilenameField);
+ wFilenameField.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wFileField, margin)
+ .right(100, -margin)
+ .result());
// Wildcard field
- wlWildcardField = new Label(wOriginFiles, SWT.RIGHT);
+ wlWildcardField = new Label(group, SWT.RIGHT);
wlWildcardField.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.WildcardField.Label"));
PropsUi.setLook(wlWildcardField);
- FormData fdlWildcardField = new FormData();
- fdlWildcardField.left = new FormAttachment(0, -margin);
- fdlWildcardField.top = new FormAttachment(wFilenameField, margin);
- fdlWildcardField.right = new FormAttachment(middle, -2 * margin);
- wlWildcardField.setLayoutData(fdlWildcardField);
-
- wWildcardField = new CCombo(wOriginFiles, SWT.BORDER | SWT.READ_ONLY);
+ wlWildcardField.setLayoutData(
+ new FormDataBuilder()
+ .left(0, -margin)
+ .top(wFilenameField, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ wWildcardField = new CCombo(group, SWT.BORDER | SWT.READ_ONLY);
wWildcardField.setEditable(true);
PropsUi.setLook(wWildcardField);
wWildcardField.addModifyListener(lsMod);
- FormData fdWildcardField = new FormData();
- fdWildcardField.left = new FormAttachment(middle, -margin);
- fdWildcardField.top = new FormAttachment(wFilenameField, margin);
- fdWildcardField.right = new FormAttachment(100, -margin);
- wWildcardField.setLayoutData(fdWildcardField);
+ wWildcardField.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wFilenameField, margin)
+ .right(100, -margin)
+ .result());
// ExcludeWildcard field
- wlExcludeWildcardField = new Label(wOriginFiles, SWT.RIGHT);
+ wlExcludeWildcardField = new Label(group, SWT.RIGHT);
wlExcludeWildcardField.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.ExcludeWildcardField.Label"));
PropsUi.setLook(wlExcludeWildcardField);
- FormData fdlExcludeWildcardField = new FormData();
- fdlExcludeWildcardField.left = new FormAttachment(0, -margin);
- fdlExcludeWildcardField.top = new FormAttachment(wWildcardField, margin);
- fdlExcludeWildcardField.right = new FormAttachment(middle, -2 * margin);
- wlExcludeWildcardField.setLayoutData(fdlExcludeWildcardField);
-
- wExcludeWildcardField = new CCombo(wOriginFiles, SWT.BORDER |
SWT.READ_ONLY);
+ wlExcludeWildcardField.setLayoutData(
+ new FormDataBuilder()
+ .left(0, -margin)
+ .top(wWildcardField, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ wExcludeWildcardField = new CCombo(group, SWT.BORDER | SWT.READ_ONLY);
wExcludeWildcardField.setEditable(true);
PropsUi.setLook(wExcludeWildcardField);
wExcludeWildcardField.addModifyListener(lsMod);
- FormData fdExcludeWildcardField = new FormData();
- fdExcludeWildcardField.left = new FormAttachment(middle, -margin);
- fdExcludeWildcardField.top = new FormAttachment(wWildcardField, margin);
- fdExcludeWildcardField.right = new FormAttachment(100, -margin);
- wExcludeWildcardField.setLayoutData(fdExcludeWildcardField);
+ wExcludeWildcardField.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wWildcardField, margin)
+ .right(100, -margin)
+ .result());
// Is includeSubFoldername defined in a Field
- wlIncludeSubFolder = new Label(wOriginFiles, SWT.RIGHT);
+ wlIncludeSubFolder = new Label(group, SWT.RIGHT);
wlIncludeSubFolder.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.IncludeSubFolder.Label"));
PropsUi.setLook(wlIncludeSubFolder);
- FormData fdlIncludeSubFolder = new FormData();
- fdlIncludeSubFolder.left = new FormAttachment(0, -margin);
- fdlIncludeSubFolder.top = new FormAttachment(wExcludeWildcardField,
margin);
- fdlIncludeSubFolder.right = new FormAttachment(middle, -2 * margin);
- wlIncludeSubFolder.setLayoutData(fdlIncludeSubFolder);
-
- wIncludeSubFolder = new Button(wOriginFiles, SWT.CHECK);
+ wlIncludeSubFolder.setLayoutData(
+ new FormDataBuilder()
+ .left(0, -margin)
+ .top(wExcludeWildcardField, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ wIncludeSubFolder = new Button(group, SWT.CHECK);
PropsUi.setLook(wIncludeSubFolder);
wIncludeSubFolder.setToolTipText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.IncludeSubFolder.Tooltip"));
- FormData fdIncludeSubFolder = new FormData();
- fdIncludeSubFolder.left = new FormAttachment(middle, -margin);
- fdIncludeSubFolder.top = new FormAttachment(wlIncludeSubFolder, 0,
SWT.CENTER);
- wIncludeSubFolder.setLayoutData(fdIncludeSubFolder);
+ wIncludeSubFolder.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wlIncludeSubFolder, 0, SWT.CENTER)
+ .result());
+
wIncludeSubFolder.addSelectionListener(
new SelectionAdapter() {
@Override
@@ -337,129 +324,229 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
}
});
- FormData fdOriginFiles = new FormData();
- fdOriginFiles.left = new FormAttachment(0, margin);
- fdOriginFiles.top = new FormAttachment(wFilenameList, margin);
- fdOriginFiles.right = new FormAttachment(100, -margin);
- wOriginFiles.setLayoutData(fdOriginFiles);
+ return group;
+ }
- // ///////////////////////////////////////////////////////////
- // / END OF Origin files GROUP
- // ///////////////////////////////////////////////////////////
+ private Group createGroupAsDefined(
+ Composite parent, int margin, int middle, ModifyListener lsMod) {
+ Group group = new Group(parent, SWT.SHADOW_NONE);
+ PropsUi.setLook(group);
+ group.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Group.ByDefinition.Label"));
+ WidgetUtils.setFormLayout(group, 10);
- // Filename line
- wlFilename = new Label(wFileComp, SWT.RIGHT);
+ // File or directory
+ wlFilename = new Label(group, SWT.RIGHT);
wlFilename.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Filename.Label"));
PropsUi.setLook(wlFilename);
- FormData fdlFilename = new FormData();
- fdlFilename.left = new FormAttachment(0, 0);
- fdlFilename.top = new FormAttachment(wOriginFiles, 2 * margin);
- fdlFilename.right = new FormAttachment(middle, -margin);
- wlFilename.setLayoutData(fdlFilename);
-
- wbbFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER);
+ wlFilename.setLayoutData(
+ new FormDataBuilder()
+ .left(0, -margin)
+ .top(wFileField, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ // Button: Browse...
+ wbbFilename = new Button(group, SWT.PUSH | SWT.CENTER);
PropsUi.setLook(wbbFilename);
wbbFilename.setText(BaseMessages.getString(PKG, "System.Button.Browse"));
wbbFilename.setToolTipText(
BaseMessages.getString(PKG,
"System.Tooltip.BrowseForFileOrDirAndAdd"));
- FormData fdbFilename = new FormData();
- fdbFilename.right = new FormAttachment(100, 0);
- fdbFilename.top = new FormAttachment(wlFilename, 0, SWT.CENTER);
- wbbFilename.setLayoutData(fdbFilename);
+ wbbFilename.setLayoutData(
+ new FormDataBuilder().top(wlFilename, 0, SWT.CENTER).right(100,
0).result());
+ wbbFilename.addListener(
+ SWT.Selection,
+ e -> {
+ if (!Utils.isEmpty(wFilemask.getText()) ||
!Utils.isEmpty(wExcludeFilemask.getText())) {
+ BaseDialog.presentDirectoryDialog(shell, wFilename, variables);
+ } else {
+ BaseDialog.presentFileDialog(
+ shell,
+ wFilename,
+ variables,
+ new String[] {"*.txt;*.csv", "*.csv", "*.txt", "*"},
+ new String[] {
+ BaseMessages.getString(PKG,
"GetFileNamesDialog.FileType.TextAndCSVFiles"),
+ BaseMessages.getString(PKG, "System.FileType.CSVFiles"),
+ BaseMessages.getString(PKG, "System.FileType.TextFiles"),
+ BaseMessages.getString(PKG, "System.FileType.AllFiles")
+ },
+ true);
+ }
+ });
- wbaFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER);
+ // Button: Add
+ wbaFilename = new Button(group, SWT.PUSH | SWT.CENTER);
PropsUi.setLook(wbaFilename);
wbaFilename.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FilenameAdd.Button"));
wbaFilename.setToolTipText(
BaseMessages.getString(PKG, "GetFileNamesDialog.FilenameAdd.Tooltip"));
- FormData fdbaFilename = new FormData();
- fdbaFilename.right = new FormAttachment(wbbFilename, -margin);
- fdbaFilename.top = new FormAttachment(wlFilename, 0, SWT.CENTER);
- wbaFilename.setLayoutData(fdbaFilename);
+ wbaFilename.setLayoutData(
+ new FormDataBuilder().top(wlFilename, 0,
SWT.CENTER).right(wbbFilename, -margin).result());
- wFilename = new TextVar(variables, wFileComp, SWT.SINGLE | SWT.LEFT |
SWT.BORDER);
+ wFilename = new TextVar(variables, group, SWT.SINGLE | SWT.LEFT |
SWT.BORDER);
PropsUi.setLook(wFilename);
wFilename.addModifyListener(lsMod);
- FormData fdFilename = new FormData();
- fdFilename.left = new FormAttachment(middle, 0);
- fdFilename.right = new FormAttachment(wbaFilename, -margin);
- fdFilename.top = new FormAttachment(wlFilename, 0, SWT.CENTER);
- wFilename.setLayoutData(fdFilename);
+ wFilename.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, 0)
+ .top(wlFilename, 0, SWT.CENTER)
+ .right(wbaFilename, -margin)
+ .result());
+
+ SelectionAdapter addFileToListAdapter =
+ new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent arg0) {
+ wFilenameList.add(
+ wFilename.getText(),
+ wFilemask.getText(),
+ wExcludeFilemask.getText(),
+ GetFileNamesMeta.RequiredFilesCode[0],
+ GetFileNamesMeta.RequiredFilesCode[0]);
+ wFilename.setText("");
+ wFilemask.setText("");
+ wFilenameList.removeEmptyRows();
+ wFilenameList.setRowNums();
+ wFilenameList.optWidth(true);
+ }
+ };
+ wbaFilename.addSelectionListener(addFileToListAdapter);
+ wFilename.addSelectionListener(addFileToListAdapter);
- wlFilemask = new Label(wFileComp, SWT.RIGHT);
+ // Inclusion wildcard (RegExp)
+ wlFilemask = new Label(group, SWT.RIGHT);
wlFilemask.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Filemask.Label"));
PropsUi.setLook(wlFilemask);
- FormData fdlFilemask = new FormData();
- fdlFilemask.left = new FormAttachment(0, 0);
- fdlFilemask.top = new FormAttachment(wFilename, margin);
- fdlFilemask.right = new FormAttachment(middle, -margin);
- wlFilemask.setLayoutData(fdlFilemask);
- wFilemask = new TextVar(variables, wFileComp, SWT.SINGLE | SWT.LEFT |
SWT.BORDER);
+ wlFilemask.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wFilename, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ wFilemask = new TextVar(variables, group, SWT.SINGLE | SWT.LEFT |
SWT.BORDER);
PropsUi.setLook(wFilemask);
wFilemask.addModifyListener(lsMod);
- FormData fdFilemask = new FormData();
- fdFilemask.left = new FormAttachment(middle, 0);
- fdFilemask.top = new FormAttachment(wlFilemask, 0, SWT.CENTER);
- fdFilemask.right = new FormAttachment(wFilename, 0, SWT.RIGHT);
- wFilemask.setLayoutData(fdFilemask);
-
- wlExcludeFilemask = new Label(wFileComp, SWT.RIGHT);
+ wFilemask.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, 0)
+ .top(wlFilemask, 0, SWT.CENTER)
+ .right(wFilename, 0, SWT.RIGHT)
+ .result());
+
+ // Exclusion wildcard (RegExp)
+ wlExcludeFilemask = new Label(group, SWT.RIGHT);
wlExcludeFilemask.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.ExcludeFilemask.Label"));
PropsUi.setLook(wlExcludeFilemask);
- FormData fdlExcludeFilemask = new FormData();
- fdlExcludeFilemask.left = new FormAttachment(0, 0);
- fdlExcludeFilemask.top = new FormAttachment(wFilemask, margin);
- fdlExcludeFilemask.right = new FormAttachment(middle, -margin);
- wlExcludeFilemask.setLayoutData(fdlExcludeFilemask);
- wExcludeFilemask = new TextVar(variables, wFileComp, SWT.SINGLE | SWT.LEFT
| SWT.BORDER);
+ wlExcludeFilemask.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wlFilemask, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ wExcludeFilemask = new TextVar(variables, group, SWT.SINGLE | SWT.LEFT |
SWT.BORDER);
PropsUi.setLook(wExcludeFilemask);
wExcludeFilemask.addModifyListener(lsMod);
- FormData fdExcludeFilemask = new FormData();
- fdExcludeFilemask.left = new FormAttachment(middle, 0);
- fdExcludeFilemask.top = new FormAttachment(wlExcludeFilemask, 0,
SWT.CENTER);
- fdExcludeFilemask.right = new FormAttachment(wFilename, 0, SWT.RIGHT);
- wExcludeFilemask.setLayoutData(fdExcludeFilemask);
-
- // Filename list line
- wlFilenameList = new Label(wFileComp, SWT.RIGHT);
+ wExcludeFilemask.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, 0)
+ .top(wlExcludeFilemask, 0, SWT.CENTER)
+ .right(wFilename, 0, SWT.RIGHT)
+ .result());
+
+ // Selected files:
+ wlFilenameList = new Label(group, SWT.RIGHT);
wlFilenameList.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FilenameList.Label"));
PropsUi.setLook(wlFilenameList);
- FormData fdlFilenameList = new FormData();
- fdlFilenameList.left = new FormAttachment(0, 0);
- fdlFilenameList.top = new FormAttachment(wExcludeFilemask, margin);
- fdlFilenameList.right = new FormAttachment(middle, -margin);
- wlFilenameList.setLayoutData(fdlFilenameList);
-
- // Buttons to the right of the screen...
- wbdFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER);
+ wlFilenameList.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wExcludeFilemask, margin)
+ .right(middle, -2 * margin)
+ .result());
+
+ // Button: Delete
+ wbdFilename = new Button(group, SWT.PUSH | SWT.CENTER);
PropsUi.setLook(wbdFilename);
wbdFilename.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FilenameDelete.Button"));
wbdFilename.setToolTipText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.FilenameDelete.Tooltip"));
- FormData fdbdFilename = new FormData();
- fdbdFilename.right = new FormAttachment(100, 0);
- fdbdFilename.top = new FormAttachment(wExcludeFilemask, margin);
- wbdFilename.setLayoutData(fdbdFilename);
+ wbdFilename.setLayoutData(
+ new FormDataBuilder().top(wExcludeFilemask, margin).right(100,
0).result());
+ wbdFilename.addSelectionListener(
+ new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent arg0) {
+ int[] idx = wFilenameList.getSelectionIndices();
+ wFilenameList.remove(idx);
+ wFilenameList.removeEmptyRows();
+ wFilenameList.setRowNums();
+ input.setChanged();
+ }
+ });
- wbeFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER);
+ // Button: Edit
+ wbeFilename = new Button(group, SWT.PUSH | SWT.CENTER);
PropsUi.setLook(wbeFilename);
wbeFilename.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FilenameEdit.Button"));
wbeFilename.setToolTipText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.FilenameEdit.Tooltip"));
- FormData fdbeFilename = new FormData();
- fdbeFilename.right = new FormAttachment(100, 0);
- fdbeFilename.left = new FormAttachment(wbdFilename, 0, SWT.LEFT);
- fdbeFilename.top = new FormAttachment(wbdFilename, margin);
- wbeFilename.setLayoutData(fdbeFilename);
+ wbeFilename.setLayoutData(
+ new FormDataBuilder()
+ .left(wbdFilename, 0, SWT.LEFT)
+ .top(wbdFilename, margin)
+ .right(100, 0)
+ .result());
+ wbeFilename.addSelectionListener(
+ new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent arg0) {
+ int idx = wFilenameList.getSelectionIndex();
+ if (idx >= 0) {
+ String[] string = wFilenameList.getItem(idx);
+ wFilename.setText(string[0]);
+ wFilemask.setText(string[1]);
+ wExcludeFilemask.setText(string[2]);
+ wFilenameList.remove(idx);
+ }
+ wFilenameList.removeEmptyRows();
+ wFilenameList.setRowNums();
+ input.setChanged();
+ }
+ });
- wbShowFiles = new Button(wFileComp, SWT.PUSH | SWT.CENTER);
+ // Button: Show filename(s)...
+ wbShowFiles = new Button(group, SWT.PUSH | SWT.CENTER);
PropsUi.setLook(wbShowFiles);
wbShowFiles.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.ShowFiles.Button"));
- FormData fdbShowFiles = new FormData();
- fdbShowFiles.left = new FormAttachment(middle, 0);
- fdbShowFiles.bottom = new FormAttachment(100, 0);
- wbShowFiles.setLayoutData(fdbShowFiles);
+ wbShowFiles.setLayoutData(new FormDataBuilder().left(middle,
0).bottom(100, 0).result());
+ wbShowFiles.addSelectionListener(
+ new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ GetFileNamesMeta tfii = new GetFileNamesMeta();
+ getInfo(tfii);
+ String[] files = tfii.getFilePaths(variables);
+ if (files != null && files.length > 0) {
+ EnterSelectionDialog esd =
+ new EnterSelectionDialog(shell, files, "Files read", "Files
read:");
+ esd.setViewOnly();
+ esd.open();
+ } else {
+ String elementTypeToGet =
+
FileInputList.FileTypeFilter.getByOrdinal(wFilterFileType.getSelectionIndex())
+ .toString();
+ MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR);
+ mb.setMessage(
+ BaseMessages.getString(
+ PKG, "GetFileNamesDialog.NoFilesFound.DialogMessage",
elementTypeToGet));
+ mb.setText(BaseMessages.getString(PKG,
"System.Dialog.Error.Title"));
+ mb.open();
+ }
+ }
+ });
ColumnInfo[] colinfo =
new ColumnInfo[] {
@@ -497,80 +584,85 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
wFilenameList =
new TableView(
variables,
- wFileComp,
+ group,
SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER,
colinfo,
colinfo.length,
lsMod,
props);
PropsUi.setLook(wFilenameList);
- FormData fdFilenameList = new FormData();
- fdFilenameList.left = new FormAttachment(middle, 0);
- fdFilenameList.right = new FormAttachment(wbdFilename, -margin);
- fdFilenameList.top = new FormAttachment(wExcludeFilemask, margin);
- fdFilenameList.bottom = new FormAttachment(wbShowFiles, -margin);
- wFilenameList.setLayoutData(fdFilenameList);
-
- FormData fdFileComp = new FormData();
- fdFileComp.left = new FormAttachment(0, 0);
- fdFileComp.top = new FormAttachment(0, 0);
- fdFileComp.right = new FormAttachment(100, 0);
- fdFileComp.bottom = new FormAttachment(100, 0);
- wFileComp.setLayoutData(fdFileComp);
-
- wFileComp.layout();
- wFileTab.setControl(wFileComp);
+ wFilenameList.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, 0)
+ .top(wExcludeFilemask, margin)
+ .right(wbdFilename, -margin)
+ .bottom(wbShowFiles, -margin)
+ .result());
+
+ return group;
+ }
- // ///////////////////////////////////////////////////////////
- // / END OF FILE TAB
- // ///////////////////////////////////////////////////////////
+ private void createTabFile(CTabFolder wTabFolder, int margin, int middle,
ModifyListener lsMod) {
+ CTabItem wFileTab = new CTabItem(wTabFolder, SWT.NONE);
+ wFileTab.setFont(GuiResource.getInstance().getFontDefault());
+ wFileTab.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FileTab.TabTitle"));
+
+ Composite composite = new Composite(wTabFolder, SWT.NONE);
+ composite.setLayoutData(
+ new FormDataBuilder().left(0, 0).top(0, 0).right(100, 0).bottom(100,
0));
+ PropsUi.setLook(composite);
+ WidgetUtils.setFormLayout(composite, 3);
- FormData fdTabFolder = new FormData();
- fdTabFolder.left = new FormAttachment(0, 0);
- fdTabFolder.top = new FormAttachment(wTransformName, margin);
- fdTabFolder.right = new FormAttachment(100, 0);
- fdTabFolder.bottom = new FormAttachment(wOk, -2 * margin);
- wTabFolder.setLayoutData(fdTabFolder);
+ Group opModeGroup = createGroupOpMode(composite, margin, middle);
+ opModeGroup.setLayoutData(
+ new FormDataBuilder().left(0, margin).top(0, margin).right(100,
-margin).result());
+
+ FormData belowOpModeGroupLayout =
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(opModeGroup, margin)
+ .right(100, -margin)
+ .bottom(100, -margin)
+ .result();
+
+ groupAsDefined = createGroupAsDefined(composite, margin, middle, lsMod);
+ groupAsDefined.setLayoutData(belowOpModeGroupLayout);
+
+ groupFromField = createGroupFromField(composite, margin, middle, lsMod);
+ groupFromField.setLayoutData(belowOpModeGroupLayout);
+
+ composite.layout();
+ wFileTab.setControl(composite);
+ }
+
+ private void createTabFilter(
+ CTabFolder wTabFolder, int margin, int middle, ModifyListener lsMod) {
- // ////////////////////////
- // START OF Filter TAB ///
- // ////////////////////////
CTabItem wFilterTab = new CTabItem(wTabFolder, SWT.NONE);
wFilterTab.setFont(GuiResource.getInstance().getFontDefault());
wFilterTab.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.FilterTab.TabTitle"));
Composite wFilterComp = new Composite(wTabFolder, SWT.NONE);
PropsUi.setLook(wFilterComp);
-
- FormLayout filesettingLayout = new FormLayout();
- filesettingLayout.marginWidth = 3;
- filesettingLayout.marginHeight = 3;
- wFilterComp.setLayout(fileLayout);
+ WidgetUtils.setFormLayout(wFilterComp, 3);
// Filter File Type
Label wlFilterFileType = new Label(wFilterComp, SWT.RIGHT);
wlFilterFileType.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.FilterTab.FileType.Label"));
PropsUi.setLook(wlFilterFileType);
- FormData fdlFilterFileType = new FormData();
- fdlFilterFileType.left = new FormAttachment(0, 0);
- fdlFilterFileType.right = new FormAttachment(middle, 0);
- fdlFilterFileType.top = new FormAttachment(0, 3 * margin);
- wlFilterFileType.setLayoutData(fdlFilterFileType);
+ wlFilterFileType.setLayoutData(
+ new FormDataBuilder().left(0, margin).top(0, 3 * margin).right(middle,
-margin).result());
+
wFilterFileType = new CCombo(wFilterComp, SWT.SINGLE | SWT.READ_ONLY |
SWT.BORDER);
- wFilterFileType.add(
- BaseMessages.getString(PKG,
"GetFileNamesDialog.FilterTab.FileType.All.Label"));
+ BaseMessages.getString(PKG,
"GetFileNamesDialog.FilterTab.FileType.All.Label");
wFilterFileType.add(
BaseMessages.getString(PKG,
"GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label"));
wFilterFileType.add(
BaseMessages.getString(PKG,
"GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label"));
- // wFilterFileType.select(0); // +1: starts at -1
PropsUi.setLook(wFilterFileType);
- FormData fdFilterFileType = new FormData();
- fdFilterFileType.left = new FormAttachment(middle, 0);
- fdFilterFileType.top = new FormAttachment(0, 3 * margin);
- fdFilterFileType.right = new FormAttachment(100, 0);
- wFilterFileType.setLayoutData(fdFilterFileType);
+ wFilterFileType.setLayoutData(
+ new FormDataBuilder().left(middle, 0).top(0, 3 * margin).right(100, -3
* margin).result());
wFilterFileType.addModifyListener(lsMod);
// /////////////////////////////////
@@ -581,33 +673,40 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
PropsUi.setLook(wAdditionalGroup);
wAdditionalGroup.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.Group.AdditionalGroup.Label"));
-
- FormLayout additionalgroupLayout = new FormLayout();
- additionalgroupLayout.marginWidth = 10;
- additionalgroupLayout.marginHeight = 10;
- wAdditionalGroup.setLayout(additionalgroupLayout);
+ WidgetUtils.setFormLayout(wAdditionalGroup, 10);
+ wAdditionalGroup.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wFilterFileType, margin)
+ .right(100, -margin)
+ .result());
Label wlInclRownum = new Label(wAdditionalGroup, SWT.RIGHT);
wlInclRownum.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.InclRownum.Label"));
PropsUi.setLook(wlInclRownum);
- FormData fdlInclRownum = new FormData();
- fdlInclRownum.left = new FormAttachment(0, 0);
- fdlInclRownum.top = new FormAttachment(wFilterFileType, 2 * margin);
- fdlInclRownum.right = new FormAttachment(middle, -margin);
- wlInclRownum.setLayoutData(fdlInclRownum);
+ wlInclRownum.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wFilterFileType, margin)
+ .right(middle, -2 * margin)
+ .result());
+
wInclRownum = new Button(wAdditionalGroup, SWT.CHECK);
PropsUi.setLook(wInclRownum);
wInclRownum.setToolTipText(
BaseMessages.getString(PKG, "GetFileNamesDialog.InclRownum.Tooltip"));
- FormData fdRownum = new FormData();
- fdRownum.left = new FormAttachment(middle, 0);
- fdRownum.top = new FormAttachment(wlInclRownum, 0, SWT.CENTER);
- wInclRownum.setLayoutData(fdRownum);
+ wInclRownum.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wlInclRownum, 0, SWT.CENTER)
+ .right(100, -margin)
+ .result());
wInclRownum.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent selectionEvent) {
input.setChanged();
+ wInclRownumField.setEnabled(wInclRownum.getSelection());
}
});
@@ -615,25 +714,22 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
wlInclRownumField.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.InclRownumField.Label"));
PropsUi.setLook(wlInclRownumField);
- FormData fdlInclRownumField = new FormData();
- fdlInclRownumField.left = new FormAttachment(wInclRownum, margin);
- fdlInclRownumField.top = new FormAttachment(wFilterFileType, 2 * margin);
- wlInclRownumField.setLayoutData(fdlInclRownumField);
+ wlInclRownumField.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wlInclRownum, margin)
+ .right(middle, -2 * margin)
+ .result());
wInclRownumField = new TextVar(variables, wAdditionalGroup, SWT.SINGLE |
SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wInclRownumField);
wInclRownumField.addModifyListener(lsMod);
- FormData fdInclRownumField = new FormData();
- fdInclRownumField.left = new FormAttachment(wlInclRownumField, margin);
- fdInclRownumField.top = new FormAttachment(wFilterFileType, 2 * margin);
- fdInclRownumField.right = new FormAttachment(100, 0);
- wInclRownumField.setLayoutData(fdInclRownumField);
-
- FormData fdAdditionalGroup = new FormData();
- fdAdditionalGroup.left = new FormAttachment(0, margin);
- fdAdditionalGroup.top = new FormAttachment(wFilterFileType, margin);
- fdAdditionalGroup.right = new FormAttachment(100, -margin);
- wAdditionalGroup.setLayoutData(fdAdditionalGroup);
+ wInclRownumField.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wInclRownum, margin)
+ .right(100, -margin)
+ .result());
// ///////////////////////////////////////////////////////////
// / END OF Additional Fields GROUP
@@ -647,52 +743,50 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
PropsUi.setLook(wNoFilesFolderGroup);
wNoFilesFolderGroup.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.Group.NoFilesFolder.Label"));
-
- FormLayout noFilesOrFoldersGroupLayout = new FormLayout();
- noFilesOrFoldersGroupLayout.marginWidth = 10;
- noFilesOrFoldersGroupLayout.marginHeight = 10;
- wNoFilesFolderGroup.setLayout(noFilesOrFoldersGroupLayout);
+ WidgetUtils.setFormLayout(wNoFilesFolderGroup, 10);
// do not fail if no files?
wlDoNotFailIfNoFile = new Label(wNoFilesFolderGroup, SWT.RIGHT);
wlDoNotFailIfNoFile.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.DoNotFailIfNoFile.Label"));
PropsUi.setLook(wlDoNotFailIfNoFile);
- FormData fdldoNotFailIfNoFile = new FormData();
- fdldoNotFailIfNoFile.left = new FormAttachment(0, 0);
- fdldoNotFailIfNoFile.top = new FormAttachment(wAdditionalGroup, 2 *
margin);
- fdldoNotFailIfNoFile.right = new FormAttachment(middle, -margin);
- wlDoNotFailIfNoFile.setLayoutData(fdldoNotFailIfNoFile);
-
+ wlDoNotFailIfNoFile.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wAdditionalGroup, margin)
+ .right(middle, -2 * margin)
+ .result());
wDoNotFailIfNoFile = new Button(wNoFilesFolderGroup, SWT.CHECK);
PropsUi.setLook(wDoNotFailIfNoFile);
wDoNotFailIfNoFile.setToolTipText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.DoNotFailIfNoFile.Tooltip"));
- FormData fddoNotFailIfNoFile = new FormData();
- fddoNotFailIfNoFile.left = new FormAttachment(middle, 0);
- fddoNotFailIfNoFile.top = new FormAttachment(wlDoNotFailIfNoFile, 0,
SWT.CENTER);
- wDoNotFailIfNoFile.setLayoutData(fddoNotFailIfNoFile);
+ wDoNotFailIfNoFile.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wlDoNotFailIfNoFile, 0, SWT.CENTER)
+ .result());
// Raise an exception if no file?
wlRaiseAnExceptionIfNoFile = new Label(wNoFilesFolderGroup, SWT.RIGHT);
wlRaiseAnExceptionIfNoFile.setText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.RaiseAnExceptionIfNoFiles.Label"));
PropsUi.setLook(wlRaiseAnExceptionIfNoFile);
- FormData fdlRaiseAnExceptionIfNoFile = new FormData();
- fdlRaiseAnExceptionIfNoFile.left = new FormAttachment(0, 0);
- fdlRaiseAnExceptionIfNoFile.top = new FormAttachment(wlDoNotFailIfNoFile,
2 * margin);
- fdlRaiseAnExceptionIfNoFile.right = new FormAttachment(middle, -margin);
- wlRaiseAnExceptionIfNoFile.setLayoutData(fdlRaiseAnExceptionIfNoFile);
+ wlRaiseAnExceptionIfNoFile.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wlDoNotFailIfNoFile, margin)
+ .right(middle, -2 * margin)
+ .result());
wRaiseAnExceptionIfNoFile = new Button(wNoFilesFolderGroup, SWT.CHECK);
PropsUi.setLook(wRaiseAnExceptionIfNoFile);
wRaiseAnExceptionIfNoFile.setToolTipText(
BaseMessages.getString(PKG,
"GetFileNamesDialog.RaiseAnExceptionIfNoFiles.Tooltip"));
- FormData fddoRaiseAnExceptionIfNoFile = new FormData();
- fddoRaiseAnExceptionIfNoFile.left = new FormAttachment(middle, 0);
- fddoRaiseAnExceptionIfNoFile.top =
- new FormAttachment(wlRaiseAnExceptionIfNoFile, 0, SWT.CENTER);
- wRaiseAnExceptionIfNoFile.setLayoutData(fddoRaiseAnExceptionIfNoFile);
+ wRaiseAnExceptionIfNoFile.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, -margin)
+ .top(wlRaiseAnExceptionIfNoFile, 0, SWT.CENTER)
+ .result());
wRaiseAnExceptionIfNoFile.addSelectionListener(
new SelectionAdapter() {
@Override
@@ -714,48 +808,48 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
}
});
- FormData fdNoFilesOrFoldersGroup = new FormData();
- fdNoFilesOrFoldersGroup.left = new FormAttachment(0, margin);
- fdNoFilesOrFoldersGroup.top = new FormAttachment(wAdditionalGroup, margin);
- fdNoFilesOrFoldersGroup.right = new FormAttachment(100, -margin);
- wNoFilesFolderGroup.setLayoutData(fdNoFilesOrFoldersGroup);
+ wNoFilesFolderGroup.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wAdditionalGroup, margin)
+ .right(100, -margin)
+ .result());
// /////////////////////////////////
// END OF No Files Folder GROUP
// /////////////////////////////////
Label wlLimit = new Label(wFilterComp, SWT.RIGHT);
- wlLimit.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Limit.Label"));
PropsUi.setLook(wlLimit);
- FormData fdlLimit = new FormData();
- fdlLimit.left = new FormAttachment(0, 0);
- fdlLimit.top = new FormAttachment(wNoFilesFolderGroup, margin);
- fdlLimit.right = new FormAttachment(middle, -margin);
- wlLimit.setLayoutData(fdlLimit);
+ wlLimit.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.Limit.Label"));
+ wlLimit.setLayoutData(
+ new FormDataBuilder()
+ .left(0, margin)
+ .top(wNoFilesFolderGroup, margin)
+ .right(middle, -margin)
+ .result());
+
wLimit = new Text(wFilterComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wLimit);
wLimit.addModifyListener(lsMod);
- FormData fdLimit = new FormData();
- fdLimit.left = new FormAttachment(middle, 0);
- fdLimit.top = new FormAttachment(wNoFilesFolderGroup, margin);
- fdLimit.right = new FormAttachment(100, 0);
- wLimit.setLayoutData(fdLimit);
+ wLimit.setLayoutData(
+ new FormDataBuilder()
+ .left(middle, 0)
+ .top(wNoFilesFolderGroup, margin)
+ .right(100, -3 * margin)
+ .result());
Label wlAddResult = new Label(wFilterComp, SWT.RIGHT);
- wlAddResult.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.AddResult.Label"));
PropsUi.setLook(wlAddResult);
- FormData fdlAddResult = new FormData();
- fdlAddResult.left = new FormAttachment(0, 0);
- fdlAddResult.top = new FormAttachment(wLimit, margin);
- fdlAddResult.right = new FormAttachment(middle, -margin);
- wlAddResult.setLayoutData(fdlAddResult);
+ wlAddResult.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.AddResult.Label"));
+ wlAddResult.setLayoutData(
+ new FormDataBuilder().left(0, margin).top(wLimit,
margin).right(middle, -margin).result());
+
wAddResult = new Button(wFilterComp, SWT.CHECK);
PropsUi.setLook(wAddResult);
wAddResult.setToolTipText(BaseMessages.getString(PKG,
"GetFileNamesDialog.AddResult.Tooltip"));
- FormData fdAddResult = new FormData();
- fdAddResult.left = new FormAttachment(middle, 0);
- fdAddResult.top = new FormAttachment(wlAddResult, 0, SWT.CENTER);
- wAddResult.setLayoutData(fdAddResult);
+ wAddResult.setLayoutData(
+ new FormDataBuilder().left(middle, 0).top(wlAddResult, 0,
SWT.CENTER).result());
wAddResult.addSelectionListener(
new SelectionAdapter() {
@Override
@@ -764,125 +858,45 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
}
});
- FormData fdFilterComp = new FormData();
- fdFilterComp.left = new FormAttachment(0, 0);
- fdFilterComp.top = new FormAttachment(0, 0);
- fdFilterComp.right = new FormAttachment(100, 0);
- fdFilterComp.bottom = new FormAttachment(100, 0);
- wFilterComp.setLayoutData(fdFilterComp);
-
+ wFilterComp.setLayoutData(
+ new FormDataBuilder().left(0, 0).top(0, 0).right(100, 0).bottom(100,
0).result());
wFilterComp.layout();
wFilterTab.setControl(wFilterComp);
+ }
- // ///////////////////////////////////////////////////////////
- // / END OF FILE Filter TAB
- // ///////////////////////////////////////////////////////////
+ @Override
+ public String open() {
+ Shell parentShell = getParent();
- // Add the file to the list of files...
- SelectionAdapter selA =
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent arg0) {
- wFilenameList.add(
- new String[] {
- wFilename.getText(),
- wFilemask.getText(),
- wExcludeFilemask.getText(),
- GetFileNamesMeta.RequiredFilesCode[0],
- GetFileNamesMeta.RequiredFilesCode[0]
- });
- wFilename.setText("");
- wFilemask.setText("");
- wFilenameList.removeEmptyRows();
- wFilenameList.setRowNums();
- wFilenameList.optWidth(true);
- }
- };
- wbaFilename.addSelectionListener(selA);
- wFilename.addSelectionListener(selA);
+ shell = new Shell(parentShell, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX |
SWT.MIN);
+ shell.setText(BaseMessages.getString(PKG,
"GetFileNamesDialog.DialogTitle"));
+ PropsUi.setLook(shell);
+ setShellImage(shell, input);
+ WidgetUtils.setFormLayout(shell, PropsUi.getFormMargin());
- // Delete files from the list of files...
- wbdFilename.addSelectionListener(
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent arg0) {
- int[] idx = wFilenameList.getSelectionIndices();
- wFilenameList.remove(idx);
- wFilenameList.removeEmptyRows();
- wFilenameList.setRowNums();
- input.setChanged();
- }
- });
+ ModifyListener lsMod = e -> input.setChanged();
+ changed = input.hasChanged();
- // Edit the selected file & remove from the list...
- wbeFilename.addSelectionListener(
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent arg0) {
- int idx = wFilenameList.getSelectionIndex();
- if (idx >= 0) {
- String[] string = wFilenameList.getItem(idx);
- wFilename.setText(string[0]);
- wFilemask.setText(string[1]);
- wExcludeFilemask.setText(string[2]);
- wFilenameList.remove(idx);
- }
- wFilenameList.removeEmptyRows();
- wFilenameList.setRowNums();
- input.setChanged();
- }
- });
+ int middle = props.getMiddlePct();
+ int margin = PropsUi.getMargin();
- // Show the files that are selected at this time...
- wbShowFiles.addSelectionListener(
- new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- GetFileNamesMeta tfii = new GetFileNamesMeta();
- getInfo(tfii);
- String[] files = tfii.getFilePaths(variables);
- if (files != null && files.length > 0) {
- EnterSelectionDialog esd =
- new EnterSelectionDialog(shell, files, "Files read", "Files
read:");
- esd.setViewOnly();
- esd.open();
- } else {
- String elementTypeToGet =
-
FileInputList.FileTypeFilter.getByOrdinal(wFilterFileType.getSelectionIndex())
- .toString();
- MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR);
- mb.setMessage(
- BaseMessages.getString(
- PKG, "GetFileNamesDialog.NoFilesFound.DialogMessage",
elementTypeToGet));
- mb.setText(BaseMessages.getString(PKG,
"System.Dialog.Error.Title"));
- mb.open();
- }
- }
- });
+ createTransformName(shell, margin, middle, lsMod);
+ createDialogButtons(shell, margin);
- // Listen to the Browse... button
- wbbFilename.addListener(
- SWT.Selection,
- e -> {
- if (!Utils.isEmpty(wFilemask.getText()) ||
!Utils.isEmpty(wExcludeFilemask.getText())) {
- BaseDialog.presentDirectoryDialog(shell, wFilename, variables);
- } else {
- BaseDialog.presentFileDialog(
- shell,
- wFilename,
- variables,
- new String[] {"*.txt;*.csv", "*.csv", "*.txt", "*"},
- new String[] {
- BaseMessages.getString(PKG,
"GetFileNamesDialog.FileType.TextAndCSVFiles"),
- BaseMessages.getString(PKG, "System.FileType.CSVFiles"),
- BaseMessages.getString(PKG, "System.FileType.TextFiles"),
- BaseMessages.getString(PKG, "System.FileType.AllFiles")
- },
- true);
- }
- });
+ CTabFolder tabFolder = new CTabFolder(shell, SWT.BORDER);
+ PropsUi.setLook(tabFolder, Props.WIDGET_STYLE_TAB);
- wTabFolder.setSelection(0);
+ tabFolder.setLayoutData(
+ new FormDataBuilder()
+ .left(0, 0)
+ .top(wTransformName, margin)
+ .right(100, 0)
+ .bottom(wOk, -2 * margin)
+ .result());
+
+ createTabFile(tabFolder, margin, middle, lsMod);
+ createTabFilter(tabFolder, margin, middle, lsMod);
+ tabFolder.setSelection(0);
setFileField();
getData(input);
@@ -907,7 +921,15 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
wWildcardField.removeAll();
wExcludeWildcardField.removeAll();
- IRowMeta r = pipelineMeta.getPrevTransformFields(variables,
transformName);
+ IRowMeta r = null;
+
+ try {
+ r = pipelineMeta.getPrevTransformFields(variables, transformName);
+ } catch (NullPointerException e) {
+ // thrown when previous transform is not yet properly configured
+ LogChannel.UI.logBasic("Failed to read previous transform fields",
e);
+ }
+
if (r != null) {
wFilenameField.setItems(r.getFieldNames());
wWildcardField.setItems(r.getFieldNames());
@@ -933,30 +955,25 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
}
private void activateFileField() {
+ boolean isFromField = wFileField.getSelection();
+ groupFromField.setVisible(isFromField);
- wlFilenameField.setEnabled(wFileField.getSelection());
- wFilenameField.setEnabled(wFileField.getSelection());
- wlWildcardField.setEnabled(wFileField.getSelection());
- wWildcardField.setEnabled(wFileField.getSelection());
- wlExcludeWildcardField.setEnabled(wFileField.getSelection());
- wExcludeWildcardField.setEnabled(wFileField.getSelection());
- wlFilename.setEnabled(!wFileField.getSelection());
- wbbFilename.setEnabled(!wFileField.getSelection());
- wbaFilename.setEnabled(!wFileField.getSelection());
- wFilename.setEnabled(!wFileField.getSelection());
- wlFilemask.setEnabled(!wFileField.getSelection());
- wFilemask.setEnabled(!wFileField.getSelection());
- wlExcludeFilemask.setEnabled(!wFileField.getSelection());
- wExcludeFilemask.setEnabled(!wFileField.getSelection());
- wlFilenameList.setEnabled(!wFileField.getSelection());
- wbdFilename.setEnabled(!wFileField.getSelection());
- wbeFilename.setEnabled(!wFileField.getSelection());
- wbShowFiles.setEnabled(!wFileField.getSelection());
- wlFilenameList.setEnabled(!wFileField.getSelection());
- wFilenameList.setEnabled(!wFileField.getSelection());
- wPreview.setEnabled(!wFileField.getSelection());
- wlIncludeSubFolder.setEnabled(wFileField.getSelection());
- wIncludeSubFolder.setEnabled(wFileField.getSelection());
+ for (Control c : groupFromField.getChildren()) {
+ c.setEnabled(isFromField);
+ }
+
+ groupAsDefined.setVisible(!isFromField);
+
+ for (Control c : groupAsDefined.getChildren()) {
+ c.setEnabled(!isFromField);
+ }
+
+ wPreview.setEnabled(!isFromField);
+ wFileFieldWarning.setVisible(!isFromField && hasPreviousTransform());
+ }
+
+ private boolean hasPreviousTransform() {
+ return pipelineMeta.findPipelineHopTo(transformMeta) != null;
}
protected void setErrorsMgmtCheckboxesStatus() {
@@ -977,16 +994,14 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
/**
* Read the data from the GetFileNamesMeta object and show it in this dialog.
*
- * @param meta The TextFileInputMeta object to obtain the data from.
+ * @param in The TextFileInputMeta object to obtain the data from.
*/
- public void getData(GetFileNamesMeta meta) {
- final GetFileNamesMeta in = meta;
-
+ public void getData(final GetFileNamesMeta in) {
if (!in.getFilesList().isEmpty()) {
wFilenameList.removeAll();
- for (int i = 0; i < meta.getFilesList().size(); i++) {
- FileItem fi = meta.getFilesList().get(i);
+ for (int i = 0; i < in.getFilesList().size(); i++) {
+ FileItem fi = in.getFilesList().get(i);
wFilenameList.add(
fi.getFileName(),
fi.getFileMask(),
@@ -1012,6 +1027,7 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
}
wInclRownum.setSelection(in.isIncludeRowNumber());
+ wInclRownumField.setEnabled(wInclRownum.getSelection());
wAddResult.setSelection(in.isAddResultFile());
wFileField.setSelection(in.isFileField());
if (in.getRowNumberField() != null) {
@@ -1079,7 +1095,7 @@ public class GetFileNamesDialog extends
BaseTransformDialog {
in.setDynamicWildcardField(wWildcardField.getText());
in.setDynamicExcludeWildcardField(wExcludeWildcardField.getText());
in.setFileField(wFileField.getSelection());
- in.setRowNumberField(wInclRownumField.getText());
+ in.setRowNumberField(wInclRownum.getSelection() ?
wInclRownumField.getText() : "");
in.setRowLimit(Const.toLong(wLimit.getText(), 0L));
in.setDynamicIncludeSubFolders(wIncludeSubFolder.getSelection());
in.setDoNotFailIfNoFile(wDoNotFailIfNoFile.getSelection());
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_de_DE.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_de_DE.properties
index eb4d740200..2fd77fc4d7 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_de_DE.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_de_DE.properties
@@ -17,7 +17,6 @@
#
#
#
-
GetFileNames.Description=Ermittelt Dateinamen aus dem Betriebssystem und
sendet diese an den n\u00E4chsten Transform.
GetFileNames.Exception.CouldnotFindField=Feld {0} konnte nicht im Eingabestrom
gefunden werden!
GetFileNames.Injection.AddResult.Label=Dateinamen zum Result hinzuf\u00FCgen ?
@@ -62,7 +61,8 @@ GetFileNamesDialog.FailedToGetFields.DialogMessage=Fehler
GetFileNamesDialog.FailedToGetFields.DialogTitle=Fehler bei Feldermittlung!
GetFileNamesDialog.FileDirColumn.Column=Datei/Verzeichnis
GetFileNamesDialog.FileField.Label=Ist der Dateiname in einem Feld definiert?
-GetFileNamesDialog.FileField.Tooltip=Aktivieren, wenn der Dateiname in einem
Feld \ndurch einen Vorg\u00E4ngertransform definiert ist.
+GetFileNamesDialog.FileField.Tooltip=Aktivieren, um Dateinamen aus einem Feld
des Vorg\u00E4ngertransform zu verarbeiten. Deaktiviert lassen, um Dateinamen
hier zu definieren und Daten des Vorg\u00E4ngertransform zu verwerfen.
+GetFileNamesDialog.FileField.Warning=(Daten des Vorg\u00E4ngertransform werden
verworfen)
GetFileNamesDialog.Filemask.Label=Platzhalter (regul\u00E4rer Ausdruck)
GetFileNamesDialog.Filename.Label=Datei oder Verzeichnis
GetFileNamesDialog.FilenameAdd.Button=Hinzuf\u00FCgen
@@ -80,6 +80,9 @@ GetFileNamesDialog.FilterTab.FileType.Label=Filtertyp
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=nur Dateien
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=nur Verzeichnisse
GetFileNamesDialog.FilterTab.TabTitle=Filter
+GetFileNamesDialog.Group.OpMode.Label=Funktionsweise
+GetFileNamesDialog.Group.ByDefinition.Label=Dateinamen wie definieren
+GetFileNamesDialog.Group.FromField.Label=Dateinamen aus Feld
GetFileNamesDialog.Group.AdditionalGroup.Label=zus\u00E4tzliche Felder
GetFileNamesDialog.Group.NoFilesFolder.Label=wenn keine Dateien oder
Verzeichnisse
GetFileNamesDialog.InclRownum.Label=Zeilennummer zur Ausgabe hinzuf\u00FCgen?
@@ -91,7 +94,6 @@ GetFileNamesDialog.IncludeSubFolder.Label=Unterverzeichnisse
einbeziehen ?
GetFileNamesDialog.IncludeSubFolder.Tooltip=ermittle Dateien in
Unterverzeichnissen
GetFileNamesDialog.Limit.Label=Limit
GetFileNamesDialog.NoFilesFound.DialogMessage=Keine Dateien gefunden!
Dateiname und Verzeichnis, den regul\u00E4ren Ausdruck sowie die Filter
pr\u00FCfen, die z.Z. auf "{0}" gesetzt sind.
-GetFileNamesDialog.OriginFiles.Label=Dateinamen aus Feld
GetFileNamesDialog.Preview.Button=\ &Zeilenvorschau
GetFileNamesDialog.PreviewSize.DialogMessage=Anzahl der Vorschauzeilen:
GetFileNamesDialog.PreviewSize.DialogTitle=Vorschaugr\u00F6\u00DFe eingeben
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_en_US.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_en_US.properties
index 3c4033c3f8..7f502462ee 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_en_US.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_en_US.properties
@@ -16,7 +16,6 @@
# limitations under the License.
#
#
-
GetFileNames.Description=Get file names from the operating system and send
them to the next transform.
GetFileNames.Exception.CouldnotFindField=We can not find Field {0} in the
input stream\!
GetFileNames.Injection.AddResult.Label=Add filename to result (Y/N)?
@@ -61,7 +60,8 @@ GetFileNamesDialog.FailedToGetFields.DialogMessage=Error
GetFileNamesDialog.FailedToGetFields.DialogTitle=Error getting fields\!
GetFileNamesDialog.FileDirColumn.Column=File/Directory
GetFileNamesDialog.FileField.Label=Is filename defined in a field?
-GetFileNamesDialog.FileField.Tooltip=Check this option if filename is defined
in a field\n created by a previous transform.The wildcard is not mandatory.
+GetFileNamesDialog.FileField.Tooltip=Check to process filenames from a
previous transform. Leave this unchecked to define filenames here and discard
data from the previous transform.
+GetFileNamesDialog.FileField.Warning=(Data from previous transform will be
discarded)
GetFileNamesDialog.Filemask.Label=Inclusion wildcard (RegExp)
GetFileNamesDialog.Filename.Label=File or directory
GetFileNamesDialog.FilenameAdd.Button=&Add
@@ -79,9 +79,12 @@ GetFileNamesDialog.FilterTab.FileType.Label=Filter type
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=Only files
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=Only folders
GetFileNamesDialog.FilterTab.TabTitle=Filters
+GetFileNamesDialog.Group.OpMode.Label=Operating mode
+GetFileNamesDialog.Group.ByDefinition.Label=Filenames as defined
+GetFileNamesDialog.Group.FromField.Label=Filenames from field
GetFileNamesDialog.Group.AdditionalGroup.Label=Additional fields
GetFileNamesDialog.Group.NoFilesFolder.Label=If no files or folders
-GetFileNamesDialog.InclRownum.Label=Include rownum in output?
+GetFileNamesDialog.InclRownum.Label=Include rownum in output?
GetFileNamesDialog.InclRownum.Tooltip=Check this to add a field (Integer)
containing the row number.
GetFileNamesDialog.InclRownumField.Label=Rownum fieldname
GetFileNamesDialog.IncludeSubDirs.Column=Include subfolders
@@ -90,7 +93,6 @@ GetFileNamesDialog.IncludeSubFolder.Label=Include subfolders?
GetFileNamesDialog.IncludeSubFolder.Tooltip=Fetch files in subfolders
GetFileNamesDialog.Limit.Label=Limit
GetFileNamesDialog.NoFilesFound.DialogMessage=No files found\! Please check
the filename/directory, the regular expression options amd the filter type
selection that currently is set to ''{0}''.
-GetFileNamesDialog.OriginFiles.Label=Filenames from field
GetFileNamesDialog.Preview.Button=\ &Preview rows
GetFileNamesDialog.PreviewSize.DialogMessage=Enter the number of rows you
would like to preview\:
GetFileNamesDialog.PreviewSize.DialogTitle=Enter preview size
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_es_AR.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_es_AR.properties
index 1d3e5a164b..72fafe756c 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_es_AR.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_es_AR.properties
@@ -17,7 +17,6 @@
#
#
#
-
GetFileNames.Description=Obtiene nombres de ficheros del sistema operativo y
los pasa al siguiente paso.
GetFileNames.Exception.CouldnotFindField=El campo {0} no puede ser encontrado
en el flujo de entrada.
GetFileNames.Log.ErrorFindingField=El campo [{0}] no puede ser encontrado en
el flujo de entrada.
@@ -55,6 +54,7 @@ GetFileNamesDialog.FilterTab.FileType.Label=Traer
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=S\u00F3lo archivos
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=S\u00F3lo directorios
GetFileNamesDialog.FilterTab.TabTitle=Filtros
+GetFileNamesDialog.Group.FromField.Label=Nombres de archivo desde campo
GetFileNamesDialog.Group.AdditionalGroup.Label=Campos adicionales
GetFileNamesDialog.InclRownum.Label=\u00BFIncluir el n\u00FAmero de fila en la
salida?
GetFileNamesDialog.InclRownum.Tooltip=Seleccione esta opci\u00F3n para
a\u00F1adir un campo (Entero) conteniendo el n\u00FAmero de fila.
@@ -65,7 +65,6 @@ GetFileNamesDialog.IncludeSubFolder.Label=Incluir
subdirectorios
GetFileNamesDialog.IncludeSubFolder.Tooltip=Obtener archivos de subdirectorios
GetFileNamesDialog.Limit.Label=L\u00EDmite
GetFileNamesDialog.NoFilesFound.DialogMessage=\u00A1No se han encontrado
archivos\! Por favor verifique el nombre del archivo/directorio y la
expresi\u00F3n regular.
-GetFileNamesDialog.OriginFiles.Label=Nombres de archivo desde campo
GetFileNamesDialog.Preview.Button=\ &Previsualizar filas
GetFileNamesDialog.PreviewSize.DialogMessage=Introduzca el n\u00FAmero de
filas que desea previsualizar\:
GetFileNamesDialog.PreviewSize.DialogTitle=Introduzca el tama\u00F1o de la
previsualizaci\u00F3n
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_fr_FR.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_fr_FR.properties
index 2169ba35c9..e00d8a9eab 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_fr_FR.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_fr_FR.properties
@@ -16,7 +16,6 @@
# limitations under the License.
#
#
-
GetFileNames.Description=R\u00E9cup\u00E9ration des noms de fichier depuis
l''OS et transfert \u00E0 la transformation suivante.
GetFileNames.Exception.CouldnotFindField=Impossible de trouver le champ {0}
dans le flux d''entr\u00E9e\!
GetFileNames.Log.ErrorFindingField=Impossible de trouver le champ [{0}] dans
le flux d''entr\u00E9e\!
@@ -58,6 +57,7 @@
GetFileNamesDialog.FilterTab.FileType.Label=R\u00E9cup\u00E9rer
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=Uniquement les fichiers
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=Uniquement les
r\u00E9pertoires
GetFileNamesDialog.FilterTab.TabTitle=Filtres
+GetFileNamesDialog.Group.FromField.Label=Nom fichier depuis champ
GetFileNamesDialog.Group.AdditionalGroup.Label=Champs additionnels
GetFileNamesDialog.InclRownum.Label=Inclure N\u00B0 ligne en sortie
GetFileNamesDialog.InclRownum.Tooltip=Ajout d''un champ (entier)\r\ncontenant
le num\u00E9ro de ligne
@@ -68,7 +68,6 @@ GetFileNamesDialog.IncludeSubFolder.Label=Inclure les sous
r\u00E9pertoires
GetFileNamesDialog.IncludeSubFolder.Tooltip=Rechercher les fichiers dans les
sous-r\u00E9pertoires
GetFileNamesDialog.Limit.Label=Limite
GetFileNamesDialog.NoFilesFound.DialogMessage=Aucun fichier trouv\u00E9\!
veuillez svp v\u00E9rifier les fichiers/r\u00E9pertoires et les options.
-GetFileNamesDialog.OriginFiles.Label=Nom fichier depuis champ
GetFileNamesDialog.Preview.Button=\ &Pr\u00E9visualiser lignes
GetFileNamesDialog.PreviewSize.DialogMessage=Saisissez le nombre de lignes max
\u00E0 pr\u00E9visualiser:
GetFileNamesDialog.PreviewSize.DialogTitle=Veuillez saisir le nbr de lignes
pour la pr\u00E9visualition
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_it_IT.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_it_IT.properties
index ca057bc24d..32d0a6299d 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_it_IT.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_it_IT.properties
@@ -17,7 +17,6 @@
#
#
#
-
GetFileNames.Exception.CouldnotFindField=Impossibile trovare il campo {0}
nell'input stream\!
GetFileNames.Injection.Group.FileTab.Label=File/Directories
GetFileNames.Log.ErrorFindingField=Impossibile trovare il campo {0} nell'input
stream\!
@@ -58,6 +57,7 @@ GetFileNamesDialog.FilterTab.FileType.Label=Elementi da
recuperare
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=Solo file
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=Solo cartelle
GetFileNamesDialog.FilterTab.TabTitle=Filtri
+GetFileNamesDialog.Group.FromField.Label=Nome file dal campo
GetFileNamesDialog.Group.AdditionalGroup.Label=Campi addizionali
GetFileNamesDialog.Group.NoFilesFolder.Label=Se non vengono trovati files o
cartelle
GetFileNamesDialog.InclRownum.Label=Includere il numero riga nell''output?
@@ -69,7 +69,6 @@ GetFileNamesDialog.IncludeSubFolder.Label=Includi le
sottocartelle?
GetFileNamesDialog.IncludeSubFolder.Tooltip=Considera anche i files nelle
sottocartelle
GetFileNamesDialog.Limit.Label=Limite
GetFileNamesDialog.NoFilesFound.DialogMessage=Nessun file trovato\! Controlla
le opzioni dei files/cartelle, delle espressioni regolari per la selezione
dinamica e la selezione della tendina Elementi da recuperare che adesso \u00E8
impostata a ''{0}''.
-GetFileNamesDialog.OriginFiles.Label=Nome file dal campo
GetFileNamesDialog.Preview.Button=&Anteprima righe
GetFileNamesDialog.PreviewSize.DialogMessage=Inserisci il numero di righe per
l''anteprima\:
GetFileNamesDialog.PreviewSize.DialogTitle=Numero di righe di anteprima
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ja_JP.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ja_JP.properties
index 4c373ce05d..a7c18dfe63 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ja_JP.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ja_JP.properties
@@ -17,7 +17,6 @@
#
#
#
-
GetFileNames.Description=Get File
Names\nOS\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u53D6\u5F97\u3057\u3001\u6B21\u306E\u30B9\u30C6\u30C3\u30D7\u306B\u6E21\u3057\u307E\u3059\u3002
GetFileNames.Exception.CouldnotFindField=We can not find Field {0} in the
input stream\!
GetFileNames.Log.ErrorFindingField=We can not find Field [{0}] in the input
stream\!
@@ -59,6 +58,7 @@
GetFileNamesDialog.FilterTab.FileType.Label=\u30d5\u30a3\u30eb\u30bf\u30fc\u5f62
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=\u30d5\u30a1\u30a4\u30eb\u306e\u307f
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=\u30d5\u30a9\u30eb\u30c0\u306e\u307f
GetFileNamesDialog.FilterTab.TabTitle=\u30d5\u30a3\u30eb\u30bf\u30fc
+GetFileNamesDialog.Group.FromField.Label=\u30d5\u30a1\u30a4\u30eb\u8a2d\u5b9a
GetFileNamesDialog.Group.AdditionalGroup.Label=\u30ec\u30b3\u30fc\u30c9\u756a\u53f7\u8a2d\u5b9a
GetFileNamesDialog.InclRownum.Label=\u30ec\u30b3\u30fc\u30c9\u756a\u53f7\u3092\u51fa\u529b\u306b\u542b\u3080
GetFileNamesDialog.InclRownum.Tooltip=\u30ec\u30b3\u30fc\u30c9\u756a\u53f7\u3092\u51fa\u529b\u306b\u542b\u3080\u5834\u5408\u306f\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3092\u6709\u52b9\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
@@ -69,7 +69,6 @@
GetFileNamesDialog.IncludeSubFolder.Label=\u30b5\u30d6\u30d5\u30a9\u30eb\u30c0\u
GetFileNamesDialog.IncludeSubFolder.Tooltip=\u30b5\u30d6\u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30d5\u30a7\u30c3\u30c1
GetFileNamesDialog.Limit.Label=\u6700\u5927\u30d5\u30a1\u30a4\u30eb\u6570
GetFileNamesDialog.NoFilesFound.DialogMessage=\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\u30d5\u30a1\u30a4\u30eb\u3068\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073\u691c\u7d22\u6587\u5b57\u5217\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-GetFileNamesDialog.OriginFiles.Label=\u30d5\u30a1\u30a4\u30eb\u8a2d\u5b9a
GetFileNamesDialog.Preview.Button=\ \u30d7\u30ec\u30d3\u30e5\u30fc(&V)
GetFileNamesDialog.PreviewSize.DialogMessage=\u30d7\u30ec\u30d3\u30e5\u30fc\u3059\u308b\u30ec\u30b3\u30fc\u30c9\u6570\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
GetFileNamesDialog.PreviewSize.DialogTitle=\u30d7\u30ec\u30d3\u30e5\u30fc
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ko_KR.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ko_KR.properties
index 1f2577ed8b..dae69d3888 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ko_KR.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_ko_KR.properties
@@ -17,7 +17,6 @@
#
#
#
-
GetFileNames.Exception.CouldnotFindField=\uC785\uB825
\uC2A4\uD2B8\uB9BC\uC5D0\uC11C \uD544\uB4DC {0}\uC744 \uCC3E\uC744 \uC218
\uC5C6\uC2B5\uB2C8\uB2E4\!
GetFileNames.Log.ErrorFindingField=\uC785\uB825 \uC2A4\uD2B8\uB9BC\uC5D0\uC11C
\uD544\uB4DC [{0}]\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4\!
GetFileNames.Log.NoField=\uD30C\uC77C\uC774\uB984\uC744 \uAC00\uC9C0\uACE0
\uC788\uB294 \uD544\uB4DC\uB97C \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624\!
@@ -48,6 +47,7 @@
GetFileNamesDialog.FilterTab.FileType.Label=\uAC00\uC838\uC624\uAE30
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=\uD30C\uC77C
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=\uD3F4\uB354
GetFileNamesDialog.FilterTab.TabTitle=\uD544\uD130
+GetFileNamesDialog.Group.FromField.Label=\uD544\uB4DC\uC5D0\uC11C
\uD30C\uC77C\uC774\uB984
GetFileNamesDialog.Group.AdditionalGroup.Label=\uCD94\uAC00 \uD544\uB4DC
GetFileNamesDialog.InclRownum.Label=\uCD9C\uB825\uC5D0
\uB85C\uC6B0\uBC88\uD638 \uD3EC\uD568?
GetFileNamesDialog.InclRownum.Tooltip=\uB85C\uC6B0 \uBC88\uD638\uB97C
\uD3EC\uD568\uD55C \uD544\uB4DC(Integer)\uB97C \uCD94\uAC00\uD558\uB824\uBA74
\uC5EC\uAE30\uB97C \uCCB4\uD06C
@@ -58,7 +58,6 @@ GetFileNamesDialog.IncludeSubFolder.Label=\uD558\uC704
\uD3F4\uB354 \uD3EC\uD568
GetFileNamesDialog.IncludeSubFolder.Tooltip=\uD558\uC704 \uD3F4\uB354\uC758
\uD30C\uC77C \uAC00\uC838\uC624\uAE30
GetFileNamesDialog.Limit.Label=\uC81C\uD55C
GetFileNamesDialog.NoFilesFound.DialogMessage=\uD30C\uC77C\uC744 \uCC3E\uC744
\uC218 \uC5C6\uC2B5\uB2C8\uB2E4\!
\uD30C\uC77C\uC774\uB984/\uB514\uB809\uD1A0\uB9AC \uADF8\uB9AC\uACE0
\uC815\uADDC\uD45C\uD604\uC2DD\uC744 \uD655\uC778\uD558\uC2ED\uC2DC\uC624.
-GetFileNamesDialog.OriginFiles.Label=\uD544\uB4DC\uC5D0\uC11C
\uD30C\uC77C\uC774\uB984
GetFileNamesDialog.Preview.Button=\uB85C\uC6B0 \uBBF8\uB9AC\uBCF4\uAE30(&P)
GetFileNamesDialog.PreviewSize.DialogMessage=\uBBF8\uB9AC\uBCF4\uAE30\uD560
\uB85C\uC6B0 \uAC1C\uC218\uB97C \uC785\uB825\uD558\uC2ED\uC2DC\uC624\:
GetFileNamesDialog.PreviewSize.DialogTitle=\uBBF8\uB9AC\uBCF4\uAE30
\uAC1C\uC218 \uC785\uB825
diff --git
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_zh_CN.properties
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_zh_CN.properties
index c161c71ea8..fd7a90d33f 100644
---
a/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_zh_CN.properties
+++
b/plugins/transforms/getfilenames/src/main/resources/org/apache/hop/pipeline/transforms/getfilenames/messages/messages_zh_CN.properties
@@ -16,7 +16,6 @@
# limitations under the License.
#
#
-
GetFileNames.Description=\u626B\u63CF\u64CD\u4F5C\u7CFB\u7EDF\u4E2D\u7684\u6587\u4EF6\u540D\u79F0\u5E76\u8F93\u51FA.
GetFileNames.Exception.CouldnotFindField=\u4E0D\u80FD\u5728\u8F93\u5165\u6D41\u4E2D\u627E\u5230\u5B57\u6BB5
{0}
GetFileNames.Injection.AddResult.Label=\u6DFB\u52A0\u6587\u4EF6\u540D\u5230\u7ED3\u679C\u4E2D(Y/N)\uFF1F
@@ -63,6 +62,7 @@ GetFileNamesDialog.FilterTab.FileType.Label=\u83B7\u53D6
GetFileNamesDialog.FilterTab.FileType.OnlyFile.Label=\u53EA\u83B7\u53D6\u6587\u4EF6\:
GetFileNamesDialog.FilterTab.FileType.OnlyFolder.Label=\u53EA\u83B7\u53D6\u76EE\u5F55\:
GetFileNamesDialog.FilterTab.TabTitle=\u8FC7\u6EE4
+GetFileNamesDialog.Group.FromField.Label=\u4ECE\u5B57\u6BB5\u83B7\u53D6\u6587\u4EF6\u540D\:
GetFileNamesDialog.Group.AdditionalGroup.Label=\u9644\u4EF6\u5B57\u6BB5
GetFileNamesDialog.Group.NoFilesFolder.Label=\u6587\u4EF6\u4E0D\u5B58\u5728\u65F6\:
GetFileNamesDialog.InclRownum.Label=\u5728\u8F93\u51FA\u4E2D\u5305\u62EC\u884C\u53F7\:
@@ -74,7 +74,6 @@
GetFileNamesDialog.IncludeSubFolder.Label=\u5305\u542B\u5B50\u76EE\u5F55\:
GetFileNamesDialog.IncludeSubFolder.Tooltip=\u904D\u5386\u5B50\u76EE\u5F55
GetFileNamesDialog.Limit.Label=\u9650\u5236\:
GetFileNamesDialog.NoFilesFound.DialogMessage=\u6CA1\u6709\u627E\u5230\u6587\u4EF6\!
\u8BF7\u68C0\u67E5\u6587\u4EF6/\u76EE\u5F55\u540D\u79F0\u548C\u6B63\u5219\u8868\u8FBE\u5F0F\u9009\u9879.
-GetFileNamesDialog.OriginFiles.Label=\u4ECE\u5B57\u6BB5\u83B7\u53D6\u6587\u4EF6\u540D\:
GetFileNamesDialog.Preview.Button=\u9884\u89C8\u8BB0\u5F55(&P)
GetFileNamesDialog.PreviewSize.DialogMessage=\u8F93\u5165\u4F60\u60F3\u9884\u89C8\u7684\u8BB0\u5F55\u884C\u6570\:
GetFileNamesDialog.PreviewSize.DialogTitle=\u8F93\u5165\u9884\u89C8\u5927\u5C0F
diff --git a/ui/src/main/java/org/apache/hop/ui/core/FormDataBuilder.java
b/ui/src/main/java/org/apache/hop/ui/core/FormDataBuilder.java
index ba6ec04518..7efb9af40e 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/FormDataBuilder.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/FormDataBuilder.java
@@ -86,6 +86,14 @@ public class FormDataBuilder implements Cloneable {
return top(new FormAttachment(control, margin));
}
+ public FormDataBuilder left(Control control, int margin, int alignment) {
+ return left(new FormAttachment(control, margin, alignment));
+ }
+
+ public FormDataBuilder right(Control control, int margin, int alignment) {
+ return right(new FormAttachment(control, margin, alignment));
+ }
+
public FormDataBuilder top(Control control, int margin, int alignment) {
return top(new FormAttachment(control, margin, alignment));
}