Search in sources :

Example 21 with ComboVar

use of org.pentaho.di.ui.core.widget.ComboVar in project pentaho-kettle by pentaho.

the class JobEntryTransDialog method createElements.

protected void createElements() {
    super.createElements();
    shell.setText(BaseMessages.getString(PKG, "JobTrans.Header"));
    wlPath.setText(BaseMessages.getString(PKG, "JobTrans.JobStep.Transformation.Label"));
    wPassParams.setText(BaseMessages.getString(PKG, "JobTrans.PassAllParameters.Label"));
    wClearRows = new Button(gExecution, SWT.CHECK);
    props.setLook(wClearRows);
    wClearRows.setText(BaseMessages.getString(PKG, "JobTrans.ClearResultList.Label"));
    FormData fdbClearRows = new FormData();
    fdbClearRows.left = new FormAttachment(0, 0);
    fdbClearRows.top = new FormAttachment(wEveryRow, 10);
    wClearRows.setLayoutData(fdbClearRows);
    wClearFiles = new Button(gExecution, SWT.CHECK);
    props.setLook(wClearFiles);
    wClearFiles.setText(BaseMessages.getString(PKG, "JobTrans.ClearResultFiles.Label"));
    FormData fdbClearFiles = new FormData();
    fdbClearFiles.left = new FormAttachment(0, 0);
    fdbClearFiles.top = new FormAttachment(wClearRows, 10);
    wClearFiles.setLayoutData(fdbClearFiles);
    wWaitingToFinish = new Button(gExecution, SWT.CHECK);
    props.setLook(wWaitingToFinish);
    wWaitingToFinish.setText(BaseMessages.getString(PKG, "JobTrans.WaitToFinish.Label"));
    FormData fdWait = new FormData();
    fdWait.top = new FormAttachment(wClearFiles, 10);
    fdWait.left = new FormAttachment(0, 0);
    wWaitingToFinish.setLayoutData(fdWait);
    wFollowingAbortRemotely = new Button(gExecution, SWT.CHECK);
    props.setLook(wFollowingAbortRemotely);
    wFollowingAbortRemotely.setText(BaseMessages.getString(PKG, "JobTrans.AbortRemote.Label"));
    FormData fdFollow = new FormData();
    fdFollow.top = new FormAttachment(wWaitingToFinish, 10);
    fdFollow.left = new FormAttachment(0, 0);
    wFollowingAbortRemotely.setLayoutData(fdFollow);
    Composite cRunConfiguration = new Composite(wOptions, SWT.NONE);
    cRunConfiguration.setLayout(new FormLayout());
    props.setLook(cRunConfiguration);
    FormData fdLocal = new FormData();
    fdLocal.top = new FormAttachment(0);
    fdLocal.right = new FormAttachment(100);
    fdLocal.left = new FormAttachment(0);
    // the default looks ugly
    cRunConfiguration.setBackground(shell.getBackground());
    cRunConfiguration.setLayoutData(fdLocal);
    Label wlRunConfiguration = new Label(cRunConfiguration, SWT.LEFT);
    props.setLook(wlRunConfiguration);
    wlRunConfiguration.setText("Run configuration:");
    FormData fdlRunConfiguration = new FormData();
    fdlRunConfiguration.top = new FormAttachment(0);
    fdlRunConfiguration.left = new FormAttachment(0);
    wlRunConfiguration.setLayoutData(fdlRunConfiguration);
    wRunConfiguration = new ComboVar(jobMeta, cRunConfiguration, SWT.BORDER);
    props.setLook(wRunConfiguration);
    FormData fdRunConfiguration = new FormData();
    fdRunConfiguration.width = 200;
    fdRunConfiguration.top = new FormAttachment(wlRunConfiguration, 5);
    fdRunConfiguration.left = new FormAttachment(0);
    wRunConfiguration.setLayoutData(fdRunConfiguration);
    fdgExecution.top = new FormAttachment(cRunConfiguration, 10);
    wbGetParams.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent arg0) {
            // force reload from file specification
            getParameters(null);
        }
    });
    wbBrowse.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            if (rep != null) {
                selectTransformation();
            } else {
                pickFileVFS();
            }
        }
    });
    wbLogFilename.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            selectLogFile(FILE_FILTERLOGNAMES);
        }
    });
}
Also used : FormData(org.eclipse.swt.layout.FormData) FormLayout(org.eclipse.swt.layout.FormLayout) ComboVar(org.pentaho.di.ui.core.widget.ComboVar) Composite(org.eclipse.swt.widgets.Composite) Button(org.eclipse.swt.widgets.Button) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Label(org.eclipse.swt.widgets.Label) SelectionEvent(org.eclipse.swt.events.SelectionEvent) FormAttachment(org.eclipse.swt.layout.FormAttachment)

Example 22 with ComboVar

use of org.pentaho.di.ui.core.widget.ComboVar in project pentaho-kettle by pentaho.

the class JobEntryWriteToFileDialog method open.

public JobEntryInterface open() {
    Shell parent = getParent();
    Display display = parent.getDisplay();
    shell = new Shell(parent, props.getJobsDialogStyle());
    props.setLook(shell);
    JobDialog.setShellImage(shell, jobEntry);
    ModifyListener lsMod = new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            jobEntry.setChanged();
        }
    };
    changed = jobEntry.hasChanged();
    FormLayout formLayout = new FormLayout();
    formLayout.marginWidth = Const.FORM_MARGIN;
    formLayout.marginHeight = Const.FORM_MARGIN;
    shell.setLayout(formLayout);
    shell.setText(BaseMessages.getString(PKG, "JobWriteToFile.Title"));
    int middle = props.getMiddlePct();
    int margin = Const.MARGIN;
    // Filename line
    wlName = new Label(shell, SWT.RIGHT);
    wlName.setText(BaseMessages.getString(PKG, "JobWriteToFile.Name.Label"));
    props.setLook(wlName);
    fdlName = new FormData();
    fdlName.left = new FormAttachment(0, 0);
    fdlName.right = new FormAttachment(middle, -margin);
    fdlName.top = new FormAttachment(0, margin);
    wlName.setLayoutData(fdlName);
    wName = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wName);
    wName.addModifyListener(lsMod);
    fdName = new FormData();
    fdName.left = new FormAttachment(middle, 0);
    fdName.top = new FormAttachment(0, margin);
    fdName.right = new FormAttachment(100, 0);
    wName.setLayoutData(fdName);
    wOK = new Button(shell, SWT.PUSH);
    wOK.setText(BaseMessages.getString(PKG, "System.Button.OK"));
    wCancel = new Button(shell, SWT.PUSH);
    wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel"));
    BaseStepDialog.positionBottomButtons(shell, new Button[] { wOK, wCancel }, margin, null);
    // ////////////////////////
    // START OF File GROUP
    // ////////////////////////
    wFileGroup = new Group(shell, SWT.SHADOW_NONE);
    props.setLook(wFileGroup);
    wFileGroup.setText(BaseMessages.getString(PKG, "JobWriteToFile.Group.File.Label"));
    FormLayout FileGroupLayout = new FormLayout();
    FileGroupLayout.marginWidth = 10;
    FileGroupLayout.marginHeight = 10;
    wFileGroup.setLayout(FileGroupLayout);
    // Filename line
    wlFilename = new Label(wFileGroup, SWT.RIGHT);
    wlFilename.setText(BaseMessages.getString(PKG, "JobWriteToFile.Filename.Label"));
    props.setLook(wlFilename);
    fdlFilename = new FormData();
    fdlFilename.left = new FormAttachment(0, 0);
    fdlFilename.top = new FormAttachment(wName, margin);
    fdlFilename.right = new FormAttachment(middle, -margin);
    wlFilename.setLayoutData(fdlFilename);
    wbFilename = new Button(wFileGroup, SWT.PUSH | SWT.CENTER);
    props.setLook(wbFilename);
    wbFilename.setText(BaseMessages.getString(PKG, "System.Button.Browse"));
    fdbFilename = new FormData();
    fdbFilename.right = new FormAttachment(100, 0);
    fdbFilename.top = new FormAttachment(wName, 0);
    wbFilename.setLayoutData(fdbFilename);
    wFilename = new TextVar(jobMeta, wFileGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wFilename);
    wFilename.addModifyListener(lsMod);
    fdFilename = new FormData();
    fdFilename.left = new FormAttachment(middle, 0);
    fdFilename.top = new FormAttachment(wName, margin);
    fdFilename.right = new FormAttachment(wbFilename, -margin);
    wFilename.setLayoutData(fdFilename);
    // Whenever something changes, set the tooltip to the expanded version:
    wFilename.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            wFilename.setToolTipText(jobMeta.environmentSubstitute(wFilename.getText()));
        }
    });
    wbFilename.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            FileDialog dialog = new FileDialog(shell, SWT.SAVE);
            dialog.setFilterExtensions(new String[] { "*" });
            if (wFilename.getText() != null) {
                dialog.setFileName(jobMeta.environmentSubstitute(wFilename.getText()));
            }
            dialog.setFilterNames(FILETYPES);
            if (dialog.open() != null) {
                wFilename.setText(dialog.getFilterPath() + Const.FILE_SEPARATOR + dialog.getFileName());
            }
        }
    });
    wlCreateParentFolder = new Label(wFileGroup, SWT.RIGHT);
    wlCreateParentFolder.setText(BaseMessages.getString(PKG, "JobWriteToFile.CreateParentFolder.Label"));
    props.setLook(wlCreateParentFolder);
    fdlCreateParentFolder = new FormData();
    fdlCreateParentFolder.left = new FormAttachment(0, 0);
    fdlCreateParentFolder.top = new FormAttachment(wFilename, margin);
    fdlCreateParentFolder.right = new FormAttachment(middle, -margin);
    wlCreateParentFolder.setLayoutData(fdlCreateParentFolder);
    wCreateParentFolder = new Button(wFileGroup, SWT.CHECK);
    props.setLook(wCreateParentFolder);
    wCreateParentFolder.setToolTipText(BaseMessages.getString(PKG, "JobWriteToFile.CreateParentFolder.Tooltip"));
    fdCreateParentFolder = new FormData();
    fdCreateParentFolder.left = new FormAttachment(middle, 0);
    fdCreateParentFolder.top = new FormAttachment(wFilename, margin);
    fdCreateParentFolder.right = new FormAttachment(100, 0);
    wCreateParentFolder.setLayoutData(fdCreateParentFolder);
    wCreateParentFolder.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            jobEntry.setChanged();
        }
    });
    wlAppendFile = new Label(wFileGroup, SWT.RIGHT);
    wlAppendFile.setText(BaseMessages.getString(PKG, "JobWriteToFile.AppendFile.Label"));
    props.setLook(wlAppendFile);
    fdlAppendFile = new FormData();
    fdlAppendFile.left = new FormAttachment(0, 0);
    fdlAppendFile.top = new FormAttachment(wCreateParentFolder, margin);
    fdlAppendFile.right = new FormAttachment(middle, -margin);
    wlAppendFile.setLayoutData(fdlAppendFile);
    wAppendFile = new Button(wFileGroup, SWT.CHECK);
    props.setLook(wAppendFile);
    wAppendFile.setToolTipText(BaseMessages.getString(PKG, "JobWriteToFile.AppendFile.Tooltip"));
    fdAppendFile = new FormData();
    fdAppendFile.left = new FormAttachment(middle, 0);
    fdAppendFile.top = new FormAttachment(wCreateParentFolder, margin);
    fdAppendFile.right = new FormAttachment(100, 0);
    wAppendFile.setLayoutData(fdAppendFile);
    wAppendFile.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            jobEntry.setChanged();
        }
    });
    fdFileGroup = new FormData();
    fdFileGroup.left = new FormAttachment(0, margin);
    fdFileGroup.top = new FormAttachment(wName, margin);
    fdFileGroup.right = new FormAttachment(100, -margin);
    wFileGroup.setLayoutData(fdFileGroup);
    // ///////////////////////////////////////////////////////////
    // / END OF File GROUP
    // ///////////////////////////////////////////////////////////
    // /////////////////////////
    // START OF Content GROUP
    // ////////////////////////
    wContentGroup = new Group(shell, SWT.SHADOW_NONE);
    props.setLook(wContentGroup);
    wContentGroup.setText(BaseMessages.getString(PKG, "JobWriteToFile.Group.Content.Label"));
    FormLayout ContentGroupLayout = new FormLayout();
    ContentGroupLayout.marginWidth = 10;
    ContentGroupLayout.marginHeight = 10;
    wContentGroup.setLayout(ContentGroupLayout);
    // Encoding
    wlEncoding = new Label(wContentGroup, SWT.RIGHT);
    wlEncoding.setText(BaseMessages.getString(PKG, "JobWriteToFile.Encoding.Label"));
    props.setLook(wlEncoding);
    fdlEncoding = new FormData();
    fdlEncoding.left = new FormAttachment(0, -margin);
    fdlEncoding.top = new FormAttachment(wAppendFile, margin);
    fdlEncoding.right = new FormAttachment(middle, -margin);
    wlEncoding.setLayoutData(fdlEncoding);
    wEncoding = new ComboVar(jobMeta, wContentGroup, SWT.BORDER | SWT.READ_ONLY);
    wEncoding.setEditable(true);
    props.setLook(wEncoding);
    wEncoding.addModifyListener(lsMod);
    fdEncoding = new FormData();
    fdEncoding.left = new FormAttachment(middle, 0);
    fdEncoding.top = new FormAttachment(wAppendFile, margin);
    fdEncoding.right = new FormAttachment(100, 0);
    wEncoding.setLayoutData(fdEncoding);
    wEncoding.addFocusListener(new FocusListener() {

        public void focusLost(org.eclipse.swt.events.FocusEvent e) {
        }

        public void focusGained(org.eclipse.swt.events.FocusEvent e) {
            setEncodings();
        }
    });
    wlContent = new Label(wContentGroup, SWT.RIGHT);
    wlContent.setText(BaseMessages.getString(PKG, "JobWriteToFile.Content.Label"));
    props.setLook(wlContent);
    fdlContent = new FormData();
    fdlContent.left = new FormAttachment(0, 0);
    fdlContent.top = new FormAttachment(wEncoding, margin);
    fdlContent.right = new FormAttachment(middle, -margin);
    wlContent.setLayoutData(fdlContent);
    wContent = new Text(wContentGroup, SWT.MULTI | SWT.LEFT | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    props.setLook(wContent, PropsUI.WIDGET_STYLE_FIXED);
    wContent.addModifyListener(lsMod);
    fdContent = new FormData();
    fdContent.left = new FormAttachment(middle, 0);
    fdContent.top = new FormAttachment(wEncoding, margin);
    fdContent.right = new FormAttachment(100, 0);
    fdContent.bottom = new FormAttachment(100, -margin);
    wContent.setLayoutData(fdContent);
    fdContentGroup = new FormData();
    fdContentGroup.left = new FormAttachment(0, margin);
    fdContentGroup.top = new FormAttachment(wFileGroup, margin);
    fdContentGroup.right = new FormAttachment(100, -margin);
    fdContentGroup.bottom = new FormAttachment(wOK, -margin);
    wContentGroup.setLayoutData(fdContentGroup);
    // ///////////////////////////////////////////////////////////
    // / END OF Content GROUP
    // ///////////////////////////////////////////////////////////
    // Add listeners
    lsCancel = new Listener() {

        public void handleEvent(Event e) {
            cancel();
        }
    };
    lsOK = new Listener() {

        public void handleEvent(Event e) {
            ok();
        }
    };
    wCancel.addListener(SWT.Selection, lsCancel);
    wOK.addListener(SWT.Selection, lsOK);
    lsDef = new SelectionAdapter() {

        public void widgetDefaultSelected(SelectionEvent e) {
            ok();
        }
    };
    wName.addSelectionListener(lsDef);
    wFilename.addSelectionListener(lsDef);
    // Detect X or ALT-F4 or something that kills this window...
    shell.addShellListener(new ShellAdapter() {

        public void shellClosed(ShellEvent e) {
            cancel();
        }
    });
    getData();
    BaseStepDialog.setSize(shell);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    return jobEntry;
}
Also used : Group(org.eclipse.swt.widgets.Group) ComboVar(org.pentaho.di.ui.core.widget.ComboVar) FocusListener(org.eclipse.swt.events.FocusListener) Listener(org.eclipse.swt.widgets.Listener) ModifyListener(org.eclipse.swt.events.ModifyListener) ModifyListener(org.eclipse.swt.events.ModifyListener) Label(org.eclipse.swt.widgets.Label) ShellEvent(org.eclipse.swt.events.ShellEvent) Shell(org.eclipse.swt.widgets.Shell) ModifyEvent(org.eclipse.swt.events.ModifyEvent) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) FormAttachment(org.eclipse.swt.layout.FormAttachment) FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) ShellAdapter(org.eclipse.swt.events.ShellAdapter) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Text(org.eclipse.swt.widgets.Text) TextVar(org.pentaho.di.ui.core.widget.TextVar) Event(org.eclipse.swt.widgets.Event) ModifyEvent(org.eclipse.swt.events.ModifyEvent) ShellEvent(org.eclipse.swt.events.ShellEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) FileDialog(org.eclipse.swt.widgets.FileDialog) FocusListener(org.eclipse.swt.events.FocusListener) Display(org.eclipse.swt.widgets.Display)

Example 23 with ComboVar

use of org.pentaho.di.ui.core.widget.ComboVar in project pentaho-kettle by pentaho.

the class JsonOutputDialog method open.

public String open() {
    Shell parent = getParent();
    Display display = parent.getDisplay();
    shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN);
    props.setLook(shell);
    setShellImage(shell, input);
    ModifyListener lsMod = new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            input.setChanged();
        }
    };
    changed = input.hasChanged();
    FormLayout formLayout = new FormLayout();
    formLayout.marginWidth = Const.FORM_MARGIN;
    formLayout.marginHeight = Const.FORM_MARGIN;
    shell.setLayout(formLayout);
    shell.setText(BaseMessages.getString(PKG, "JsonOutputDialog.DialogTitle"));
    int middle = props.getMiddlePct();
    int margin = Const.MARGIN;
    // Stepname line
    wlStepname = new Label(shell, SWT.RIGHT);
    wlStepname.setText(BaseMessages.getString(PKG, "System.Label.StepName"));
    props.setLook(wlStepname);
    fdlStepname = new FormData();
    fdlStepname.left = new FormAttachment(0, 0);
    fdlStepname.top = new FormAttachment(0, margin);
    fdlStepname.right = new FormAttachment(middle, -margin);
    wlStepname.setLayoutData(fdlStepname);
    wStepname = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    wStepname.setText(stepname);
    props.setLook(wStepname);
    wStepname.addModifyListener(lsMod);
    fdStepname = new FormData();
    fdStepname.left = new FormAttachment(middle, 0);
    fdStepname.top = new FormAttachment(0, margin);
    fdStepname.right = new FormAttachment(100, 0);
    wStepname.setLayoutData(fdStepname);
    wTabFolder = new CTabFolder(shell, SWT.BORDER);
    props.setLook(wTabFolder, Props.WIDGET_STYLE_TAB);
    // ////////////////////////
    // START OF General TAB///
    // /
    wGeneralTab = new CTabItem(wTabFolder, SWT.NONE);
    wGeneralTab.setText(BaseMessages.getString(PKG, "JsonOutputDialog.GeneralTab.TabTitle"));
    FormLayout GeneralLayout = new FormLayout();
    GeneralLayout.marginWidth = 3;
    GeneralLayout.marginHeight = 3;
    Composite wGeneralComp = new Composite(wTabFolder, SWT.NONE);
    props.setLook(wGeneralComp);
    wGeneralComp.setLayout(GeneralLayout);
    // Operation
    wlOperation = new Label(wGeneralComp, SWT.RIGHT);
    wlOperation.setText(BaseMessages.getString(PKG, "JsonOutputDialog.Operation.Label"));
    props.setLook(wlOperation);
    fdlOperation = new FormData();
    fdlOperation.left = new FormAttachment(0, 0);
    fdlOperation.right = new FormAttachment(middle, -margin);
    fdlOperation.top = new FormAttachment(wNrRowsInBloc, margin);
    wlOperation.setLayoutData(fdlOperation);
    wOperation = new CCombo(wGeneralComp, SWT.BORDER | SWT.READ_ONLY);
    props.setLook(wOperation);
    wOperation.addModifyListener(lsMod);
    fdOperation = new FormData();
    fdOperation.left = new FormAttachment(middle, 0);
    fdOperation.top = new FormAttachment(wNrRowsInBloc, margin);
    fdOperation.right = new FormAttachment(100, -margin);
    wOperation.setLayoutData(fdOperation);
    wOperation.setItems(JsonOutputMeta.operationTypeDesc);
    wOperation.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            updateOperation();
        }
    });
    // Connection grouping?
    // ////////////////////////
    // START OF Settings GROUP
    // 
    wSettings = new Group(wGeneralComp, SWT.SHADOW_NONE);
    props.setLook(wSettings);
    wSettings.setText(BaseMessages.getString(PKG, "JsonOutputDialog.Group.Settings.Label"));
    FormLayout groupFileLayout = new FormLayout();
    groupFileLayout.marginWidth = 10;
    groupFileLayout.marginHeight = 10;
    wSettings.setLayout(groupFileLayout);
    wlBlocName = new Label(wSettings, SWT.RIGHT);
    wlBlocName.setText(BaseMessages.getString(PKG, "JsonOutputDialog.BlocName.Label"));
    props.setLook(wlBlocName);
    fdlBlocName = new FormData();
    fdlBlocName.left = new FormAttachment(0, 0);
    fdlBlocName.top = new FormAttachment(wOperation, margin);
    fdlBlocName.right = new FormAttachment(middle, -margin);
    wlBlocName.setLayoutData(fdlBlocName);
    wBlocName = new TextVar(transMeta, wSettings, SWT.BORDER | SWT.READ_ONLY);
    wBlocName.setEditable(true);
    props.setLook(wBlocName);
    wBlocName.addModifyListener(lsMod);
    fdBlocName = new FormData();
    fdBlocName.left = new FormAttachment(middle, 0);
    fdBlocName.top = new FormAttachment(wOperation, margin);
    fdBlocName.right = new FormAttachment(100, 0);
    wBlocName.setLayoutData(fdBlocName);
    wlNrRowsInBloc = new Label(wSettings, SWT.RIGHT);
    wlNrRowsInBloc.setText(BaseMessages.getString(PKG, "JsonOutputDialog.NrRowsInBloc.Label"));
    props.setLook(wlNrRowsInBloc);
    fdlNrRowsInBloc = new FormData();
    fdlNrRowsInBloc.left = new FormAttachment(0, 0);
    fdlNrRowsInBloc.top = new FormAttachment(wBlocName, margin);
    fdlNrRowsInBloc.right = new FormAttachment(middle, -margin);
    wlNrRowsInBloc.setLayoutData(fdlNrRowsInBloc);
    wNrRowsInBloc = new TextVar(transMeta, wSettings, SWT.BORDER | SWT.READ_ONLY);
    wNrRowsInBloc.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.NrRowsInBloc.ToolTip"));
    wNrRowsInBloc.setEditable(true);
    props.setLook(wNrRowsInBloc);
    wNrRowsInBloc.addModifyListener(lsMod);
    fdNrRowsInBloc = new FormData();
    fdNrRowsInBloc.left = new FormAttachment(middle, 0);
    fdNrRowsInBloc.top = new FormAttachment(wBlocName, margin);
    fdNrRowsInBloc.right = new FormAttachment(100, 0);
    wNrRowsInBloc.setLayoutData(fdNrRowsInBloc);
    wlOutputValue = new Label(wSettings, SWT.RIGHT);
    wlOutputValue.setText(BaseMessages.getString(PKG, "JsonOutputDialog.OutputValue.Label"));
    props.setLook(wlOutputValue);
    fdlOutputValue = new FormData();
    fdlOutputValue.left = new FormAttachment(0, 0);
    fdlOutputValue.top = new FormAttachment(wNrRowsInBloc, margin);
    fdlOutputValue.right = new FormAttachment(middle, -margin);
    wlOutputValue.setLayoutData(fdlOutputValue);
    wOutputValue = new TextVar(transMeta, wSettings, SWT.BORDER | SWT.READ_ONLY);
    wOutputValue.setEditable(true);
    props.setLook(wOutputValue);
    wOutputValue.addModifyListener(lsMod);
    fdOutputValue = new FormData();
    fdOutputValue.left = new FormAttachment(middle, 0);
    fdOutputValue.top = new FormAttachment(wNrRowsInBloc, margin);
    fdOutputValue.right = new FormAttachment(100, 0);
    wOutputValue.setLayoutData(fdOutputValue);
    // ////////////////////////// start of compatibility mode
    wlCompatibilityMode = new Label(wSettings, SWT.RIGHT);
    wlCompatibilityMode.setText(BaseMessages.getString(PKG, "JsonOutputDialog.CompatibilityMode.Label"));
    props.setLook(wlCompatibilityMode);
    fdlCompatibilityMode = new FormData();
    fdlCompatibilityMode.left = new FormAttachment(0, 0);
    fdlCompatibilityMode.top = new FormAttachment(wOutputValue, margin);
    fdlCompatibilityMode.right = new FormAttachment(middle, -margin);
    wlCompatibilityMode.setLayoutData(fdlCompatibilityMode);
    wCompatibilityMode = new Button(wSettings, SWT.CHECK);
    wCompatibilityMode.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.CompatibilityMode.Tooltip"));
    props.setLook(wCompatibilityMode);
    fdCompatibilityMode = new FormData();
    fdCompatibilityMode.left = new FormAttachment(middle, 0);
    fdCompatibilityMode.top = new FormAttachment(wOutputValue, margin);
    fdCompatibilityMode.right = new FormAttachment(100, 0);
    wCompatibilityMode.setLayoutData(fdCompatibilityMode);
    wCompatibilityMode.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            input.setChanged();
        }
    });
    fdSettings = new FormData();
    fdSettings.left = new FormAttachment(0, margin);
    fdSettings.top = new FormAttachment(wOperation, 2 * margin);
    fdSettings.right = new FormAttachment(100, -margin);
    wSettings.setLayoutData(fdSettings);
    // ///////////////////////////////////////////////////////////
    // / END OF Settings GROUP
    // ///////////////////////////////////////////////////////////
    // Connection grouping?
    // ////////////////////////
    // START OF FileName GROUP
    // 
    wFileName = new Group(wGeneralComp, SWT.SHADOW_NONE);
    props.setLook(wFileName);
    wFileName.setText(BaseMessages.getString(PKG, "JsonOutputDialog.Group.File.Label"));
    FormLayout groupfilenameayout = new FormLayout();
    groupfilenameayout.marginWidth = 10;
    groupfilenameayout.marginHeight = 10;
    wFileName.setLayout(groupfilenameayout);
    // Filename line
    wlFilename = new Label(wFileName, SWT.RIGHT);
    wlFilename.setText(BaseMessages.getString(PKG, "JsonOutputDialog.Filename.Label"));
    props.setLook(wlFilename);
    fdlFilename = new FormData();
    fdlFilename.left = new FormAttachment(0, 0);
    fdlFilename.top = new FormAttachment(wSettings, margin);
    fdlFilename.right = new FormAttachment(middle, -margin);
    wlFilename.setLayoutData(fdlFilename);
    wbFilename = new Button(wFileName, SWT.PUSH | SWT.CENTER);
    props.setLook(wbFilename);
    wbFilename.setText(BaseMessages.getString(PKG, "System.Button.Browse"));
    fdbFilename = new FormData();
    fdbFilename.right = new FormAttachment(100, 0);
    fdbFilename.top = new FormAttachment(wSettings, 0);
    wbFilename.setLayoutData(fdbFilename);
    wbFilename.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            FileDialog dialog = new FileDialog(shell, SWT.SAVE);
            dialog.setFilterExtensions(new String[] { "*.js", "*.JS", "*" });
            if (wFilename.getText() != null) {
                dialog.setFileName(transMeta.environmentSubstitute(wFilename.getText()));
            }
            dialog.setFilterNames(new String[] { BaseMessages.getString(PKG, "System.FileType.TextFiles"), BaseMessages.getString(PKG, "System.FileType.CSVFiles"), BaseMessages.getString(PKG, "System.FileType.AllFiles") });
            if (dialog.open() != null) {
                String extension = wExtension.getText();
                if (extension != null && dialog.getFileName() != null && dialog.getFileName().endsWith("." + extension)) {
                    // The extension is filled in and matches the end
                    // of the selected file => Strip off the extension.
                    String fileName = dialog.getFileName();
                    wFilename.setText(dialog.getFilterPath() + System.getProperty("file.separator") + fileName.substring(0, fileName.length() - (extension.length() + 1)));
                } else {
                    wFilename.setText(dialog.getFilterPath() + System.getProperty("file.separator") + dialog.getFileName());
                }
            }
        }
    });
    wFilename = new TextVar(transMeta, wFileName, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wFilename);
    wFilename.addModifyListener(lsMod);
    fdFilename = new FormData();
    fdFilename.left = new FormAttachment(middle, 0);
    fdFilename.top = new FormAttachment(wOutputValue, margin);
    fdFilename.right = new FormAttachment(wbFilename, -margin);
    wFilename.setLayoutData(fdFilename);
    // Append to end of file?
    wlAppend = new Label(wFileName, SWT.RIGHT);
    wlAppend.setText(BaseMessages.getString(PKG, "JsonOutputDialog.Append.Label"));
    props.setLook(wlAppend);
    fdlAppend = new FormData();
    fdlAppend.left = new FormAttachment(0, 0);
    fdlAppend.top = new FormAttachment(wFilename, margin);
    fdlAppend.right = new FormAttachment(middle, -margin);
    wlAppend.setLayoutData(fdlAppend);
    wAppend = new Button(wFileName, SWT.CHECK);
    wAppend.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.Append.Tooltip"));
    props.setLook(wAppend);
    fdAppend = new FormData();
    fdAppend.left = new FormAttachment(middle, 0);
    fdAppend.top = new FormAttachment(wFilename, margin);
    fdAppend.right = new FormAttachment(100, 0);
    wAppend.setLayoutData(fdAppend);
    wAppend.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            input.setChanged();
        }
    });
    // Create Parent Folder
    wlCreateParentFolder = new Label(wFileName, SWT.RIGHT);
    wlCreateParentFolder.setText(BaseMessages.getString(PKG, "JsonOutputDialog.CreateParentFolder.Label"));
    props.setLook(wlCreateParentFolder);
    fdlCreateParentFolder = new FormData();
    fdlCreateParentFolder.left = new FormAttachment(0, 0);
    fdlCreateParentFolder.top = new FormAttachment(wAppend, margin);
    fdlCreateParentFolder.right = new FormAttachment(middle, -margin);
    wlCreateParentFolder.setLayoutData(fdlCreateParentFolder);
    wCreateParentFolder = new Button(wFileName, SWT.CHECK);
    wCreateParentFolder.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.CreateParentFolder.Tooltip"));
    props.setLook(wCreateParentFolder);
    fdCreateParentFolder = new FormData();
    fdCreateParentFolder.left = new FormAttachment(middle, 0);
    fdCreateParentFolder.top = new FormAttachment(wAppend, margin);
    fdCreateParentFolder.right = new FormAttachment(100, 0);
    wCreateParentFolder.setLayoutData(fdCreateParentFolder);
    wCreateParentFolder.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            input.setChanged();
        }
    });
    // Open new File at Init
    wlDoNotOpenNewFileInit = new Label(wFileName, SWT.RIGHT);
    wlDoNotOpenNewFileInit.setText(BaseMessages.getString(PKG, "JsonOutputDialog.DoNotOpenNewFileInit.Label"));
    props.setLook(wlDoNotOpenNewFileInit);
    fdlDoNotOpenNewFileInit = new FormData();
    fdlDoNotOpenNewFileInit.left = new FormAttachment(0, 0);
    fdlDoNotOpenNewFileInit.top = new FormAttachment(wCreateParentFolder, margin);
    fdlDoNotOpenNewFileInit.right = new FormAttachment(middle, -margin);
    wlDoNotOpenNewFileInit.setLayoutData(fdlDoNotOpenNewFileInit);
    wDoNotOpenNewFileInit = new Button(wFileName, SWT.CHECK);
    wDoNotOpenNewFileInit.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.DoNotOpenNewFileInit.Tooltip"));
    props.setLook(wDoNotOpenNewFileInit);
    fdDoNotOpenNewFileInit = new FormData();
    fdDoNotOpenNewFileInit.left = new FormAttachment(middle, 0);
    fdDoNotOpenNewFileInit.top = new FormAttachment(wCreateParentFolder, margin);
    fdDoNotOpenNewFileInit.right = new FormAttachment(100, 0);
    wDoNotOpenNewFileInit.setLayoutData(fdDoNotOpenNewFileInit);
    wDoNotOpenNewFileInit.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            input.setChanged();
        }
    });
    // Extension line
    wlExtension = new Label(wFileName, SWT.RIGHT);
    wlExtension.setText(BaseMessages.getString(PKG, "System.Label.Extension"));
    props.setLook(wlExtension);
    fdlExtension = new FormData();
    fdlExtension.left = new FormAttachment(0, 0);
    fdlExtension.top = new FormAttachment(wDoNotOpenNewFileInit, margin);
    fdlExtension.right = new FormAttachment(middle, -margin);
    wlExtension.setLayoutData(fdlExtension);
    wExtension = new TextVar(transMeta, wFileName, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wExtension);
    wExtension.addModifyListener(lsMod);
    fdExtension = new FormData();
    fdExtension.left = new FormAttachment(middle, 0);
    fdExtension.top = new FormAttachment(wDoNotOpenNewFileInit, margin);
    fdExtension.right = new FormAttachment(100, -margin);
    wExtension.setLayoutData(fdExtension);
    wlEncoding = new Label(wFileName, SWT.RIGHT);
    wlEncoding.setText(BaseMessages.getString(PKG, "JsonOutputDialog.Encoding.Label"));
    props.setLook(wlEncoding);
    fdlEncoding = new FormData();
    fdlEncoding.left = new FormAttachment(0, 0);
    fdlEncoding.top = new FormAttachment(wExtension, margin);
    fdlEncoding.right = new FormAttachment(middle, -margin);
    wlEncoding.setLayoutData(fdlEncoding);
    wEncoding = new ComboVar(transMeta, wFileName, SWT.BORDER | SWT.READ_ONLY);
    wEncoding.setEditable(true);
    props.setLook(wEncoding);
    wEncoding.addModifyListener(lsMod);
    fdEncoding = new FormData();
    fdEncoding.left = new FormAttachment(middle, 0);
    fdEncoding.top = new FormAttachment(wExtension, margin);
    fdEncoding.right = new FormAttachment(100, 0);
    wEncoding.setLayoutData(fdEncoding);
    wEncoding.addFocusListener(new FocusListener() {

        public void focusLost(org.eclipse.swt.events.FocusEvent e) {
        }

        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 to servlet (browser, ws)
    // 
    wlServletOutput = new Label(wFileName, SWT.RIGHT);
    wlServletOutput.setText(BaseMessages.getString(PKG, "JsonOutputDialog.ServletOutput.Label"));
    props.setLook(wlServletOutput);
    fdlServletOutput = new FormData();
    fdlServletOutput.left = new FormAttachment(0, 0);
    fdlServletOutput.top = new FormAttachment(wEncoding, margin);
    fdlServletOutput.right = new FormAttachment(middle, -margin);
    wlServletOutput.setLayoutData(fdlServletOutput);
    wServletOutput = new Button(wFileName, SWT.CHECK);
    wServletOutput.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.ServletOutput.Tooltip"));
    props.setLook(wServletOutput);
    fdServletOutput = new FormData();
    fdServletOutput.left = new FormAttachment(middle, 0);
    fdServletOutput.top = new FormAttachment(wEncoding, margin);
    fdServletOutput.right = new FormAttachment(100, 0);
    wServletOutput.setLayoutData(fdServletOutput);
    wServletOutput.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            input.setChanged();
            setFlagsServletOption();
        }
    });
    // Create multi-part file?
    wlAddDate = new Label(wFileName, SWT.RIGHT);
    wlAddDate.setText(BaseMessages.getString(PKG, "JsonOutputDialog.AddDate.Label"));
    props.setLook(wlAddDate);
    fdlAddDate = new FormData();
    fdlAddDate.left = new FormAttachment(0, 0);
    fdlAddDate.top = new FormAttachment(wServletOutput, margin);
    fdlAddDate.right = new FormAttachment(middle, -margin);
    wlAddDate.setLayoutData(fdlAddDate);
    wAddDate = new Button(wFileName, SWT.CHECK);
    props.setLook(wAddDate);
    fdAddDate = new FormData();
    fdAddDate.left = new FormAttachment(middle, 0);
    fdAddDate.top = new FormAttachment(wServletOutput, margin);
    fdAddDate.right = new FormAttachment(100, 0);
    wAddDate.setLayoutData(fdAddDate);
    wAddDate.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            input.setChanged();
        }
    });
    // Create multi-part file?
    wlAddTime = new Label(wFileName, SWT.RIGHT);
    wlAddTime.setText(BaseMessages.getString(PKG, "JsonOutputDialog.AddTime.Label"));
    props.setLook(wlAddTime);
    fdlAddTime = new FormData();
    fdlAddTime.left = new FormAttachment(0, 0);
    fdlAddTime.top = new FormAttachment(wAddDate, margin);
    fdlAddTime.right = new FormAttachment(middle, -margin);
    wlAddTime.setLayoutData(fdlAddTime);
    wAddTime = new Button(wFileName, SWT.CHECK);
    props.setLook(wAddTime);
    fdAddTime = new FormData();
    fdAddTime.left = new FormAttachment(middle, 0);
    fdAddTime.top = new FormAttachment(wAddDate, margin);
    fdAddTime.right = new FormAttachment(100, 0);
    wAddTime.setLayoutData(fdAddTime);
    wAddTime.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            input.setChanged();
        }
    });
    wbShowFiles = new Button(wFileName, SWT.PUSH | SWT.CENTER);
    props.setLook(wbShowFiles);
    wbShowFiles.setText(BaseMessages.getString(PKG, "JsonOutputDialog.ShowFiles.Button"));
    fdbShowFiles = new FormData();
    fdbShowFiles.left = new FormAttachment(middle, 0);
    fdbShowFiles.top = new FormAttachment(wAddTime, margin * 2);
    wbShowFiles.setLayoutData(fdbShowFiles);
    wbShowFiles.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            JsonOutputMeta tfoi = new JsonOutputMeta();
            getInfo(tfoi);
            String[] files = tfoi.getFiles(transMeta.environmentSubstitute(wFilename.getText()));
            if (files != null && files.length > 0) {
                EnterSelectionDialog esd = new EnterSelectionDialog(shell, files, BaseMessages.getString(PKG, "JsonOutputDialog.SelectOutputFiles.DialogTitle"), BaseMessages.getString(PKG, "JsonOutputDialog.SelectOutputFiles.DialogMessage"));
                esd.setViewOnly();
                esd.open();
            } else {
                MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR);
                mb.setMessage(BaseMessages.getString(PKG, "JsonOutputDialog.NoFilesFound.DialogMessage"));
                mb.setText(BaseMessages.getString(PKG, "System.DialogTitle.Error"));
                mb.open();
            }
        }
    });
    // Add File to the result files name
    wlAddToResult = new Label(wFileName, SWT.RIGHT);
    wlAddToResult.setText(BaseMessages.getString(PKG, "JsonOutputDialog.AddFileToResult.Label"));
    props.setLook(wlAddToResult);
    fdlAddToResult = new FormData();
    fdlAddToResult.left = new FormAttachment(0, 0);
    fdlAddToResult.top = new FormAttachment(wbShowFiles, margin);
    fdlAddToResult.right = new FormAttachment(middle, -margin);
    wlAddToResult.setLayoutData(fdlAddToResult);
    wAddToResult = new Button(wFileName, SWT.CHECK);
    wAddToResult.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.AddFileToResult.Tooltip"));
    props.setLook(wAddToResult);
    fdAddToResult = new FormData();
    fdAddToResult.left = new FormAttachment(middle, 0);
    fdAddToResult.top = new FormAttachment(wbShowFiles, margin);
    fdAddToResult.right = new FormAttachment(100, 0);
    wAddToResult.setLayoutData(fdAddToResult);
    SelectionAdapter lsSelR = new SelectionAdapter() {

        public void widgetSelected(SelectionEvent arg0) {
            input.setChanged();
        }
    };
    wAddToResult.addSelectionListener(lsSelR);
    fdFileName = new FormData();
    fdFileName.left = new FormAttachment(0, margin);
    fdFileName.top = new FormAttachment(wSettings, 2 * margin);
    fdFileName.right = new FormAttachment(100, -margin);
    wFileName.setLayoutData(fdFileName);
    // ///////////////////////////////////////////////////////////
    // / END OF FileName GROUP
    // ///////////////////////////////////////////////////////////
    fdGeneralComp = new FormData();
    fdGeneralComp.left = new FormAttachment(0, 0);
    fdGeneralComp.top = new FormAttachment(wStepname, margin);
    fdGeneralComp.right = new FormAttachment(100, 0);
    fdGeneralComp.bottom = new FormAttachment(100, 0);
    wGeneralComp.setLayoutData(fdGeneralComp);
    wGeneralComp.layout();
    wGeneralTab.setControl(wGeneralComp);
    // ///////////////////////////////////////////////////////////
    // / END OF General TAB
    // ///////////////////////////////////////////////////////////
    // Fields tab...
    // 
    wFieldsTab = new CTabItem(wTabFolder, SWT.NONE);
    wFieldsTab.setText(BaseMessages.getString(PKG, "JsonOutputDialog.FieldsTab.TabTitle"));
    FormLayout fieldsLayout = new FormLayout();
    fieldsLayout.marginWidth = Const.FORM_MARGIN;
    fieldsLayout.marginHeight = Const.FORM_MARGIN;
    Composite wFieldsComp = new Composite(wTabFolder, SWT.NONE);
    wFieldsComp.setLayout(fieldsLayout);
    props.setLook(wFieldsComp);
    wGet = new Button(wFieldsComp, SWT.PUSH);
    wGet.setText(BaseMessages.getString(PKG, "JsonOutputDialog.Get.Button"));
    wGet.setToolTipText(BaseMessages.getString(PKG, "JsonOutputDialog.Get.Tooltip"));
    setButtonPositions(new Button[] { wGet }, margin, null);
    final int FieldsRows = input.getOutputFields().length;
    colinf = new ColumnInfo[] { new ColumnInfo(BaseMessages.getString(PKG, "JsonOutputDialog.Fieldname.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] { "" }, false), new ColumnInfo(BaseMessages.getString(PKG, "JsonOutputDialog.ElementName.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false) };
    colinf[1].setUsingVariables(true);
    wFields = new TableView(transMeta, wFieldsComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props);
    fdFields = new FormData();
    fdFields.left = new FormAttachment(0, 0);
    fdFields.top = new FormAttachment(0, 0);
    fdFields.right = new FormAttachment(100, 0);
    fdFields.bottom = new FormAttachment(wGet, -margin);
    wFields.setLayoutData(fdFields);
    // 
    // Search the fields in the background
    final Runnable runnable = new Runnable() {

        public void run() {
            StepMeta stepMeta = transMeta.findStep(stepname);
            if (stepMeta != null) {
                try {
                    RowMetaInterface row = transMeta.getPrevStepFields(stepMeta);
                    // Remember these fields...
                    for (int i = 0; i < row.size(); i++) {
                        inputFields.put(row.getValueMeta(i).getName(), Integer.valueOf(i));
                    }
                    setComboBoxes();
                } catch (KettleException e) {
                    logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message"));
                }
            }
        }
    };
    new Thread(runnable).start();
    fdFieldsComp = new FormData();
    fdFieldsComp.left = new FormAttachment(0, 0);
    fdFieldsComp.top = new FormAttachment(0, 0);
    fdFieldsComp.right = new FormAttachment(100, 0);
    fdFieldsComp.bottom = new FormAttachment(100, 0);
    wFieldsComp.setLayoutData(fdFieldsComp);
    wFieldsComp.layout();
    wFieldsTab.setControl(wFieldsComp);
    fdTabFolder = new FormData();
    fdTabFolder.left = new FormAttachment(0, 0);
    fdTabFolder.top = new FormAttachment(wStepname, margin);
    fdTabFolder.right = new FormAttachment(100, 0);
    fdTabFolder.bottom = new FormAttachment(100, -50);
    wTabFolder.setLayoutData(fdTabFolder);
    wOK = new Button(shell, SWT.PUSH);
    wOK.setText(BaseMessages.getString(PKG, "System.Button.OK"));
    wCancel = new Button(shell, SWT.PUSH);
    wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel"));
    setButtonPositions(new Button[] { wOK, wCancel }, margin, wTabFolder);
    // Add listeners
    lsOK = new Listener() {

        public void handleEvent(Event e) {
            ok();
        }
    };
    lsGet = new Listener() {

        public void handleEvent(Event e) {
            get();
        }
    };
    lsCancel = new Listener() {

        public void handleEvent(Event e) {
            cancel();
        }
    };
    wOK.addListener(SWT.Selection, lsOK);
    wGet.addListener(SWT.Selection, lsGet);
    wCancel.addListener(SWT.Selection, lsCancel);
    lsDef = new SelectionAdapter() {

        public void widgetDefaultSelected(SelectionEvent e) {
            ok();
        }
    };
    wStepname.addSelectionListener(lsDef);
    // Detect X or ALT-F4 or something that kills this window...
    shell.addShellListener(new ShellAdapter() {

        public void shellClosed(ShellEvent e) {
            cancel();
        }
    });
    lsResize = new Listener() {

        public void handleEvent(Event 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);
    // Set the shell size, based upon previous time...
    setSize();
    getData();
    updateOperation();
    input.setChanged(changed);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    return stepname;
}
Also used : Group(org.eclipse.swt.widgets.Group) KettleException(org.pentaho.di.core.exception.KettleException) ComboVar(org.pentaho.di.ui.core.widget.ComboVar) CTabFolder(org.eclipse.swt.custom.CTabFolder) TableItemInsertListener(org.pentaho.di.ui.trans.step.TableItemInsertListener) FocusListener(org.eclipse.swt.events.FocusListener) Listener(org.eclipse.swt.widgets.Listener) ModifyListener(org.eclipse.swt.events.ModifyListener) ModifyListener(org.eclipse.swt.events.ModifyListener) Label(org.eclipse.swt.widgets.Label) ColumnInfo(org.pentaho.di.ui.core.widget.ColumnInfo) ShellEvent(org.eclipse.swt.events.ShellEvent) RowMetaInterface(org.pentaho.di.core.row.RowMetaInterface) Cursor(org.eclipse.swt.graphics.Cursor) CTabItem(org.eclipse.swt.custom.CTabItem) Shell(org.eclipse.swt.widgets.Shell) ModifyEvent(org.eclipse.swt.events.ModifyEvent) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) FormAttachment(org.eclipse.swt.layout.FormAttachment) EnterSelectionDialog(org.pentaho.di.ui.core.dialog.EnterSelectionDialog) TableView(org.pentaho.di.ui.core.widget.TableView) FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) ShellAdapter(org.eclipse.swt.events.ShellAdapter) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Text(org.eclipse.swt.widgets.Text) JsonOutputMeta(org.pentaho.di.trans.steps.jsonoutput.JsonOutputMeta) Point(org.eclipse.swt.graphics.Point) StepMeta(org.pentaho.di.trans.step.StepMeta) BaseStepMeta(org.pentaho.di.trans.step.BaseStepMeta) Point(org.eclipse.swt.graphics.Point) TextVar(org.pentaho.di.ui.core.widget.TextVar) MessageBox(org.eclipse.swt.widgets.MessageBox) CCombo(org.eclipse.swt.custom.CCombo) ModifyEvent(org.eclipse.swt.events.ModifyEvent) Event(org.eclipse.swt.widgets.Event) ShellEvent(org.eclipse.swt.events.ShellEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) FileDialog(org.eclipse.swt.widgets.FileDialog) FocusListener(org.eclipse.swt.events.FocusListener) Display(org.eclipse.swt.widgets.Display)

Example 24 with ComboVar

use of org.pentaho.di.ui.core.widget.ComboVar in project pentaho-kettle by pentaho.

the class TransDialog method addDBSchemaTableLogOptions.

private Control addDBSchemaTableLogOptions(LogTableInterface logTable) {
    // Log table connection...
    // 
    Label wlLogconnection = new Label(wLogOptionsComposite, SWT.RIGHT);
    wlLogconnection.setText(BaseMessages.getString(PKG, "TransDialog.LogConnection.Label"));
    props.setLook(wlLogconnection);
    FormData fdlLogconnection = new FormData();
    fdlLogconnection.left = new FormAttachment(0, 0);
    fdlLogconnection.right = new FormAttachment(middle, -margin);
    fdlLogconnection.top = new FormAttachment(0, 0);
    wlLogconnection.setLayoutData(fdlLogconnection);
    wbLogconnection = new Button(wLogOptionsComposite, SWT.PUSH);
    wbLogconnection.setText(BaseMessages.getString(PKG, "TransDialog.LogconnectionButton.Label"));
    wbLogconnection.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            DatabaseMeta databaseMeta = new DatabaseMeta();
            databaseMeta.shareVariablesWith(transMeta);
            getDatabaseDialog().setDatabaseMeta(databaseMeta);
            if (getDatabaseDialog().open() != null) {
                transMeta.addDatabase(getDatabaseDialog().getDatabaseMeta());
                wLogconnection.add(getDatabaseDialog().getDatabaseMeta().getName());
                wLogconnection.select(wLogconnection.getItemCount() - 1);
            }
        }
    });
    FormData fdbLogconnection = new FormData();
    fdbLogconnection.right = new FormAttachment(100, 0);
    fdbLogconnection.top = new FormAttachment(0, 0);
    wbLogconnection.setLayoutData(fdbLogconnection);
    wLogconnection = new ComboVar(transMeta, wLogOptionsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wLogconnection);
    wLogconnection.addModifyListener(lsMod);
    FormData fdLogconnection = new FormData();
    fdLogconnection.left = new FormAttachment(middle, 0);
    fdLogconnection.top = new FormAttachment(0, 0);
    fdLogconnection.right = new FormAttachment(wbLogconnection, -margin);
    wLogconnection.setLayoutData(fdLogconnection);
    wLogconnection.setItems(transMeta.getDatabaseNames());
    wLogconnection.setText(Const.NVL(logTable.getConnectionName(), ""));
    wLogconnection.setToolTipText(BaseMessages.getString(PKG, "TransDialog.LogConnection.Tooltip", logTable.getConnectionNameVariable()));
    // Log schema ...
    // 
    Label wlLogSchema = new Label(wLogOptionsComposite, SWT.RIGHT);
    wlLogSchema.setText(BaseMessages.getString(PKG, "TransDialog.LogSchema.Label"));
    props.setLook(wlLogSchema);
    FormData fdlLogSchema = new FormData();
    fdlLogSchema.left = new FormAttachment(0, 0);
    fdlLogSchema.right = new FormAttachment(middle, -margin);
    fdlLogSchema.top = new FormAttachment(wLogconnection, margin);
    wlLogSchema.setLayoutData(fdlLogSchema);
    wLogSchema = new TextVar(transMeta, wLogOptionsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wLogSchema);
    wLogSchema.addModifyListener(lsMod);
    FormData fdLogSchema = new FormData();
    fdLogSchema.left = new FormAttachment(middle, 0);
    fdLogSchema.top = new FormAttachment(wLogconnection, margin);
    fdLogSchema.right = new FormAttachment(100, 0);
    wLogSchema.setLayoutData(fdLogSchema);
    wLogSchema.setText(Const.NVL(logTable.getSchemaName(), ""));
    wLogSchema.setToolTipText(BaseMessages.getString(PKG, "TransDialog.LogSchema.Tooltip", logTable.getSchemaNameVariable()));
    // Log table...
    // 
    Label wlLogtable = new Label(wLogOptionsComposite, SWT.RIGHT);
    wlLogtable.setText(BaseMessages.getString(PKG, "TransDialog.Logtable.Label"));
    props.setLook(wlLogtable);
    FormData fdlLogtable = new FormData();
    fdlLogtable.left = new FormAttachment(0, 0);
    fdlLogtable.right = new FormAttachment(middle, -margin);
    fdlLogtable.top = new FormAttachment(wLogSchema, margin);
    wlLogtable.setLayoutData(fdlLogtable);
    wLogTable = new TextVar(transMeta, wLogOptionsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wLogTable);
    wLogTable.addModifyListener(lsMod);
    FormData fdLogtable = new FormData();
    fdLogtable.left = new FormAttachment(middle, 0);
    fdLogtable.top = new FormAttachment(wLogSchema, margin);
    fdLogtable.right = new FormAttachment(100, 0);
    wLogTable.setLayoutData(fdLogtable);
    wLogTable.setText(Const.NVL(logTable.getTableName(), ""));
    wLogTable.setToolTipText(BaseMessages.getString(PKG, "TransDialog.LogTable.Tooltip", logTable.getTableNameVariable()));
    return wLogTable;
}
Also used : FormData(org.eclipse.swt.layout.FormData) ComboVar(org.pentaho.di.ui.core.widget.ComboVar) Button(org.eclipse.swt.widgets.Button) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Label(org.eclipse.swt.widgets.Label) SelectionEvent(org.eclipse.swt.events.SelectionEvent) DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta) FormAttachment(org.eclipse.swt.layout.FormAttachment) TextVar(org.pentaho.di.ui.core.widget.TextVar)

Example 25 with ComboVar

use of org.pentaho.di.ui.core.widget.ComboVar in project pentaho-kettle by pentaho.

the class JobDialog method addDBSchemaTableLogOptions.

private Control addDBSchemaTableLogOptions(LogTableInterface logTable) {
    // Log table connection...
    // 
    Label wlLogconnection = new Label(wLogOptionsComposite, SWT.RIGHT);
    wlLogconnection.setText(BaseMessages.getString(PKG, "JobDialog.LogConnection.Label"));
    props.setLook(wlLogconnection);
    FormData fdlLogconnection = new FormData();
    fdlLogconnection.left = new FormAttachment(0, 0);
    fdlLogconnection.right = new FormAttachment(middle, -margin);
    fdlLogconnection.top = new FormAttachment(0, 0);
    wlLogconnection.setLayoutData(fdlLogconnection);
    wbLogconnection = new Button(wLogOptionsComposite, SWT.PUSH);
    wbLogconnection.setText(BaseMessages.getString(PKG, "JobDialog.LogconnectionButton.Label"));
    wbLogconnection.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            DatabaseMeta databaseMeta = new DatabaseMeta();
            databaseMeta.shareVariablesWith(jobMeta);
            getDatabaseDialog().setDatabaseMeta(databaseMeta);
            if (getDatabaseDialog().open() != null) {
                jobMeta.addDatabase(getDatabaseDialog().getDatabaseMeta());
                wLogconnection.add(getDatabaseDialog().getDatabaseMeta().getName());
                wLogconnection.select(wLogconnection.getItemCount() - 1);
            }
        }
    });
    FormData fdbLogconnection = new FormData();
    fdbLogconnection.right = new FormAttachment(100, 0);
    fdbLogconnection.top = new FormAttachment(0, 0);
    wbLogconnection.setLayoutData(fdbLogconnection);
    wLogconnection = new ComboVar(jobMeta, wLogOptionsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wLogconnection);
    wLogconnection.addModifyListener(lsMod);
    FormData fdLogconnection = new FormData();
    fdLogconnection.left = new FormAttachment(middle, 0);
    fdLogconnection.top = new FormAttachment(0, 0);
    fdLogconnection.right = new FormAttachment(wbLogconnection, -margin);
    wLogconnection.setLayoutData(fdLogconnection);
    wLogconnection.setItems(jobMeta.getDatabaseNames());
    wLogconnection.setText(Const.NVL(logTable.getConnectionName(), ""));
    wLogconnection.setToolTipText(BaseMessages.getString(PKG, "JobDialog.LogConnection.Tooltip", logTable.getConnectionNameVariable()));
    // Log schema ...
    // 
    Label wlLogSchema = new Label(wLogOptionsComposite, SWT.RIGHT);
    wlLogSchema.setText(BaseMessages.getString(PKG, "JobDialog.LogSchema.Label"));
    props.setLook(wlLogSchema);
    FormData fdlLogSchema = new FormData();
    fdlLogSchema.left = new FormAttachment(0, 0);
    fdlLogSchema.right = new FormAttachment(middle, -margin);
    fdlLogSchema.top = new FormAttachment(wLogconnection, margin);
    wlLogSchema.setLayoutData(fdlLogSchema);
    wLogSchema = new TextVar(jobMeta, wLogOptionsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wLogSchema);
    wLogSchema.addModifyListener(lsMod);
    FormData fdLogSchema = new FormData();
    fdLogSchema.left = new FormAttachment(middle, 0);
    fdLogSchema.top = new FormAttachment(wLogconnection, margin);
    fdLogSchema.right = new FormAttachment(100, 0);
    wLogSchema.setLayoutData(fdLogSchema);
    wLogSchema.setText(Const.NVL(logTable.getSchemaName(), ""));
    wLogSchema.setToolTipText(BaseMessages.getString(PKG, "JobDialog.LogSchema.Tooltip", logTable.getSchemaNameVariable()));
    // Log table...
    // 
    Label wlLogtable = new Label(wLogOptionsComposite, SWT.RIGHT);
    wlLogtable.setText(BaseMessages.getString(PKG, "JobDialog.Logtable.Label"));
    props.setLook(wlLogtable);
    FormData fdlLogtable = new FormData();
    fdlLogtable.left = new FormAttachment(0, 0);
    fdlLogtable.right = new FormAttachment(middle, -margin);
    fdlLogtable.top = new FormAttachment(wLogSchema, margin);
    wlLogtable.setLayoutData(fdlLogtable);
    wLogTable = new TextVar(jobMeta, wLogOptionsComposite, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wLogTable);
    wLogTable.addModifyListener(lsMod);
    FormData fdLogtable = new FormData();
    fdLogtable.left = new FormAttachment(middle, 0);
    fdLogtable.top = new FormAttachment(wLogSchema, margin);
    fdLogtable.right = new FormAttachment(100, 0);
    wLogTable.setLayoutData(fdLogtable);
    wLogTable.setText(Const.NVL(logTable.getTableName(), ""));
    wLogTable.setToolTipText(BaseMessages.getString(PKG, "JobDialog.LogTable.Tooltip", logTable.getTableNameVariable()));
    return wLogTable;
}
Also used : FormData(org.eclipse.swt.layout.FormData) ComboVar(org.pentaho.di.ui.core.widget.ComboVar) Button(org.eclipse.swt.widgets.Button) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Label(org.eclipse.swt.widgets.Label) SelectionEvent(org.eclipse.swt.events.SelectionEvent) DatabaseMeta(org.pentaho.di.core.database.DatabaseMeta) FormAttachment(org.eclipse.swt.layout.FormAttachment) TextVar(org.pentaho.di.ui.core.widget.TextVar)

Aggregations

ComboVar (org.pentaho.di.ui.core.widget.ComboVar)40 FormAttachment (org.eclipse.swt.layout.FormAttachment)39 FormData (org.eclipse.swt.layout.FormData)39 Label (org.eclipse.swt.widgets.Label)39 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)36 SelectionEvent (org.eclipse.swt.events.SelectionEvent)36 Button (org.eclipse.swt.widgets.Button)36 FormLayout (org.eclipse.swt.layout.FormLayout)35 ModifyListener (org.eclipse.swt.events.ModifyListener)32 Display (org.eclipse.swt.widgets.Display)31 Listener (org.eclipse.swt.widgets.Listener)31 Shell (org.eclipse.swt.widgets.Shell)31 TextVar (org.pentaho.di.ui.core.widget.TextVar)31 ModifyEvent (org.eclipse.swt.events.ModifyEvent)30 ShellAdapter (org.eclipse.swt.events.ShellAdapter)30 ShellEvent (org.eclipse.swt.events.ShellEvent)30 Text (org.eclipse.swt.widgets.Text)30 Event (org.eclipse.swt.widgets.Event)29 Composite (org.eclipse.swt.widgets.Composite)26 FocusListener (org.eclipse.swt.events.FocusListener)24