}
private void addFieldSummaryTab() {
CTabItem fieldSummaryItem = new CTabItem(wLeftFolder, SWT.NONE);
fieldSummaryItem.setText(BaseMessages.getString(PKG, "RubyStepDialog.FieldSummary.Label"));
Composite wPanel = new Composite(wLeftFolder, SWT.NONE);
wPanel.setLayout(new FormLayout());
props.setLook(wPanel);
wTree = new Tree(wPanel, SWT.H_SCROLL | SWT.V_SCROLL);
wTree.setHeaderVisible(true);
TreeColumn column1 = new TreeColumn(wTree, SWT.LEFT);
column1.setText(BaseMessages.getString(PKG, "RubyStepDialog.TreeColumn.Field"));
column1.setWidth(180);
TreeColumn column2 = new TreeColumn(wTree, SWT.LEFT);
column2.setText(BaseMessages.getString(PKG, "RubyStepDialog.TreeColumn.Type"));
column2.setWidth(90);
TreeColumn column3 = new TreeColumn(wTree, SWT.LEFT);
column3.setText(BaseMessages.getString(PKG, "RubyStepDialog.TreeColumn.AvailableAs"));
column3.setWidth(160);
props.setLook(wTree);
inputFolderTreeItem = new TreeItem(wTree, SWT.NONE);
inputFolderTreeItem.setText(new String[] { "input", "", "" });
inputFolderTreeItem.setImage(folderImage);
outputFolderTreeItem = new TreeItem(wTree, SWT.NONE);
outputFolderTreeItem.setText(new String[] { "output", "", "" });
outputFolderTreeItem.setImage(folderImage);
infoTreeItems = new HashMap<String, TreeItem>();
// insert markers for info streams
for (RoleStepMeta s : input.getInfoSteps()) {
TreeItem item = new TreeItem(inputFolderTreeItem, SWT.NONE);
item.setText(new String[] { s.getRoleName(), "row stream", "$info_steps[\"" + s.getRoleName() + "\"]" });
item.setImage(infoStepImage);
infoTreeItems.put(s.getStepName(), item);
}
// insert markers for input stream
inputTreeItem = new TreeItem(inputFolderTreeItem, SWT.NONE);
inputTreeItem.setText(new String[] { "input", "row stream", "$input" });
inputTreeItem.setImage(inputImage);
// insert markers for target steps
targetTreeItems = new HashMap<String, TreeItem>();
// insert markers for target streams
for (RoleStepMeta s : input.getTargetSteps()) {
TreeItem item = new TreeItem(outputFolderTreeItem, SWT.NONE);
item.setText(new String[] { s.getRoleName(), "row stream", "$target_steps[\"" + s.getRoleName() + "\"]" });
item.setImage(targetStepImage);
targetTreeItems.put(s.getStepName(), item);
}
// insert marker for output stream
outputTreeItem = new TreeItem(outputFolderTreeItem, SWT.NONE);
outputTreeItem.setText(new String[] { "output", "row stream", "$output" });
outputTreeItem.setImage(outputImage);
// insert marker for error stream
if (input.getParentStepMeta().isDoingErrorHandling()) {
errorTreeItem = new TreeItem(outputFolderTreeItem, SWT.NONE);
errorTreeItem.setText(new String[] { "error", "row stream", "$error" });
errorTreeItem.setImage(errorOutputImage);
}
inputFolderTreeItem.setExpanded(true);
outputFolderTreeItem.setExpanded(true);
final Runnable runnable = new Runnable()
{
public void run()
{
try {
// collect main input fields
RowMetaInterface inputFields = transMeta.getPrevStepFields(input.getParentStepMeta());
// collect fields from input steps
HashMap<String, RowMetaInterface> infoStepFields = new HashMap<String, RowMetaInterface>();
for (String step : input.getStepIOMeta().getInfoStepnames()) {
infoStepFields.put(step, transMeta.getStepFields(step));
}
// collect output fields
RowMetaInterface outputFields = transMeta.getStepFields(stepname);
RowMetaInterface errorFields = null;
if (input.getParentStepMeta().isDoingErrorHandling()) {
errorFields = input.getParentStepMeta().getStepErrorMeta().getErrorFields();
}
setTreeFields(inputFields, infoStepFields, outputFields, errorFields);
}
catch (KettleException e)
{
logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message"));
}
}
};
new Thread(runnable).start();
wTree.addListener(SWT.MouseDoubleClick, new Listener() {
@Override
public void handleEvent(Event e) {
if (e.button != 1)
return;
Point point = new Point(e.x, e.y);
TreeItem item = wTree.getItem(point);
if (item != null) {
StyledTextComp wScript = (StyledTextComp) wScriptsFolder.getSelection().getControl();
wScript.getStyledText().insert(item.getText(2));
}
}
});
FormData fdTree = new FormData();
fdTree.left = new FormAttachment(0, 0);
fdTree.top = new FormAttachment(0, 0);
fdTree.right = new FormAttachment(100, 0);
fdTree.bottom = new FormAttachment(100, 0);
wTree.setLayoutData(fdTree);
FormData fdPanel = new FormData();
fdPanel.left = new FormAttachment(0, 0);
fdPanel.top = new FormAttachment(0, 0);
fdPanel.right = new FormAttachment(100, 0);
fdPanel.bottom = new FormAttachment(100, 0);
wPanel.setLayoutData(fdPanel);
fieldSummaryItem.setControl(wPanel);
}