in plugins/transforms/tokenreplacement/src/main/java/org/apache/hop/pipeline/transforms/tokenreplacement/TokenReplacementDialog.java [167:1233]
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, "TokenReplacementDialog.DialogTitle"));
int middle = props.getMiddlePct();
int margin = PropsUi.getMargin();
// Buttons at the bottom
//
wOk = new Button(shell, SWT.PUSH);
wOk.setText(BaseMessages.getString(PKG, "System.Button.OK"));
wOk.addListener(SWT.Selection, e -> ok());
wCancel = new Button(shell, SWT.PUSH);
wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel"));
wCancel.addListener(SWT.Selection, e -> cancel());
setButtonPositions(new Button[] {wOk, wCancel}, margin, null);
// Transform name 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 INPUT TAB///
// /
CTabItem wInputTab = new CTabItem(wTabFolder, SWT.NONE);
wInputTab.setFont(GuiResource.getInstance().getFontDefault());
wInputTab.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.InputTab.TabTitle"));
Composite wInputComp = new Composite(wTabFolder, SWT.NONE);
PropsUi.setLook(wInputComp);
FormLayout inputLayout = new FormLayout();
inputLayout.marginWidth = 3;
inputLayout.marginHeight = 3;
wInputComp.setLayout(inputLayout);
//
// Input Type
Label wlInputType = new Label(wInputComp, SWT.RIGHT);
wlInputType.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.InputType.Label"));
PropsUi.setLook(wlInputType);
FormData fdlInputType = new FormData();
fdlInputType.left = new FormAttachment(0, 0);
fdlInputType.top = new FormAttachment(0, margin);
fdlInputType.right = new FormAttachment(middle, -margin);
wlInputType.setLayoutData(fdlInputType);
wInputType = new CCombo(wInputComp, SWT.BORDER | SWT.READ_ONLY);
wInputType.setEditable(true);
PropsUi.setLook(wInputType);
wInputType.addModifyListener(lsMod);
FormData fdInputType = new FormData();
fdInputType.left = new FormAttachment(middle, 0);
fdInputType.top = new FormAttachment(0, margin);
fdInputType.right = new FormAttachment(75, 0);
wInputType.setLayoutData(fdInputType);
String[] inputTypes = TokenReplacementMeta.INPUT_TYPES;
for (String inputType : inputTypes) {
wInputType.add(inputType);
}
wInputType.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent selectionEvent) {
input.setChanged();
updateInputType();
}
});
/////////////////////
// Input text group
gInputText = new Group(wInputComp, SWT.SHADOW_ETCHED_IN);
gInputText.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.InputTextGroup.Label"));
FormLayout inputTextLayout = new FormLayout();
inputTextLayout.marginWidth = 3;
inputTextLayout.marginHeight = 3;
gInputText.setLayout(inputTextLayout);
PropsUi.setLook(gInputText);
// input text
wlInputText = new Label(gInputText, SWT.RIGHT);
wlInputText.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.InputText.Label"));
PropsUi.setLook(wlInputText);
FormData fdlInputText = new FormData();
fdlInputText.left = new FormAttachment(0, 0);
fdlInputText.right = new FormAttachment(middle, -margin);
fdlInputText.top = new FormAttachment(0, margin);
fdlInputText.bottom = new FormAttachment(100, -margin);
wlInputText.setLayoutData(fdlInputText);
wInputText =
new Text(gInputText, SWT.MULTI | SWT.LEFT | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
PropsUi.setLook(wInputText);
wInputText.addModifyListener(lsMod);
FormData fdInputText = new FormData();
fdInputText.left = new FormAttachment(middle, 0);
fdInputText.top = new FormAttachment(0, margin);
fdInputText.right = new FormAttachment(100, 0);
fdInputText.bottom = new FormAttachment(100, -margin);
wInputText.setLayoutData(fdInputText);
FormData fdgInputText = new FormData();
fdgInputText.left = new FormAttachment(0, 0);
fdgInputText.right = new FormAttachment(100, 0);
fdgInputText.top = new FormAttachment(wInputType, margin * 2);
fdgInputText.bottom = new FormAttachment(100, -margin * 2);
gInputText.setLayoutData(fdgInputText);
/////////////////////
// Input field group
gInputField = new Group(wInputComp, SWT.SHADOW_ETCHED_IN);
gInputField.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.InputFieldGroup.Label"));
FormLayout inputFieldLayout = new FormLayout();
inputFieldLayout.marginWidth = 3;
inputFieldLayout.marginHeight = 3;
gInputField.setLayout(inputFieldLayout);
PropsUi.setLook(gInputField);
// input Field Line
wlInputField = new Label(gInputField, SWT.RIGHT);
wlInputField.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.InputField.Label"));
PropsUi.setLook(wlInputField);
FormData fdlInputField = new FormData();
fdlInputField.left = new FormAttachment(0, 0);
fdlInputField.right = new FormAttachment(middle, -margin);
fdlInputField.top = new FormAttachment(wInputType, margin);
wlInputField.setLayoutData(fdlInputField);
wInputField = new ComboVar(variables, gInputField, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wInputField);
wInputField.addModifyListener(lsMod);
FormData fdInputField = new FormData();
fdInputField.left = new FormAttachment(middle, 0);
fdInputField.top = new FormAttachment(wInputType, margin);
fdInputField.right = new FormAttachment(100, 0);
wInputField.setLayoutData(fdInputField);
wInputField.setEnabled(false);
wInputField.addFocusListener(
new FocusListener() {
@Override
public void focusLost(org.eclipse.swt.events.FocusEvent e) { // Disable focuslost
}
@Override
public void focusGained(org.eclipse.swt.events.FocusEvent e) {
Cursor busy = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
shell.setCursor(busy);
getFields();
shell.setCursor(null);
busy.dispose();
}
});
/* End */
FormData fdgInputField = new FormData();
fdgInputField.left = new FormAttachment(0, 0);
fdgInputField.right = new FormAttachment(100, 0);
fdgInputField.top = new FormAttachment(wInputType, margin * 2);
gInputField.setLayoutData(fdgInputField);
/////////////////////
// Input file group
gInputFile = new Group(wInputComp, SWT.SHADOW_ETCHED_IN);
gInputFile.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.InputFileGroup.Label"));
FormLayout inputFileLayout = new FormLayout();
inputFileLayout.marginWidth = 3;
inputFileLayout.marginHeight = 3;
gInputFile.setLayout(inputFileLayout);
PropsUi.setLook(gInputFile);
// InputFilename line
wlInputFilename = new Label(gInputFile, SWT.RIGHT);
wlInputFilename.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.InputFilename.Label"));
PropsUi.setLook(wlInputFilename);
FormData fdlInputFilename = new FormData();
fdlInputFilename.left = new FormAttachment(0, 0);
fdlInputFilename.top = new FormAttachment(0, margin);
fdlInputFilename.right = new FormAttachment(middle, -margin);
wlInputFilename.setLayoutData(fdlInputFilename);
wbInputFilename = new Button(gInputFile, SWT.PUSH | SWT.CENTER);
PropsUi.setLook(wbInputFilename);
wbInputFilename.setText(BaseMessages.getString(PKG, "System.Button.Browse"));
FormData fdbInputFilename = new FormData();
fdbInputFilename.right = new FormAttachment(100, 0);
fdbInputFilename.top = new FormAttachment(0, 0);
wbInputFilename.setLayoutData(fdbInputFilename);
wInputFilename = new TextVar(variables, gInputFile, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wInputFilename);
wInputFilename.addModifyListener(lsMod);
FormData fdInputFilename = new FormData();
fdInputFilename.left = new FormAttachment(middle, 0);
fdInputFilename.top = new FormAttachment(0, margin);
fdInputFilename.right = new FormAttachment(wbInputFilename, -margin);
wInputFilename.setLayoutData(fdInputFilename);
// File name in field line
//
wlInputFilenameInField = new Label(gInputFile, SWT.RIGHT);
wlInputFilenameInField.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.FilenameInField.Label"));
PropsUi.setLook(wlInputFilenameInField);
FormData fdlInputFilenameInField = new FormData();
fdlInputFilenameInField.left = new FormAttachment(0, 0);
fdlInputFilenameInField.top = new FormAttachment(wInputFilename, margin);
fdlInputFilenameInField.right = new FormAttachment(middle, -margin);
wlInputFilenameInField.setLayoutData(fdlInputFilenameInField);
wInputFilenameInField = new Button(gInputFile, SWT.CHECK);
PropsUi.setLook(wInputFilenameInField);
FormData fdInputFilenameInField = new FormData();
fdInputFilenameInField.left = new FormAttachment(middle, 0);
fdInputFilenameInField.top = new FormAttachment(wInputFilename, margin);
fdInputFilenameInField.right = new FormAttachment(100, 0);
wInputFilenameInField.setLayoutData(fdInputFilenameInField);
wInputFilenameInField.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
setInputFilenameInField();
}
});
// Input FileNameField Line
wlInputFilenameField = new Label(gInputFile, SWT.RIGHT);
wlInputFilenameField.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.InputFilenameField.Label"));
PropsUi.setLook(wlInputFilenameField);
FormData fdlInputFilenameField = new FormData();
fdlInputFilenameField.left = new FormAttachment(0, 0);
fdlInputFilenameField.right = new FormAttachment(middle, -margin);
fdlInputFilenameField.top = new FormAttachment(wInputFilenameInField, margin);
wlInputFilenameField.setLayoutData(fdlInputFilenameField);
wInputFilenameField = new ComboVar(variables, gInputFile, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wInputFilenameField);
wInputFilenameField.addModifyListener(lsMod);
FormData fdInputFilenameField = new FormData();
fdInputFilenameField.left = new FormAttachment(middle, 0);
fdInputFilenameField.top = new FormAttachment(wInputFilenameInField, margin);
fdInputFilenameField.right = new FormAttachment(100, 0);
wInputFilenameField.setLayoutData(fdInputFilenameField);
wInputFilenameField.setEnabled(false);
wInputFilenameField.addFocusListener(
new FocusListener() {
@Override
public void focusLost(org.eclipse.swt.events.FocusEvent e) {
// Disable Focuslost
}
@Override
public void focusGained(org.eclipse.swt.events.FocusEvent e) {
Cursor busy = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
shell.setCursor(busy);
getFields();
shell.setCursor(null);
busy.dispose();
}
});
/* End */
// Add Input Filename to Result Line
//
wlAddInputFilenameToResult = new Label(gInputFile, SWT.RIGHT);
wlAddInputFilenameToResult.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.AddInputFilenameToResult.Label"));
PropsUi.setLook(wlAddInputFilenameToResult);
FormData fdlAddInputFilenameToResult = new FormData();
fdlAddInputFilenameToResult.left = new FormAttachment(0, 0);
fdlAddInputFilenameToResult.top = new FormAttachment(wInputFilenameField, margin);
fdlAddInputFilenameToResult.right = new FormAttachment(middle, -margin);
wlAddInputFilenameToResult.setLayoutData(fdlAddInputFilenameToResult);
wAddInputFilenameToResult = new Button(gInputFile, SWT.CHECK);
PropsUi.setLook(wAddInputFilenameToResult);
FormData fdAddInputFilenameToResult = new FormData();
fdAddInputFilenameToResult.left = new FormAttachment(middle, 0);
fdAddInputFilenameToResult.top = new FormAttachment(wInputFilenameField, margin);
fdAddInputFilenameToResult.right = new FormAttachment(100, 0);
wAddInputFilenameToResult.setLayoutData(fdAddInputFilenameToResult);
wAddInputFilenameToResult.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
FormData fdgInputFile = new FormData();
fdgInputFile.left = new FormAttachment(0, 0);
fdgInputFile.right = new FormAttachment(100, 0);
fdgInputFile.top = new FormAttachment(wInputType, margin * 2);
gInputFile.setLayoutData(fdgInputFile);
FormData fdInputComp = new FormData();
fdInputComp.left = new FormAttachment(0, 0);
fdInputComp.top = new FormAttachment(0, 0);
fdInputComp.right = new FormAttachment(100, 0);
fdInputComp.bottom = new FormAttachment(100, 0);
wInputComp.setLayoutData(fdInputComp);
wInputComp.layout();
wInputTab.setControl(wInputComp);
// ////////////////////////
// START OF OUTPUT TAB///
// /
CTabItem wOutputTab = new CTabItem(wTabFolder, SWT.NONE);
wOutputTab.setFont(GuiResource.getInstance().getFontDefault());
wOutputTab.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.OutputTab.TabTitle"));
Composite wOutputComp = new Composite(wTabFolder, SWT.NONE);
PropsUi.setLook(wOutputComp);
FormLayout outputLayout = new FormLayout();
outputLayout.marginWidth = 3;
outputLayout.marginHeight = 3;
wOutputComp.setLayout(outputLayout);
//
// Output Type
Label wlOutputType = new Label(wOutputComp, SWT.RIGHT);
wlOutputType.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.OutputType.Label"));
PropsUi.setLook(wlOutputType);
FormData fdlOutputType = new FormData();
fdlOutputType.left = new FormAttachment(0, 0);
fdlOutputType.top = new FormAttachment(0, margin);
fdlOutputType.right = new FormAttachment(middle, -margin);
wlOutputType.setLayoutData(fdlOutputType);
wOutputType = new CCombo(wOutputComp, SWT.BORDER | SWT.READ_ONLY);
wOutputType.setEditable(true);
PropsUi.setLook(wOutputType);
wOutputType.addModifyListener(lsMod);
FormData fdOutputType = new FormData();
fdOutputType.left = new FormAttachment(middle, 0);
fdOutputType.top = new FormAttachment(0, margin);
fdOutputType.right = new FormAttachment(75, 0);
wOutputType.setLayoutData(fdOutputType);
String[] outputTypes = TokenReplacementMeta.OUTPUT_TYPES;
for (String outputType : outputTypes) {
wOutputType.add(outputType);
}
wOutputType.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent selectionEvent) {
input.setChanged();
updateOutputType();
}
});
/////////////////////
// Output field group
gOutputField = new Group(wOutputComp, SWT.SHADOW_ETCHED_IN);
gOutputField.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.OutputFieldGroup.Label"));
FormLayout outputFieldLayout = new FormLayout();
outputFieldLayout.marginWidth = 3;
outputFieldLayout.marginHeight = 3;
gOutputField.setLayout(outputFieldLayout);
PropsUi.setLook(gOutputField);
// output Field Line
wlOutputField = new Label(gOutputField, SWT.RIGHT);
wlOutputField.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.OutputField.Label"));
PropsUi.setLook(wlOutputField);
FormData fdlOutputField = new FormData();
fdlOutputField.left = new FormAttachment(0, 0);
fdlOutputField.right = new FormAttachment(middle, -margin);
fdlOutputField.top = new FormAttachment(0, margin);
wlOutputField.setLayoutData(fdlOutputField);
wOutputField = new TextVar(variables, gOutputField, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wOutputField);
wOutputField.addModifyListener(lsMod);
FormData fdOutputField = new FormData();
fdOutputField.left = new FormAttachment(middle, 0);
fdOutputField.top = new FormAttachment(0, margin);
fdOutputField.right = new FormAttachment(100, 0);
wOutputField.setLayoutData(fdOutputField);
wOutputField.setEnabled(false);
wOutputField.addModifyListener(lsMod);
/* End */
FormData fdgOutputField = new FormData();
fdgOutputField.left = new FormAttachment(0, 0);
fdgOutputField.right = new FormAttachment(100, 0);
fdgOutputField.top = new FormAttachment(wOutputType, margin * 2);
gOutputField.setLayoutData(fdgOutputField);
/////////////////////
// Output file group
gOutputFile = new Group(wOutputComp, SWT.SHADOW_ETCHED_IN);
gOutputFile.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.OutputFileGroup.Label"));
FormLayout outputFileLayout = new FormLayout();
outputFileLayout.marginWidth = 3;
outputFileLayout.marginHeight = 3;
gOutputFile.setLayout(outputFileLayout);
PropsUi.setLook(gOutputFile);
// OutputFilename line
wlOutputFilename = new Label(gOutputFile, SWT.RIGHT);
wlOutputFilename.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.OutputFilename.Label"));
PropsUi.setLook(wlOutputFilename);
FormData fdlOutputFilename = new FormData();
fdlOutputFilename.left = new FormAttachment(0, 0);
fdlOutputFilename.top = new FormAttachment(0, margin);
fdlOutputFilename.right = new FormAttachment(middle, -margin);
wlOutputFilename.setLayoutData(fdlOutputFilename);
wbOutputFilename = new Button(gOutputFile, SWT.PUSH | SWT.CENTER);
PropsUi.setLook(wbOutputFilename);
wbOutputFilename.setText(BaseMessages.getString(PKG, "System.Button.Browse"));
FormData fdbOutputFilename = new FormData();
fdbOutputFilename.right = new FormAttachment(100, 0);
fdbOutputFilename.top = new FormAttachment(0, 0);
wbOutputFilename.setLayoutData(fdbOutputFilename);
wOutputFilename = new TextVar(variables, gOutputFile, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wOutputFilename);
wOutputFilename.addModifyListener(lsMod);
FormData fdOutputFilename = new FormData();
fdOutputFilename.left = new FormAttachment(middle, 0);
fdOutputFilename.top = new FormAttachment(0, margin);
fdOutputFilename.right = new FormAttachment(wbOutputFilename, -margin);
wOutputFilename.setLayoutData(fdOutputFilename);
// File name in field line
//
Label wlOutputFilenameInField = new Label(gOutputFile, SWT.RIGHT);
wlOutputFilenameInField.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.FilenameInField.Label"));
PropsUi.setLook(wlOutputFilenameInField);
FormData fdlOutputFilenameInField = new FormData();
fdlOutputFilenameInField.left = new FormAttachment(0, 0);
fdlOutputFilenameInField.top = new FormAttachment(wOutputFilename, margin);
fdlOutputFilenameInField.right = new FormAttachment(middle, -margin);
wlOutputFilenameInField.setLayoutData(fdlOutputFilenameInField);
wOutputFilenameInField = new Button(gOutputFile, SWT.CHECK);
PropsUi.setLook(wOutputFilenameInField);
FormData fdOutputFilenameInField = new FormData();
fdOutputFilenameInField.left = new FormAttachment(middle, 0);
fdOutputFilenameInField.top = new FormAttachment(wOutputFilename, margin);
fdOutputFilenameInField.right = new FormAttachment(100, 0);
wOutputFilenameInField.setLayoutData(fdOutputFilenameInField);
wOutputFilenameInField.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
setOutputFilenameInField();
}
});
// Output FileNameField Line
wlOutputFilenameField = new Label(gOutputFile, SWT.RIGHT);
wlOutputFilenameField.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.OutputFilenameField.Label"));
PropsUi.setLook(wlOutputFilenameField);
FormData fdlOutputFilenameField = new FormData();
fdlOutputFilenameField.left = new FormAttachment(0, 0);
fdlOutputFilenameField.right = new FormAttachment(middle, -margin);
fdlOutputFilenameField.top = new FormAttachment(wOutputFilenameInField, margin);
wlOutputFilenameField.setLayoutData(fdlOutputFilenameField);
wOutputFilenameField = new ComboVar(variables, gOutputFile, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wOutputFilenameField);
wOutputFilenameField.addModifyListener(lsMod);
FormData fdOutputFilenameField = new FormData();
fdOutputFilenameField.left = new FormAttachment(middle, 0);
fdOutputFilenameField.top = new FormAttachment(wOutputFilenameInField, margin);
fdOutputFilenameField.right = new FormAttachment(100, 0);
wOutputFilenameField.setLayoutData(fdOutputFilenameField);
wOutputFilenameField.setEnabled(false);
wOutputFilenameField.addFocusListener(
new FocusListener() {
@Override
public void focusLost(org.eclipse.swt.events.FocusEvent e) {
// Disable Focuslost
}
@Override
public void focusGained(org.eclipse.swt.events.FocusEvent e) {
Cursor busy = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
shell.setCursor(busy);
getFields();
shell.setCursor(null);
busy.dispose();
}
});
/* End */
// Append
//
wlAppendOutputFilename = new Label(gOutputFile, SWT.RIGHT);
wlAppendOutputFilename.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.AppendOutput.Label"));
PropsUi.setLook(wlAppendOutputFilename);
FormData fdlAppendOutputFilename = new FormData();
fdlAppendOutputFilename.left = new FormAttachment(0, 0);
fdlAppendOutputFilename.top = new FormAttachment(wOutputFilenameField, margin);
fdlAppendOutputFilename.right = new FormAttachment(middle, -margin);
wlAppendOutputFilename.setLayoutData(fdlAppendOutputFilename);
wAppendOutputFilename = new Button(gOutputFile, SWT.CHECK);
wAppendOutputFilename.setToolTipText(
BaseMessages.getString(PKG, "TokenReplacementDialog.AppendOutput.Tooltip"));
PropsUi.setLook(wAppendOutputFilename);
FormData fdAppendOutputFilename = new FormData();
fdAppendOutputFilename.left = new FormAttachment(middle, 0);
fdAppendOutputFilename.top = new FormAttachment(wOutputFilenameField, margin);
fdAppendOutputFilename.right = new FormAttachment(100, 0);
wAppendOutputFilename.setLayoutData(fdAppendOutputFilename);
wAppendOutputFilename.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
// Create Parent Folder
//
wlCreateParentFolder = new Label(gOutputFile, SWT.RIGHT);
wlCreateParentFolder.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.CreateParentFolder.Label"));
PropsUi.setLook(wlCreateParentFolder);
FormData fdlCreateParentFolder = new FormData();
fdlCreateParentFolder.left = new FormAttachment(0, 0);
fdlCreateParentFolder.top = new FormAttachment(wAppendOutputFilename, margin);
fdlCreateParentFolder.right = new FormAttachment(middle, -margin);
wlCreateParentFolder.setLayoutData(fdlCreateParentFolder);
wCreateParentFolder = new Button(gOutputFile, SWT.CHECK);
wCreateParentFolder.setToolTipText(
BaseMessages.getString(PKG, "TokenReplacementDialog.CreateParentFolder.Tooltip"));
PropsUi.setLook(wCreateParentFolder);
FormData fdCreateParentFolder = new FormData();
fdCreateParentFolder.left = new FormAttachment(middle, 0);
fdCreateParentFolder.top = new FormAttachment(wAppendOutputFilename, margin);
fdCreateParentFolder.right = new FormAttachment(100, 0);
wCreateParentFolder.setLayoutData(fdCreateParentFolder);
wCreateParentFolder.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
Label wlFormat = new Label(gOutputFile, SWT.RIGHT);
wlFormat.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.Format.Label"));
PropsUi.setLook(wlFormat);
FormData fdlFormat = new FormData();
fdlFormat.left = new FormAttachment(0, 0);
fdlFormat.top = new FormAttachment(wCreateParentFolder, margin);
fdlFormat.right = new FormAttachment(middle, -margin);
wlFormat.setLayoutData(fdlFormat);
wFormat = new CCombo(gOutputFile, SWT.BORDER | SWT.READ_ONLY);
PropsUi.setLook(wFormat);
for (int i = 0; i < TokenReplacementMeta.formatMapperLineTerminator.length; i++) {
wFormat.add(TokenReplacementMeta.formatMapperLineTerminatorDescriptions[i]);
}
wFormat.select(0);
wFormat.addModifyListener(lsMod);
FormData fdFormat = new FormData();
fdFormat.left = new FormAttachment(middle, 0);
fdFormat.top = new FormAttachment(wCreateParentFolder, margin);
fdFormat.right = new FormAttachment(100, 0);
wFormat.setLayoutData(fdFormat);
// Encoding line
Label wlOutputFileEncoding = new Label(gOutputFile, SWT.RIGHT);
wlOutputFileEncoding.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.Encoding.Label"));
PropsUi.setLook(wlOutputFileEncoding);
FormData fdlOutputFileEncoding = new FormData();
fdlOutputFileEncoding.left = new FormAttachment(0, 0);
fdlOutputFileEncoding.top = new FormAttachment(wFormat, margin);
fdlOutputFileEncoding.right = new FormAttachment(middle, -margin);
wlOutputFileEncoding.setLayoutData(fdlOutputFileEncoding);
wOutputFileEncoding = new CCombo(gOutputFile, SWT.BORDER | SWT.READ_ONLY);
wOutputFileEncoding.setEditable(true);
PropsUi.setLook(wOutputFileEncoding);
wOutputFileEncoding.addModifyListener(lsMod);
FormData fdOutputFileEncoding = new FormData();
fdOutputFileEncoding.left = new FormAttachment(middle, 0);
fdOutputFileEncoding.top = new FormAttachment(wFormat, margin);
fdOutputFileEncoding.right = new FormAttachment(100, 0);
wOutputFileEncoding.setLayoutData(fdOutputFileEncoding);
wOutputFileEncoding.addFocusListener(
new FocusListener() {
@Override
public void focusLost(org.eclipse.swt.events.FocusEvent e) {
// Disable focuslost
}
@Override
public void focusGained(org.eclipse.swt.events.FocusEvent e) {
Cursor busy = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
shell.setCursor(busy);
setEncodings();
shell.setCursor(null);
busy.dispose();
}
});
// output Split Every Line
wlOutputSplitEvery = new Label(gOutputFile, SWT.RIGHT);
wlOutputSplitEvery.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.OutputSplitEvery.Label"));
PropsUi.setLook(wlOutputSplitEvery);
FormData fdlOutputSplitEvery = new FormData();
fdlOutputSplitEvery.left = new FormAttachment(0, 0);
fdlOutputSplitEvery.right = new FormAttachment(middle, -margin);
fdlOutputSplitEvery.top = new FormAttachment(wOutputFileEncoding, margin);
wlOutputSplitEvery.setLayoutData(fdlOutputSplitEvery);
wOutputSplitEvery = new Text(gOutputFile, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wOutputSplitEvery);
wOutputSplitEvery.addModifyListener(lsMod);
FormData fdOutputSplitEvery = new FormData();
fdOutputSplitEvery.left = new FormAttachment(middle, 0);
fdOutputSplitEvery.top = new FormAttachment(wOutputFileEncoding, margin);
fdOutputSplitEvery.right = new FormAttachment(100, 0);
wOutputSplitEvery.setLayoutData(fdOutputSplitEvery);
wOutputSplitEvery.setEnabled(false);
// Include Transform NR in Output Filename
//
wlIncludeTransformNrInFilename = new Label(gOutputFile, SWT.RIGHT);
wlIncludeTransformNrInFilename.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.IncludeTransformnr.Label"));
PropsUi.setLook(wlIncludeTransformNrInFilename);
FormData fdlIncludeTransformNrInFilename = new FormData();
fdlIncludeTransformNrInFilename.left = new FormAttachment(0, 0);
fdlIncludeTransformNrInFilename.top = new FormAttachment(wOutputSplitEvery, margin);
fdlIncludeTransformNrInFilename.right = new FormAttachment(middle, -margin);
wlIncludeTransformNrInFilename.setLayoutData(fdlIncludeTransformNrInFilename);
wIncludeTransformNrInFilename = new Button(gOutputFile, SWT.CHECK);
PropsUi.setLook(wIncludeTransformNrInFilename);
FormData fdIncludeTransformNrInFilename = new FormData();
fdIncludeTransformNrInFilename.left = new FormAttachment(middle, 0);
fdIncludeTransformNrInFilename.top = new FormAttachment(wOutputSplitEvery, margin);
fdIncludeTransformNrInFilename.right = new FormAttachment(100, 0);
wIncludeTransformNrInFilename.setLayoutData(fdIncludeTransformNrInFilename);
wIncludeTransformNrInFilename.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
// Include Part Nr in filename line
//
wlIncludePartNrInFilename = new Label(gOutputFile, SWT.RIGHT);
wlIncludePartNrInFilename.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.IncludePartnr.Label"));
PropsUi.setLook(wlIncludePartNrInFilename);
FormData fdlIncludePartNrInFilename = new FormData();
fdlIncludePartNrInFilename.left = new FormAttachment(0, 0);
fdlIncludePartNrInFilename.top = new FormAttachment(wIncludeTransformNrInFilename, margin);
fdlIncludePartNrInFilename.right = new FormAttachment(middle, -margin);
wlIncludePartNrInFilename.setLayoutData(fdlIncludePartNrInFilename);
wIncludePartNrInFilename = new Button(gOutputFile, SWT.CHECK);
PropsUi.setLook(wIncludePartNrInFilename);
FormData fdIncludePartNrInFilename = new FormData();
fdIncludePartNrInFilename.left = new FormAttachment(middle, 0);
fdIncludePartNrInFilename.top = new FormAttachment(wIncludeTransformNrInFilename, margin);
fdIncludePartNrInFilename.right = new FormAttachment(100, 0);
wIncludePartNrInFilename.setLayoutData(fdIncludePartNrInFilename);
wIncludePartNrInFilename.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
// Include Date in Output Filename
//
wlIncludeDateInFilename = new Label(gOutputFile, SWT.RIGHT);
wlIncludeDateInFilename.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.IncludeDate.Label"));
PropsUi.setLook(wlIncludeDateInFilename);
FormData fdlIncludeDateInFilename = new FormData();
fdlIncludeDateInFilename.left = new FormAttachment(0, 0);
fdlIncludeDateInFilename.top = new FormAttachment(wIncludePartNrInFilename, margin);
fdlIncludeDateInFilename.right = new FormAttachment(middle, -margin);
wlIncludeDateInFilename.setLayoutData(fdlIncludeDateInFilename);
wIncludeDateInFilename = new Button(gOutputFile, SWT.CHECK);
PropsUi.setLook(wIncludeDateInFilename);
FormData fdIncludeDateInFilename = new FormData();
fdIncludeDateInFilename.left = new FormAttachment(middle, 0);
fdIncludeDateInFilename.top = new FormAttachment(wIncludePartNrInFilename, margin);
fdIncludeDateInFilename.right = new FormAttachment(100, 0);
wIncludeDateInFilename.setLayoutData(fdIncludeDateInFilename);
wIncludeDateInFilename.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
// Include time in filename
//
wlIncludeTimeInFilename = new Label(gOutputFile, SWT.RIGHT);
wlIncludeTimeInFilename.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.IncludeTime.Label"));
PropsUi.setLook(wlIncludeTimeInFilename);
FormData fdlIncludeTimeInFilename = new FormData();
fdlIncludeTimeInFilename.left = new FormAttachment(0, 0);
fdlIncludeTimeInFilename.top = new FormAttachment(wIncludeDateInFilename, margin);
fdlIncludeTimeInFilename.right = new FormAttachment(middle, -margin);
wlIncludeTimeInFilename.setLayoutData(fdlIncludeTimeInFilename);
wIncludeTimeInFilename = new Button(gOutputFile, SWT.CHECK);
PropsUi.setLook(wIncludeTimeInFilename);
FormData fdIncludeTimeInFilename = new FormData();
fdIncludeTimeInFilename.left = new FormAttachment(middle, 0);
fdIncludeTimeInFilename.top = new FormAttachment(wIncludeDateInFilename, margin);
fdIncludeTimeInFilename.right = new FormAttachment(100, 0);
wIncludeTimeInFilename.setLayoutData(fdIncludeTimeInFilename);
wIncludeTimeInFilename.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
// Specify format
//
wlSpecifyDateFormat = new Label(gOutputFile, SWT.RIGHT);
wlSpecifyDateFormat.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.SpecifyFormat.Label"));
PropsUi.setLook(wlSpecifyDateFormat);
FormData fdlSpecifyDateFormat = new FormData();
fdlSpecifyDateFormat.left = new FormAttachment(0, 0);
fdlSpecifyDateFormat.top = new FormAttachment(wIncludeTimeInFilename, margin);
fdlSpecifyDateFormat.right = new FormAttachment(middle, -margin);
wlSpecifyDateFormat.setLayoutData(fdlSpecifyDateFormat);
wSpecifyDateFormat = new Button(gOutputFile, SWT.CHECK);
PropsUi.setLook(wSpecifyDateFormat);
FormData fdSpecifyDateFormat = new FormData();
fdSpecifyDateFormat.left = new FormAttachment(middle, 0);
fdSpecifyDateFormat.top = new FormAttachment(wIncludeTimeInFilename, margin);
fdSpecifyDateFormat.right = new FormAttachment(100, 0);
wSpecifyDateFormat.setLayoutData(fdSpecifyDateFormat);
wSpecifyDateFormat.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
setSpecifyDateFormat();
}
});
// DateTimeFormat
wlDateFormat = new Label(gOutputFile, SWT.RIGHT);
wlDateFormat.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.DateTimeFormat.Label"));
PropsUi.setLook(wlDateFormat);
FormData fdlDateFormat = new FormData();
fdlDateFormat.left = new FormAttachment(0, 0);
fdlDateFormat.top = new FormAttachment(wSpecifyDateFormat, margin);
fdlDateFormat.right = new FormAttachment(middle, -margin);
wlDateFormat.setLayoutData(fdlDateFormat);
wDateFormat = new CCombo(gOutputFile, SWT.BORDER | SWT.READ_ONLY);
wDateFormat.setEditable(true);
PropsUi.setLook(wDateFormat);
wDateFormat.addModifyListener(lsMod);
FormData fdDateFormat = new FormData();
fdDateFormat.left = new FormAttachment(middle, 0);
fdDateFormat.top = new FormAttachment(wSpecifyDateFormat, margin);
fdDateFormat.right = new FormAttachment(75, 0);
wDateFormat.setLayoutData(fdDateFormat);
String[] dats = Const.getDateFormats();
for (String dat : dats) {
wDateFormat.add(dat);
}
// Add Output Filename to Result Line
//
wlAddOutputFilenameToResult = new Label(gOutputFile, SWT.RIGHT);
wlAddOutputFilenameToResult.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.AddOutputFilenameToResult.Label"));
PropsUi.setLook(wlAddOutputFilenameToResult);
FormData fdlAddOutputFilenameToResult = new FormData();
fdlAddOutputFilenameToResult.left = new FormAttachment(0, 0);
fdlAddOutputFilenameToResult.top = new FormAttachment(wDateFormat, margin);
fdlAddOutputFilenameToResult.right = new FormAttachment(middle, -margin);
wlAddOutputFilenameToResult.setLayoutData(fdlAddOutputFilenameToResult);
wAddOutputFilenameToResult = new Button(gOutputFile, SWT.CHECK);
PropsUi.setLook(wAddOutputFilenameToResult);
FormData fdAddOutputFilenameToResult = new FormData();
fdAddOutputFilenameToResult.left = new FormAttachment(middle, 0);
fdAddOutputFilenameToResult.top = new FormAttachment(wDateFormat, margin);
fdAddOutputFilenameToResult.right = new FormAttachment(100, 0);
wAddOutputFilenameToResult.setLayoutData(fdAddOutputFilenameToResult);
wAddOutputFilenameToResult.addSelectionListener(
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
input.setChanged();
}
});
FormData fdgOutputFile = new FormData();
fdgOutputFile.left = new FormAttachment(0, 0);
fdgOutputFile.right = new FormAttachment(100, 0);
fdgOutputFile.top = new FormAttachment(wOutputType, margin * 2);
gOutputFile.setLayoutData(fdgOutputFile);
FormData fdOutputComp = new FormData();
fdOutputComp.left = new FormAttachment(0, 0);
fdOutputComp.top = new FormAttachment(0, 0);
fdOutputComp.right = new FormAttachment(100, 0);
fdOutputComp.bottom = new FormAttachment(100, 0);
wOutputComp.setLayoutData(fdOutputComp);
wOutputComp.layout();
wOutputTab.setControl(wOutputComp);
// ///////////////////////////////////////////////////////////
// / END OF FILE TAB
// ///////////////////////////////////////////////////////////
// Token tab...
//
CTabItem wTokensTab = new CTabItem(wTabFolder, SWT.NONE);
wTokensTab.setFont(GuiResource.getInstance().getFontDefault());
wTokensTab.setText(BaseMessages.getString(PKG, "TokenReplacementDialog.TokensTab.TabTitle"));
FormLayout tokensLayout = new FormLayout();
tokensLayout.marginWidth = PropsUi.getFormMargin();
tokensLayout.marginHeight = PropsUi.getFormMargin();
Composite wTokensComp = new Composite(wTabFolder, SWT.NONE);
wTokensComp.setLayout(tokensLayout);
PropsUi.setLook(wTokensComp);
wGet = new Button(wTokensComp, SWT.PUSH);
wGet.setText(BaseMessages.getString(PKG, "System.Button.GetFields"));
wGet.setToolTipText(BaseMessages.getString(PKG, "System.Tooltip.GetFields"));
fdGet = new FormData();
fdGet.right = new FormAttachment(50, -margin);
fdGet.bottom = new FormAttachment(100, 0);
wGet.setLayoutData(fdGet);
// Token Start String
Label wlTokenStartString = new Label(wTokensComp, SWT.RIGHT);
wlTokenStartString.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.TokenStartString.Label"));
PropsUi.setLook(wlTokenStartString);
FormData fdlTokenStartString = new FormData();
fdlTokenStartString.left = new FormAttachment(0, 0);
fdlTokenStartString.top = new FormAttachment(0, margin);
fdlTokenStartString.right = new FormAttachment(middle, -margin);
wlTokenStartString.setLayoutData(fdlTokenStartString);
wTokenStartString = new TextVar(variables, wTokensComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wTokenStartString);
wTokenStartString.addModifyListener(lsMod);
FormData fdTokenStartString = new FormData();
fdTokenStartString.left = new FormAttachment(middle, 0);
fdTokenStartString.top = new FormAttachment(0, margin);
fdTokenStartString.right = new FormAttachment(100, -margin);
wTokenStartString.setLayoutData(fdTokenStartString);
// Token End String
Label wlTokenEndString = new Label(wTokensComp, SWT.RIGHT);
wlTokenEndString.setText(
BaseMessages.getString(PKG, "TokenReplacementDialog.TokenEndString.Label"));
PropsUi.setLook(wlTokenEndString);
FormData fdlTokenEndString = new FormData();
fdlTokenEndString.left = new FormAttachment(0, 0);
fdlTokenEndString.top = new FormAttachment(wTokenStartString, margin);
fdlTokenEndString.right = new FormAttachment(middle, -margin);
wlTokenEndString.setLayoutData(fdlTokenEndString);
wTokenEndString = new TextVar(variables, wTokensComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
PropsUi.setLook(wTokenEndString);
wTokenEndString.addModifyListener(lsMod);
FormData fdTokenEndString = new FormData();
fdTokenEndString.left = new FormAttachment(middle, 0);
fdTokenEndString.top = new FormAttachment(wTokenStartString, margin);
fdTokenEndString.right = new FormAttachment(100, -margin);
wTokenEndString.setLayoutData(fdTokenEndString);
// Tokens table
final int FieldsCols = 2;
final int FieldsRows = input.getTokenReplacementFields().length;
colinf = new ColumnInfo[FieldsCols];
colinf[0] =
new ColumnInfo(
BaseMessages.getString(PKG, "TokenReplacementDialog.TokenColumn.Column"),
ColumnInfo.COLUMN_TYPE_TEXT,
false);
colinf[1] =
new ColumnInfo(
BaseMessages.getString(PKG, "TokenReplacementDialog.StreamColumn.Column"),
ColumnInfo.COLUMN_TYPE_CCOMBO,
new String[] {""},
false);
wFields =
new TableView(
variables,
wTokensComp,
SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI,
colinf,
FieldsRows,
lsMod,
props);
FormData fdFields = new FormData();
fdFields.left = new FormAttachment(0, 0);
fdFields.top = new FormAttachment(wTokenEndString, margin * 2);
fdFields.right = new FormAttachment(100, 0);
fdFields.bottom = new FormAttachment(wGet, -margin);
wFields.setLayoutData(fdFields);
//
// 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.add(row.getValueMeta(i).getName());
}
setComboBoxes();
} catch (HopException e) {
logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message"));
}
}
};
new Thread(runnable).start();
FormData fdTokensComp = new FormData();
fdTokensComp.left = new FormAttachment(0, 0);
fdTokensComp.top = new FormAttachment(0, 0);
fdTokensComp.right = new FormAttachment(100, 0);
fdTokensComp.bottom = new FormAttachment(100, 0);
wTokensComp.setLayoutData(fdTokensComp);
wTokensComp.layout();
wTokensTab.setControl(wTokensComp);
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);
// Add listeners
wGet.addListener(SWT.Selection, e -> get());
// Whenever something changes, set the tooltip to the expanded version:
wInputFilename.addModifyListener(
e -> wInputFilename.setToolTipText(variables.resolve(wInputFilename.getText())));
// Whenever something changes, set the tooltip to the expanded version:
wOutputFilename.addModifyListener(
e -> wOutputFilename.setToolTipText(variables.resolve(wOutputFilename.getText())));
wbInputFilename.addListener(
SWT.Selection,
e ->
BaseDialog.presentFileDialog(
shell,
wInputFilename,
variables,
new String[] {"*"},
new String[] {BaseMessages.getString(PKG, "System.FileType.AllFiles")},
true));
wbOutputFilename.addListener(
SWT.Selection,
e ->
BaseDialog.presentFileDialog(
shell,
wOutputFilename,
variables,
new String[] {"*"},
new String[] {BaseMessages.getString(PKG, "System.FileType.AllFiles")},
true));
lsResize =
event -> {
Point size = shell.getSize();
wFields.setSize(size.x - 10, size.y - 50);
wFields.table.setSize(size.x - 10, size.y - 50);
wFields.redraw();
};
shell.addListener(SWT.Resize, lsResize);
wTabFolder.setSelection(0);
getData();
input.setChanged(changed);
updateInputType();
updateOutputType();
BaseDialog.defaultShellHandling(shell, c -> ok(), c -> cancel());
return transformName;
}