use of org.pentaho.di.ui.core.widget.ColumnsResizer in project pentaho-kettle by pentaho.
the class SimpleMappingDialog method addMappingDefinitionTab.
private void addMappingDefinitionTab(final MappingIODefinition definition, int index, final String tabTitle, final String tabTooltip, String sourceColumnLabel, String targetColumnLabel, final boolean input) {
final CTabItem wTab;
if (index >= wTabFolder.getItemCount()) {
wTab = new CTabItem(wTabFolder, SWT.CLOSE);
} else {
wTab = new CTabItem(wTabFolder, SWT.CLOSE, index);
}
setMappingDefinitionTabNameAndToolTip(wTab, tabTitle, tabTooltip, definition, input);
Composite wInputComposite = new Composite(wTabFolder, SWT.NONE);
props.setLook(wInputComposite);
FormLayout tabLayout = new FormLayout();
tabLayout.marginWidth = 15;
tabLayout.marginHeight = 15;
wInputComposite.setLayout(tabLayout);
// Now add a table view with the 2 columns to specify: input and output
// fields for the source and target steps.
//
final Button wbEnterMapping = new Button(wInputComposite, SWT.PUSH);
props.setLook(wbEnterMapping);
if (input) {
wbEnterMapping.setText(BaseMessages.getString(PKG, "SimpleMappingDialog.button.EnterMapping"));
} else {
wbEnterMapping.setText(BaseMessages.getString(PKG, "SimpleMappingDialog.button.GetFields"));
}
FormData fdbEnterMapping = new FormData();
fdbEnterMapping.bottom = new FormAttachment(100);
fdbEnterMapping.right = new FormAttachment(100);
wbEnterMapping.setLayoutData(fdbEnterMapping);
ColumnInfo[] colinfo = new ColumnInfo[] { new ColumnInfo(sourceColumnLabel, ColumnInfo.COLUMN_TYPE_TEXT, false, false), new ColumnInfo(targetColumnLabel, ColumnInfo.COLUMN_TYPE_TEXT, false, false) };
final TableView wFieldMappings = new TableView(transMeta, wInputComposite, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER, colinfo, 1, false, lsMod, props, false);
props.setLook(wFieldMappings);
FormData fdMappings = new FormData();
fdMappings.left = new FormAttachment(0);
fdMappings.right = new FormAttachment(100);
fdMappings.top = new FormAttachment(0);
fdMappings.bottom = new FormAttachment(wbEnterMapping, -10);
wFieldMappings.setLayoutData(fdMappings);
wFieldMappings.getTable().addListener(SWT.Resize, new ColumnsResizer(0, 50, 50));
for (MappingValueRename valueRename : definition.getValueRenames()) {
TableItem tableItem = new TableItem(wFieldMappings.table, SWT.NONE);
tableItem.setText(1, Const.NVL(valueRename.getSourceValueName(), ""));
tableItem.setText(2, Const.NVL(valueRename.getTargetValueName(), ""));
}
wFieldMappings.removeEmptyRows();
wFieldMappings.setRowNums();
wFieldMappings.optWidth(true);
wbEnterMapping.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
try {
if (input) {
// INPUT
//
RowMetaInterface sourceRowMeta = getFieldsFromStep(true, input);
RowMetaInterface targetRowMeta = getFieldsFromStep(false, input);
String[] sourceFields = sourceRowMeta.getFieldNames();
String[] targetFields = targetRowMeta.getFieldNames();
EnterMappingDialog dialog = new EnterMappingDialog(shell, sourceFields, targetFields);
List<SourceToTargetMapping> mappings = dialog.open();
if (mappings != null) {
// first clear the dialog...
wFieldMappings.clearAll(false);
//
definition.getValueRenames().clear();
// Now add the new values...
for (int i = 0; i < mappings.size(); i++) {
SourceToTargetMapping mapping = mappings.get(i);
TableItem item = new TableItem(wFieldMappings.table, SWT.NONE);
item.setText(1, mapping.getSourceString(sourceFields));
item.setText(2, mapping.getTargetString(targetFields));
String source = input ? item.getText(1) : item.getText(2);
String target = input ? item.getText(2) : item.getText(1);
definition.getValueRenames().add(new MappingValueRename(source, target));
}
wFieldMappings.removeEmptyRows();
wFieldMappings.setRowNums();
wFieldMappings.optWidth(true);
}
} else {
// OUTPUT
//
RowMetaInterface sourceRowMeta = getFieldsFromStep(true, input);
BaseStepDialog.getFieldsFromPrevious(sourceRowMeta, wFieldMappings, 1, new int[] { 1 }, new int[] {}, -1, -1, null);
}
} catch (KettleException e) {
new ErrorDialog(shell, BaseMessages.getString(PKG, "System.Dialog.Error.Title"), BaseMessages.getString(PKG, "SimpleMappingDialog.Exception.ErrorGettingMappingSourceAndTargetFields", e.toString()), e);
}
}
});
if (input) {
Button wRenameOutput = new Button(wInputComposite, SWT.CHECK);
props.setLook(wRenameOutput);
wRenameOutput.setText(BaseMessages.getString(PKG, "SimpleMappingDialog.input.RenamingOnOutput"));
FormData fdRenameOutput = new FormData();
fdRenameOutput.top = new FormAttachment(wFieldMappings, 10);
fdRenameOutput.left = new FormAttachment(0, 0);
wRenameOutput.setLayoutData(fdRenameOutput);
wRenameOutput.setSelection(definition.isRenamingOnOutput());
wRenameOutput.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
// flip the switch
definition.setRenamingOnOutput(!definition.isRenamingOnOutput());
}
});
}
FormData fdParametersComposite = new FormData();
fdParametersComposite.left = new FormAttachment(0, 0);
fdParametersComposite.top = new FormAttachment(0, 0);
fdParametersComposite.right = new FormAttachment(100, 0);
fdParametersComposite.bottom = new FormAttachment(100, 0);
wInputComposite.setLayoutData(fdParametersComposite);
wInputComposite.layout();
wTab.setControl(wInputComposite);
final ApplyChanges applyChanges = new MappingDefinitionTab(definition, wFieldMappings);
changeList.add(applyChanges);
wTabFolder.setSelection(wTab);
}
use of org.pentaho.di.ui.core.widget.ColumnsResizer in project pentaho-kettle by pentaho.
the class TransExecutorDialog method addResultRowsTab.
private void addResultRowsTab() {
final CTabItem wTab = new CTabItem(wTabFolder, SWT.NONE);
wTab.setText(BaseMessages.getString(PKG, "TransExecutorDialog.ResultRows.Title"));
wTab.setToolTipText(BaseMessages.getString(PKG, "TransExecutorDialog.ResultRows.Tooltip"));
ScrolledComposite scrolledComposite = new ScrolledComposite(wTabFolder, SWT.V_SCROLL | SWT.H_SCROLL);
scrolledComposite.setLayout(new FillLayout());
Composite wInputComposite = new Composite(scrolledComposite, SWT.NONE);
props.setLook(wInputComposite);
FormLayout tabLayout = new FormLayout();
tabLayout.marginWidth = 15;
tabLayout.marginHeight = 15;
wInputComposite.setLayout(tabLayout);
wlResultRowsTarget = new Label(wInputComposite, SWT.RIGHT);
props.setLook(wlResultRowsTarget);
wlResultRowsTarget.setText(BaseMessages.getString(PKG, "TransExecutorDialog.OutputRowsSource.Label"));
FormData fdlResultRowsTarget = new FormData();
fdlResultRowsTarget.top = new FormAttachment(0, 0);
// First one in the left
fdlResultRowsTarget.left = new FormAttachment(0, 0);
wlResultRowsTarget.setLayoutData(fdlResultRowsTarget);
wOutputRowsSource = new CCombo(wInputComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
props.setLook(wOutputRowsSource);
wOutputRowsSource.addModifyListener(lsMod);
FormData fdResultRowsTarget = new FormData();
fdResultRowsTarget.width = 250;
fdResultRowsTarget.top = new FormAttachment(wlResultRowsTarget, 5);
// To the right
fdResultRowsTarget.left = new FormAttachment(0, 0);
wOutputRowsSource.setLayoutData(fdResultRowsTarget);
wlOutputFields = new Label(wInputComposite, SWT.NONE);
wlOutputFields.setText(BaseMessages.getString(PKG, "TransExecutorDialog.ResultFields.Label"));
props.setLook(wlOutputFields);
FormData fdlResultFields = new FormData();
fdlResultFields.left = new FormAttachment(0, 0);
fdlResultFields.top = new FormAttachment(wOutputRowsSource, 10);
wlOutputFields.setLayoutData(fdlResultFields);
int nrRows = (transExecutorMeta.getOutputRowsField() != null ? transExecutorMeta.getOutputRowsField().length : 1);
ColumnInfo[] ciResultFields = new ColumnInfo[] { new ColumnInfo(BaseMessages.getString(PKG, "TransExecutorDialog.ColumnInfo.Field"), ColumnInfo.COLUMN_TYPE_TEXT, false, false), new ColumnInfo(BaseMessages.getString(PKG, "TransExecutorDialog.ColumnInfo.Type"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMetaFactory.getValueMetaNames()), new ColumnInfo(BaseMessages.getString(PKG, "TransExecutorDialog.ColumnInfo.Length"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo(BaseMessages.getString(PKG, "TransExecutorDialog.ColumnInfo.Precision"), ColumnInfo.COLUMN_TYPE_TEXT, false) };
wOutputFields = new TableView(transMeta, wInputComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciResultFields, nrRows, false, lsMod, props, false);
FormData fdResultFields = new FormData();
fdResultFields.left = new FormAttachment(0, 0);
fdResultFields.top = new FormAttachment(wlOutputFields, 5);
fdResultFields.right = new FormAttachment(100, 0);
fdResultFields.bottom = new FormAttachment(100, 0);
wOutputFields.setLayoutData(fdResultFields);
wOutputFields.getTable().addListener(SWT.Resize, new ColumnsResizer(0, 25, 25, 25, 25));
wInputComposite.pack();
Rectangle bounds = wInputComposite.getBounds();
scrolledComposite.setContent(wInputComposite);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
scrolledComposite.setMinWidth(bounds.width);
scrolledComposite.setMinHeight(bounds.height);
wTab.setControl(scrolledComposite);
wTabFolder.setSelection(wTab);
}
use of org.pentaho.di.ui.core.widget.ColumnsResizer in project pentaho-kettle by pentaho.
the class MappingDialog method addMappingDefinitionTab.
private void addMappingDefinitionTab(List<MappingIODefinition> definitions, final String tabTitle, String listLabel, String addToolTip, String removeToolTip, String inputStepLabel, String outputStepLabel, String descriptionLabel, String sourceColumnLabel, String targetColumnLabel, String noItemsLabel, final boolean input) {
final CTabItem wTab = new CTabItem(wTabFolder, SWT.NONE);
wTab.setText(tabTitle);
Composite wInputComposite = new Composite(wTabFolder, SWT.NONE);
props.setLook(wInputComposite);
FormLayout tabLayout = new FormLayout();
tabLayout.marginWidth = 15;
tabLayout.marginHeight = 15;
wInputComposite.setLayout(tabLayout);
Label wAvailableInputs = new Label(wInputComposite, SWT.LEFT);
props.setLook(wAvailableInputs);
wAvailableInputs.setText(listLabel);
FormData fdwAvailableInputs = new FormData();
fdwAvailableInputs.left = new FormAttachment(0);
fdwAvailableInputs.top = new FormAttachment(0);
Label wRemoveButton = new Label(wInputComposite, SWT.NONE);
wRemoveButton.setImage(GUIResource.getInstance().getImage("ui/images/generic-delete.svg"));
wRemoveButton.setToolTipText(removeToolTip);
props.setLook(wRemoveButton);
FormData fdwAddInputButton = new FormData();
fdwAddInputButton.top = new FormAttachment(0);
fdwAddInputButton.right = new FormAttachment(30);
wRemoveButton.setLayoutData(fdwAddInputButton);
Label wAddButton = new Label(wInputComposite, SWT.NONE);
wAddButton.setImage(GUIResource.getInstance().getImage("ui/images/Add.svg"));
wAddButton.setToolTipText(addToolTip);
props.setLook(wAddButton);
FormData fdwAddButton = new FormData();
fdwAddButton.top = new FormAttachment(0);
fdwAddButton.right = new FormAttachment(wRemoveButton, -5);
wAddButton.setLayoutData(fdwAddButton);
org.eclipse.swt.widgets.List wInputList = new org.eclipse.swt.widgets.List(wInputComposite, SWT.BORDER);
FormData fdwInputList = new FormData();
fdwInputList.left = new FormAttachment(0);
fdwInputList.top = new FormAttachment(wAvailableInputs, 5);
fdwInputList.bottom = new FormAttachment(100);
fdwInputList.right = new FormAttachment(30);
wInputList.setLayoutData(fdwInputList);
for (int i = 0; i < definitions.size(); i++) {
String label = !Utils.isEmpty(definitions.get(i).getInputStepname()) ? definitions.get(i).getInputStepname() : tabTitle + (i > 0 ? String.valueOf(i + 1) : "");
wInputList.add(label);
}
final Label wlNoItems = new Label(wInputComposite, SWT.CENTER);
wlNoItems.setText(noItemsLabel);
props.setLook(wlNoItems);
FormData fdlNoItems = new FormData();
fdlNoItems.left = new FormAttachment(wInputList, 30);
fdlNoItems.right = new FormAttachment(100);
fdlNoItems.top = new FormAttachment(50);
wlNoItems.setLayoutData(fdlNoItems);
wlNoItems.setVisible(false);
Composite wFieldsComposite = new Composite(wInputComposite, SWT.NONE);
props.setLook(wFieldsComposite);
FormLayout fieldLayout = new FormLayout();
fieldLayout.marginWidth = 0;
fieldLayout.marginHeight = 0;
wFieldsComposite.setLayout(fieldLayout);
final Button wMainPath = new Button(wFieldsComposite, SWT.CHECK);
wMainPath.setText(BaseMessages.getString(PKG, "MappingDialog.input.MainDataPath"));
props.setLook(wMainPath);
FormData fdMainPath = new FormData();
fdMainPath.top = new FormAttachment(0);
fdMainPath.left = new FormAttachment(0);
wMainPath.setLayoutData(fdMainPath);
wMainPath.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
definitions.get(wInputList.getSelectionIndex()).setMainDataPath(!definitions.get(wInputList.getSelectionIndex()).isMainDataPath());
}
});
final Label wlInputStep = new Label(wFieldsComposite, SWT.RIGHT);
props.setLook(wlInputStep);
wlInputStep.setText(inputStepLabel);
FormData fdlInputStep = new FormData();
fdlInputStep.top = new FormAttachment(wMainPath, 10);
fdlInputStep.left = new FormAttachment(0);
wlInputStep.setLayoutData(fdlInputStep);
// What's the stepname to read from? (empty is OK too)
//
final Button wbInputStep = new Button(wFieldsComposite, SWT.PUSH);
props.setLook(wbInputStep);
wbInputStep.setText(BaseMessages.getString(PKG, "MappingDialog.button.SourceStepName"));
FormData fdbInputStep = new FormData();
fdbInputStep.top = new FormAttachment(wlInputStep, 5);
// First one in the
fdbInputStep.right = new FormAttachment(100);
// left top corner
wbInputStep.setLayoutData(fdbInputStep);
final Text wInputStep = new Text(wFieldsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
props.setLook(wInputStep);
wInputStep.addModifyListener(lsMod);
FormData fdInputStep = new FormData();
fdInputStep.top = new FormAttachment(wlInputStep, 5);
// To the right of
fdInputStep.left = new FormAttachment(0);
// the label
fdInputStep.right = new FormAttachment(wbInputStep, -5);
wInputStep.setLayoutData(fdInputStep);
wInputStep.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent event) {
definitions.get(wInputList.getSelectionIndex()).setInputStepname(wInputStep.getText());
String label = !Utils.isEmpty(wInputStep.getText()) ? wInputStep.getText() : tabTitle + (wInputList.getSelectionIndex() > 0 ? String.valueOf(wInputList.getSelectionIndex() + 1) : "");
wInputList.setItem(wInputList.getSelectionIndex(), label);
}
});
wbInputStep.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
String stepName = selectTransformationStepname(input, input);
if (stepName != null) {
wInputStep.setText(stepName);
definitions.get(wInputList.getSelectionIndex()).setInputStepname(stepName);
}
}
});
// What's the step name to read from? (empty is OK too)
//
final Label wlOutputStep = new Label(wFieldsComposite, SWT.RIGHT);
props.setLook(wlOutputStep);
wlOutputStep.setText(outputStepLabel);
FormData fdlOutputStep = new FormData();
fdlOutputStep.top = new FormAttachment(wInputStep, 10);
fdlOutputStep.left = new FormAttachment(0);
wlOutputStep.setLayoutData(fdlOutputStep);
final Button wbOutputStep = new Button(wFieldsComposite, SWT.PUSH);
props.setLook(wbOutputStep);
wbOutputStep.setText(BaseMessages.getString(PKG, "MappingDialog.button.SourceStepName"));
FormData fdbOutputStep = new FormData();
fdbOutputStep.top = new FormAttachment(wlOutputStep, 5);
fdbOutputStep.right = new FormAttachment(100);
wbOutputStep.setLayoutData(fdbOutputStep);
final Text wOutputStep = new Text(wFieldsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
props.setLook(wOutputStep);
wOutputStep.addModifyListener(lsMod);
FormData fdOutputStep = new FormData();
fdOutputStep.top = new FormAttachment(wlOutputStep, 5);
// To the right of
fdOutputStep.left = new FormAttachment(0);
// the label
fdOutputStep.right = new FormAttachment(wbOutputStep, -5);
wOutputStep.setLayoutData(fdOutputStep);
// Allow for a small description
//
Label wlDescription = new Label(wFieldsComposite, SWT.RIGHT);
props.setLook(wlDescription);
wlDescription.setText(descriptionLabel);
FormData fdlDescription = new FormData();
fdlDescription.top = new FormAttachment(wOutputStep, 5);
// First one in the left
fdlDescription.left = new FormAttachment(0);
wlDescription.setLayoutData(fdlDescription);
final Text wDescription = new Text(wFieldsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
props.setLook(wDescription);
wDescription.addModifyListener(lsMod);
FormData fdDescription = new FormData();
fdDescription.top = new FormAttachment(wlDescription, 5);
// To the right of
fdDescription.left = new FormAttachment(0);
// the label
fdDescription.right = new FormAttachment(100);
wDescription.setLayoutData(fdDescription);
wDescription.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent event) {
definitions.get(wInputList.getSelectionIndex()).setDescription(wDescription.getText());
}
});
final Button wbEnterMapping = new Button(wFieldsComposite, SWT.PUSH);
props.setLook(wbEnterMapping);
wbEnterMapping.setText(BaseMessages.getString(PKG, "MappingDialog.button.EnterMapping"));
FormData fdbEnterMapping = new FormData();
fdbEnterMapping.bottom = new FormAttachment(100);
fdbEnterMapping.right = new FormAttachment(100);
wbEnterMapping.setLayoutData(fdbEnterMapping);
wbEnterMapping.setEnabled(input);
ColumnInfo[] colinfo = new ColumnInfo[] { new ColumnInfo(sourceColumnLabel, ColumnInfo.COLUMN_TYPE_TEXT, false, false), new ColumnInfo(targetColumnLabel, ColumnInfo.COLUMN_TYPE_TEXT, false, false) };
final TableView wFieldMappings = new TableView(transMeta, wFieldsComposite, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER, colinfo, 1, false, lsMod, props, false);
props.setLook(wFieldMappings);
FormData fdMappings = new FormData();
fdMappings.top = new FormAttachment(wDescription, 20);
fdMappings.bottom = new FormAttachment(wbEnterMapping, -5);
fdMappings.left = new FormAttachment(0);
fdMappings.right = new FormAttachment(100);
wFieldMappings.setLayoutData(fdMappings);
wFieldMappings.getTable().addListener(SWT.Resize, new ColumnsResizer(0, 50, 50));
wbEnterMapping.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
try {
RowMetaInterface sourceRowMeta = getFieldsFromStep(wInputStep.getText(), true, input);
RowMetaInterface targetRowMeta = getFieldsFromStep(wOutputStep.getText(), false, input);
String[] sourceFields = sourceRowMeta.getFieldNames();
String[] targetFields = targetRowMeta.getFieldNames();
EnterMappingDialog dialog = new EnterMappingDialog(shell, sourceFields, targetFields);
List<SourceToTargetMapping> mappings = dialog.open();
if (mappings != null) {
// first clear the dialog...
wFieldMappings.clearAll(false);
//
definitions.get(wInputList.getSelectionIndex()).getValueRenames().clear();
// Now add the new values...
for (SourceToTargetMapping mapping : mappings) {
TableItem item = new TableItem(wFieldMappings.table, SWT.NONE);
item.setText(1, mapping.getSourceString(sourceFields));
item.setText(2, mapping.getTargetString(targetFields));
String source = input ? item.getText(1) : item.getText(2);
String target = input ? item.getText(2) : item.getText(1);
definitions.get(wInputList.getSelectionIndex()).getValueRenames().add(new MappingValueRename(source, target));
}
wFieldMappings.removeEmptyRows();
wFieldMappings.setRowNums();
wFieldMappings.optWidth(true);
}
} catch (KettleException e) {
new ErrorDialog(shell, BaseMessages.getString(PKG, "System.Dialog.Error.Title"), BaseMessages.getString(PKG, "MappingDialog.Exception.ErrorGettingMappingSourceAndTargetFields", e.toString()), e);
}
}
});
wOutputStep.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent event) {
definitions.get(wInputList.getSelectionIndex()).setOutputStepname(wOutputStep.getText());
try {
enableMappingButton(wbEnterMapping, input, wInputStep.getText(), wOutputStep.getText());
} catch (KettleException e) {
// Show the missing/wrong step name error
//
new ErrorDialog(shell, "Error", "Unexpected error", e);
}
}
});
wbOutputStep.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
String stepName = selectTransformationStepname(!input, input);
if (stepName != null) {
wOutputStep.setText(stepName);
definitions.get(wInputList.getSelectionIndex()).setOutputStepname(stepName);
try {
enableMappingButton(wbEnterMapping, input, wInputStep.getText(), wOutputStep.getText());
} catch (KettleException e) {
// Show the missing/wrong stepname error
new ErrorDialog(shell, "Error", "Unexpected error", e);
}
}
}
});
final Button wRenameOutput;
if (input) {
// Add a checkbox to indicate that all output mappings need to rename
// the values back...
//
wRenameOutput = new Button(wFieldsComposite, SWT.CHECK);
wRenameOutput.setText(BaseMessages.getString(PKG, "MappingDialog.input.RenamingOnOutput"));
props.setLook(wRenameOutput);
FormData fdRenameOutput = new FormData();
fdRenameOutput.top = new FormAttachment(wFieldMappings, 5);
fdRenameOutput.left = new FormAttachment(0);
wRenameOutput.setLayoutData(fdRenameOutput);
wRenameOutput.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
definitions.get(wInputList.getSelectionIndex()).setRenamingOnOutput(!definitions.get(wInputList.getSelectionIndex()).isRenamingOnOutput());
}
});
} else {
wRenameOutput = null;
}
FormData fdInputComposite = new FormData();
fdInputComposite.left = new FormAttachment(0);
fdInputComposite.top = new FormAttachment(0);
fdInputComposite.right = new FormAttachment(100);
fdInputComposite.bottom = new FormAttachment(100);
wInputComposite.setLayoutData(fdInputComposite);
FormData fdFieldsComposite = new FormData();
fdFieldsComposite.left = new FormAttachment(wInputList, 30);
fdFieldsComposite.right = new FormAttachment(100);
fdFieldsComposite.bottom = new FormAttachment(100);
fdFieldsComposite.top = new FormAttachment(0);
wFieldsComposite.setLayoutData(fdFieldsComposite);
wInputComposite.layout();
wTab.setControl(wInputComposite);
wMainPath.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent arg0) {
setTabFlags(wMainPath, wlInputStep, wInputStep, wbInputStep, wlOutputStep, wOutputStep, wbOutputStep, wlDescription, wDescription);
}
});
wInputList.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent selectionEvent) {
updateFields(definitions.get(wInputList.getSelectionIndex()), input, wMainPath, wlInputStep, wInputStep, wbInputStep, wlOutputStep, wOutputStep, wbOutputStep, wlDescription, wDescription, wFieldMappings, wRenameOutput);
}
});
wAddButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent mouseEvent) {
MappingIODefinition definition = new MappingIODefinition();
definition.setMainDataPath(true);
definitions.add(definition);
wInputList.add(tabTitle + (definitions.size() > 1 ? String.valueOf(definitions.size()) : ""));
wInputList.select(definitions.size() - 1);
updateFields(definitions.get(wInputList.getSelectionIndex()), input, wMainPath, wlInputStep, wInputStep, wbInputStep, wlOutputStep, wOutputStep, wbOutputStep, wlDescription, wDescription, wFieldMappings, wRenameOutput);
wlNoItems.setVisible(false);
wFieldsComposite.setVisible(true);
wRemoveButton.setEnabled(true);
}
});
wRemoveButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent mouseEvent) {
MessageBox box = new MessageBox(shell, SWT.YES | SWT.NO);
box.setText(BaseMessages.getString(PKG, "MappingDialog.CloseDefinitionTabAreYouSure.Title"));
box.setMessage(BaseMessages.getString(PKG, "MappingDialog.CloseDefinitionTabAreYouSure.Message"));
int answer = box.open();
if (answer != SWT.YES) {
return;
}
int index = wInputList.getSelectionIndex();
definitions.remove(index);
wInputList.removeAll();
for (int i = 0; i < definitions.size(); i++) {
String label = !Utils.isEmpty(definitions.get(i).getInputStepname()) ? definitions.get(i).getInputStepname() : tabTitle + (i > 0 ? String.valueOf(i + 1) : "");
wInputList.add(label);
}
if (index > 0) {
wInputList.select(index - 1);
} else if (definitions.size() > 0) {
wInputList.select(index);
} else {
index = -1;
}
if (index != -1) {
updateFields(definitions.get(wInputList.getSelectionIndex()), input, wMainPath, wlInputStep, wInputStep, wbInputStep, wlOutputStep, wOutputStep, wbOutputStep, wlDescription, wDescription, wFieldMappings, wRenameOutput);
}
if (definitions.size() == 0) {
wlNoItems.setVisible(true);
wFieldsComposite.setVisible(false);
wRemoveButton.setEnabled(false);
}
}
});
if (definitions.size() > 0) {
wInputList.select(0);
updateFields(definitions.get(0), input, wMainPath, wlInputStep, wInputStep, wbInputStep, wlOutputStep, wOutputStep, wbOutputStep, wlDescription, wDescription, wFieldMappings, wRenameOutput);
} else {
wlNoItems.setVisible(true);
wFieldsComposite.setVisible(false);
wRemoveButton.setEnabled(false);
}
setTabFlags(wMainPath, wlInputStep, wInputStep, wbInputStep, wlOutputStep, wOutputStep, wbOutputStep, wlDescription, wDescription);
wTabFolder.setSelection(wTab);
}
use of org.pentaho.di.ui.core.widget.ColumnsResizer in project pentaho-kettle by pentaho.
the class JobExecutorDialog method addExecutionResultTab.
private void addExecutionResultTab() {
final CTabItem wTab = new CTabItem(wTabFolder, SWT.NONE);
wTab.setText(BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionResults.Title"));
wTab.setToolTipText(BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionResults.Tooltip"));
ScrolledComposite scrolledComposite = new ScrolledComposite(wTabFolder, SWT.V_SCROLL | SWT.H_SCROLL);
scrolledComposite.setLayout(new FillLayout());
Composite wInputComposite = new Composite(scrolledComposite, SWT.NONE);
props.setLook(wInputComposite);
FormLayout tabLayout = new FormLayout();
tabLayout.marginWidth = 15;
tabLayout.marginHeight = 15;
wInputComposite.setLayout(tabLayout);
wlExecutionResultTarget = new Label(wInputComposite, SWT.RIGHT);
props.setLook(wlExecutionResultTarget);
wlExecutionResultTarget.setText(BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionResultTarget.Label"));
FormData fdlExecutionResultTarget = new FormData();
fdlExecutionResultTarget.top = new FormAttachment(0, 0);
// First one in the left
fdlExecutionResultTarget.left = new FormAttachment(0, 0);
wlExecutionResultTarget.setLayoutData(fdlExecutionResultTarget);
wExecutionResultTarget = new CCombo(wInputComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
props.setLook(wExecutionResultTarget);
wExecutionResultTarget.addModifyListener(lsMod);
FormData fdExecutionResultTarget = new FormData();
fdExecutionResultTarget.width = 250;
fdExecutionResultTarget.top = new FormAttachment(wlExecutionResultTarget, 5);
// To the right
fdExecutionResultTarget.left = new FormAttachment(0, 0);
wExecutionResultTarget.setLayoutData(fdExecutionResultTarget);
ColumnInfo[] executionResultColumns = new ColumnInfo[] { new ColumnInfo(BaseMessages.getString(PKG, "JobExecutorMeta.ExecutionResults.FieldDescription.Label"), ColumnInfo.COLUMN_TYPE_TEXT, false, true), new ColumnInfo(BaseMessages.getString(PKG, "JobExecutorMeta.ExecutionResults.FieldName.Label"), ColumnInfo.COLUMN_TYPE_TEXT, false, false) };
executionResultColumns[1].setUsingVariables(true);
TableView wExectionResults = new TableView(transMeta, wInputComposite, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER, executionResultColumns, 14, false, lsMod, props, false);
props.setLook(wExectionResults);
FormData fdExecutionResults = new FormData();
fdExecutionResults.left = new FormAttachment(0);
fdExecutionResults.right = new FormAttachment(100);
fdExecutionResults.top = new FormAttachment(wExecutionResultTarget, 10);
fdExecutionResults.bottom = new FormAttachment(100);
wExectionResults.setLayoutData(fdExecutionResults);
wExectionResults.getTable().addListener(SWT.Resize, new ColumnsResizer(0, 50, 50));
int index = 0;
tiExecutionTimeField = wExectionResults.table.getItem(index++);
tiExecutionResultField = wExectionResults.table.getItem(index++);
tiExecutionNrErrorsField = wExectionResults.table.getItem(index++);
tiExecutionLinesReadField = wExectionResults.table.getItem(index++);
tiExecutionLinesWrittenField = wExectionResults.table.getItem(index++);
tiExecutionLinesInputField = wExectionResults.table.getItem(index++);
tiExecutionLinesOutputField = wExectionResults.table.getItem(index++);
tiExecutionLinesRejectedField = wExectionResults.table.getItem(index++);
tiExecutionLinesUpdatedField = wExectionResults.table.getItem(index++);
tiExecutionLinesDeletedField = wExectionResults.table.getItem(index++);
tiExecutionFilesRetrievedField = wExectionResults.table.getItem(index++);
tiExecutionExitStatusField = wExectionResults.table.getItem(index++);
tiExecutionLogTextField = wExectionResults.table.getItem(index++);
tiExecutionLogChannelIdField = wExectionResults.table.getItem(index++);
tiExecutionTimeField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionTimeField.Label"));
tiExecutionResultField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionResultField.Label"));
tiExecutionNrErrorsField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionNrErrorsField.Label"));
tiExecutionLinesReadField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLinesReadField.Label"));
tiExecutionLinesWrittenField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLinesWrittenField.Label"));
tiExecutionLinesInputField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLinesInputField.Label"));
tiExecutionLinesOutputField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLinesOutputField.Label"));
tiExecutionLinesRejectedField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLinesRejectedField.Label"));
tiExecutionLinesUpdatedField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLinesUpdatedField.Label"));
tiExecutionLinesDeletedField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLinesDeletedField.Label"));
tiExecutionFilesRetrievedField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionFilesRetrievedField.Label"));
tiExecutionExitStatusField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionExitStatusField.Label"));
tiExecutionLogTextField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLogTextField.Label"));
tiExecutionLogChannelIdField.setText(FIELD_DESCRIPTION, BaseMessages.getString(PKG, "JobExecutorDialog.ExecutionLogChannelIdField.Label"));
wJobExecutorParameters.setRowNums();
wJobExecutorParameters.optWidth(true);
wInputComposite.pack();
Rectangle bounds = wInputComposite.getBounds();
scrolledComposite.setContent(wInputComposite);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
scrolledComposite.setMinWidth(bounds.width);
scrolledComposite.setMinHeight(bounds.height);
wTab.setControl(scrolledComposite);
wTabFolder.setSelection(wTab);
}
use of org.pentaho.di.ui.core.widget.ColumnsResizer in project pentaho-kettle by pentaho.
the class JobExecutorDialog method addResultRowsTab.
private void addResultRowsTab() {
final CTabItem wTab = new CTabItem(wTabFolder, SWT.NONE);
wTab.setText(BaseMessages.getString(PKG, "JobExecutorDialog.ResultRows.Title"));
wTab.setToolTipText(BaseMessages.getString(PKG, "JobExecutorDialog.ResultRows.Tooltip"));
ScrolledComposite scrolledComposite = new ScrolledComposite(wTabFolder, SWT.V_SCROLL | SWT.H_SCROLL);
scrolledComposite.setLayout(new FillLayout());
Composite wInputComposite = new Composite(scrolledComposite, SWT.NONE);
props.setLook(wInputComposite);
FormLayout tabLayout = new FormLayout();
tabLayout.marginWidth = 15;
tabLayout.marginHeight = 15;
wInputComposite.setLayout(tabLayout);
wlResultRowsTarget = new Label(wInputComposite, SWT.RIGHT);
props.setLook(wlResultRowsTarget);
wlResultRowsTarget.setText(BaseMessages.getString(PKG, "JobExecutorDialog.ResultRowsTarget.Label"));
FormData fdlResultRowsTarget = new FormData();
fdlResultRowsTarget.top = new FormAttachment(0, 0);
// First one in the left
fdlResultRowsTarget.left = new FormAttachment(0, 0);
wlResultRowsTarget.setLayoutData(fdlResultRowsTarget);
wResultRowsTarget = new CCombo(wInputComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
props.setLook(wResultRowsTarget);
wResultRowsTarget.addModifyListener(lsMod);
FormData fdResultRowsTarget = new FormData();
fdResultRowsTarget.width = 250;
fdResultRowsTarget.top = new FormAttachment(wlResultRowsTarget, 5);
// To the right
fdResultRowsTarget.left = new FormAttachment(0, 0);
wResultRowsTarget.setLayoutData(fdResultRowsTarget);
wlResultFields = new Label(wInputComposite, SWT.NONE);
wlResultFields.setText(BaseMessages.getString(PKG, "JobExecutorDialog.ResultFields.Label"));
props.setLook(wlResultFields);
FormData fdlResultFields = new FormData();
fdlResultFields.left = new FormAttachment(0, 0);
fdlResultFields.top = new FormAttachment(wResultRowsTarget, 10);
wlResultFields.setLayoutData(fdlResultFields);
int nrRows = (jobExecutorMeta.getResultRowsField() != null ? jobExecutorMeta.getResultRowsField().length : 1);
ColumnInfo[] ciResultFields = new ColumnInfo[] { new ColumnInfo(BaseMessages.getString(PKG, "JobExecutorDialog.ColumnInfo.Field"), ColumnInfo.COLUMN_TYPE_TEXT, false, false), new ColumnInfo(BaseMessages.getString(PKG, "JobExecutorDialog.ColumnInfo.Type"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMetaFactory.getValueMetaNames()), new ColumnInfo(BaseMessages.getString(PKG, "JobExecutorDialog.ColumnInfo.Length"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo(BaseMessages.getString(PKG, "JobExecutorDialog.ColumnInfo.Precision"), ColumnInfo.COLUMN_TYPE_TEXT, false) };
wResultRowsFields = new TableView(transMeta, wInputComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciResultFields, nrRows, false, lsMod, props, false);
FormData fdResultFields = new FormData();
fdResultFields.left = new FormAttachment(0, 0);
fdResultFields.top = new FormAttachment(wlResultFields, 5);
fdResultFields.right = new FormAttachment(100, 0);
fdResultFields.bottom = new FormAttachment(100, 0);
wResultRowsFields.setLayoutData(fdResultFields);
wResultRowsFields.getTable().addListener(SWT.Resize, new ColumnsResizer(0, 25, 25, 25, 25));
wInputComposite.pack();
Rectangle bounds = wInputComposite.getBounds();
scrolledComposite.setContent(wInputComposite);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
scrolledComposite.setMinWidth(bounds.width);
scrolledComposite.setMinHeight(bounds.height);
wTab.setControl(scrolledComposite);
wTabFolder.setSelection(wTab);
}
Aggregations