private void addFields() { int FieldsCols = 4; ColumnInfo[] colinf = new ColumnInfo[FieldsCols]; // Table with fields wlFields = new Label(shell, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "IfNullDialog.Fields.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.top = new FormAttachment(wValueTypes, margin); wlFields.setLayoutData(fdlFields); colinf[0] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.Fieldname.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {}, false); colinf[1] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.Value.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinf[2] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.Value.ConversionMask"), ColumnInfo.COLUMN_TYPE_CCOMBO, Const.getDateFormats()); colinf[1].setUsingVariables(true); colinf[3] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.Value.SetEmptyString"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] { BaseMessages.getString(PKG, "System.Combo.Yes"), BaseMessages.getString(PKG, "System.Combo.No") }); wFields = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, fieldsRows, oldlsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(100, 0); fdFields.bottom = new FormAttachment(wOK, -2 * margin); wFields.setLayoutData(fdFields); setComboValues(); fieldColumns.add(colinf[0]); }
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, "LucidDBBulkLoaderDialog.Shell.Title")); // $NON-NLS-1$ int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.Stepname.Label")); // $NON-NLS-1$ props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // Connection line wConnection = addConnectionLine(shell, wStepname, middle, margin); if (input.getDatabaseMeta() == null && transMeta.nrDatabases() == 1) wConnection.select(0); wConnection.addModifyListener(lsMod); // Schema line... wlSchema = new Label(shell, SWT.RIGHT); wlSchema.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.TargetSchema.Label")); // $NON-NLS-1$ props.setLook(wlSchema); fdlSchema = new FormData(); fdlSchema.left = new FormAttachment(0, 0); fdlSchema.right = new FormAttachment(middle, -margin); fdlSchema.top = new FormAttachment(wConnection, margin * 2); wlSchema.setLayoutData(fdlSchema); wSchema = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wSchema); wSchema.addModifyListener(lsMod); fdSchema = new FormData(); fdSchema.left = new FormAttachment(middle, 0); fdSchema.top = new FormAttachment(wConnection, margin * 2); fdSchema.right = new FormAttachment(100, 0); wSchema.setLayoutData(fdSchema); // Table line... wlTable = new Label(shell, SWT.RIGHT); wlTable.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.TargetTable.Label")); // $NON-NLS-1$ props.setLook(wlTable); fdlTable = new FormData(); fdlTable.left = new FormAttachment(0, 0); fdlTable.right = new FormAttachment(middle, -margin); fdlTable.top = new FormAttachment(wSchema, margin); wlTable.setLayoutData(fdlTable); wbTable = new Button(shell, SWT.PUSH | SWT.CENTER); props.setLook(wbTable); wbTable.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.Browse.Button")); // $NON-NLS-1$ fdbTable = new FormData(); fdbTable.right = new FormAttachment(100, 0); fdbTable.top = new FormAttachment(wSchema, margin); wbTable.setLayoutData(fdbTable); wTable = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wTable); wTable.addModifyListener(lsMod); fdTable = new FormData(); fdTable.left = new FormAttachment(middle, 0); fdTable.top = new FormAttachment(wSchema, margin); fdTable.right = new FormAttachment(wbTable, -margin); wTable.setLayoutData(fdTable); // MaxErrors file line wlMaxErrors = new Label(shell, SWT.RIGHT); wlMaxErrors.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.MaxErrors.Label")); // $NON-NLS-1$ props.setLook(wlMaxErrors); fdlMaxErrors = new FormData(); fdlMaxErrors.left = new FormAttachment(0, 0); fdlMaxErrors.top = new FormAttachment(wTable, margin); fdlMaxErrors.right = new FormAttachment(middle, -margin); wlMaxErrors.setLayoutData(fdlMaxErrors); wMaxErrors = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wMaxErrors); wMaxErrors.addModifyListener(lsMod); fdMaxErrors = new FormData(); fdMaxErrors.left = new FormAttachment(middle, 0); fdMaxErrors.top = new FormAttachment(wTable, margin); fdMaxErrors.right = new FormAttachment(100, 0); wMaxErrors.setLayoutData(fdMaxErrors); // Fifo directory line... // wlFifoPath = new Label(shell, SWT.RIGHT); wlFifoPath.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.FifoPath.Label")); // $NON-NLS-1$ props.setLook(wlFifoPath); fdlFifoPath = new FormData(); fdlFifoPath.left = new FormAttachment(0, 0); fdlFifoPath.right = new FormAttachment(middle, -margin); fdlFifoPath.top = new FormAttachment(wMaxErrors, margin); wlFifoPath.setLayoutData(fdlFifoPath); wbFifoPath = new Button(shell, SWT.PUSH | SWT.CENTER); props.setLook(wbFifoPath); wbFifoPath.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.Browse.Button")); // $NON-NLS-1$ fdbFifoPath = new FormData(); fdbFifoPath.right = new FormAttachment(100, 0); fdbFifoPath.top = new FormAttachment(wMaxErrors, margin); wbFifoPath.setLayoutData(fdbFifoPath); wFifoPath = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFifoPath); wFifoPath.addModifyListener(lsMod); fdFifoPath = new FormData(); fdFifoPath.left = new FormAttachment(middle, 0); fdFifoPath.top = new FormAttachment(wMaxErrors, margin); fdFifoPath.right = new FormAttachment(wbFifoPath, -margin); wFifoPath.setLayoutData(fdFifoPath); // FifoServer line... wlFifoServer = new Label(shell, SWT.RIGHT); wlFifoServer.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.FifoServer.Label")); // $NON-NLS-1$ props.setLook(wlFifoServer); fdlFifoServer = new FormData(); fdlFifoServer.left = new FormAttachment(0, 0); fdlFifoServer.right = new FormAttachment(middle, -margin); fdlFifoServer.top = new FormAttachment(wFifoPath, margin * 2); wlFifoServer.setLayoutData(fdlFifoServer); wFifoServer = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFifoServer); wFifoServer.addModifyListener(lsMod); fdFifoServer = new FormData(); fdFifoServer.left = new FormAttachment(middle, 0); fdFifoServer.top = new FormAttachment(wFifoPath, margin * 2); fdFifoServer.right = new FormAttachment(100, 0); wFifoServer.setLayoutData(fdFifoServer); // THE BUTTONS wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString("System.Button.OK")); // $NON-NLS-1$ wSQL = new Button(shell, SWT.PUSH); wSQL.setText(BaseMessages.getString("System.Button.SQL")); // $NON-NLS-1$ wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString("System.Button.Cancel")); // $NON-NLS-1$ setButtonPositions(new Button[] {wOK, wSQL, wCancel}, margin, null); // The field Table wlReturn = new Label(shell, SWT.NONE); wlReturn.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.Fields.Label")); // $NON-NLS-1$ props.setLook(wlReturn); fdlReturn = new FormData(); fdlReturn.left = new FormAttachment(0, 0); fdlReturn.top = new FormAttachment(wFifoServer, margin); wlReturn.setLayoutData(fdlReturn); int UpInsCols = 3; int UpInsRows = (input.getFieldTable() != null ? input.getFieldTable().length : 1); ColumnInfo[] ciReturn = new ColumnInfo[UpInsCols]; ciReturn[0] = new ColumnInfo( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.ColumnInfo.TableField"), ColumnInfo.COLUMN_TYPE_TEXT, false); //$NON-NLS-1$ ciReturn[1] = new ColumnInfo( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.ColumnInfo.StreamField"), ColumnInfo.COLUMN_TYPE_TEXT, false); //$NON-NLS-1$ ciReturn[2] = new ColumnInfo( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.ColumnInfo.FormatOK"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] { "Y", "N", }, true); // $NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$ wReturn = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciReturn, UpInsRows, lsMod, props); wGetLU = new Button(shell, SWT.PUSH); wGetLU.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.GetFields.Label")); // $NON-NLS-1$ fdGetLU = new FormData(); fdGetLU.top = new FormAttachment(wlReturn, margin); fdGetLU.right = new FormAttachment(100, 0); wGetLU.setLayoutData(fdGetLU); wDoMapping = new Button(shell, SWT.PUSH); wDoMapping.setText( BaseMessages.getString(PKG, "LucidDBBulkLoaderDialog.EditMapping.Label")); // $NON-NLS-1$ fdDoMapping = new FormData(); fdDoMapping.top = new FormAttachment(wGetLU, margin); fdDoMapping.right = new FormAttachment(100, 0); wDoMapping.setLayoutData(fdDoMapping); wDoMapping.addListener( SWT.Selection, new Listener() { public void handleEvent(Event arg0) { generateMappings(); } }); fdReturn = new FormData(); fdReturn.left = new FormAttachment(0, 0); fdReturn.top = new FormAttachment(wlReturn, margin); fdReturn.right = new FormAttachment(wGetLU, -margin); fdReturn.bottom = new FormAttachment(wOK, -2 * margin); wReturn.setLayoutData(fdReturn); // Add listeners lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; lsGetLU = new Listener() { public void handleEvent(Event e) { getUpdate(); } }; lsSQL = new Listener() { public void handleEvent(Event e) { create(); } }; lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; wOK.addListener(SWT.Selection, lsOK); wGetLU.addListener(SWT.Selection, lsGetLU); wSQL.addListener(SWT.Selection, lsSQL); wCancel.addListener(SWT.Selection, lsCancel); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); wSchema.addSelectionListener(lsDef); wFifoPath.addSelectionListener(lsDef); wFifoServer.addSelectionListener(lsDef); wTable.addSelectionListener(lsDef); wMaxErrors.addSelectionListener(lsDef); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); wbTable.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { getTableName(); } }); // Set the shell size, based upon previous time... setSize(); getData(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return stepname; }
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, "NormaliserDialog.Shell.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "NormaliserDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // Typefield line wlTypefield = new Label(shell, SWT.RIGHT); wlTypefield.setText(BaseMessages.getString(PKG, "NormaliserDialog.TypeField.Label")); props.setLook(wlTypefield); fdlTypefield = new FormData(); fdlTypefield.left = new FormAttachment(0, 0); fdlTypefield.right = new FormAttachment(middle, -margin); fdlTypefield.top = new FormAttachment(wStepname, margin); wlTypefield.setLayoutData(fdlTypefield); wTypefield = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wTypefield.setText(""); props.setLook(wTypefield); wTypefield.addModifyListener(lsMod); fdTypefield = new FormData(); fdTypefield.left = new FormAttachment(middle, 0); fdTypefield.top = new FormAttachment(wStepname, margin); fdTypefield.right = new FormAttachment(100, 0); wTypefield.setLayoutData(fdTypefield); wlFields = new Label(shell, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "NormaliserDialog.Fields.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.top = new FormAttachment(wTypefield, margin); wlFields.setLayoutData(fdlFields); wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "NormaliserDialog.GetFields.Button")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); setButtonPositions(new Button[] {wOK, wCancel, wGet}, margin, null); final int FieldsCols = 3; final int FieldsRows = input.getFieldName().length; colinf = new ColumnInfo[FieldsCols]; colinf[0] = new ColumnInfo( BaseMessages.getString(PKG, "NormaliserDialog.ColumnInfo.Fieldname"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); colinf[1] = new ColumnInfo( BaseMessages.getString(PKG, "NormaliserDialog.ColumnInfo.Type"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinf[2] = new ColumnInfo( BaseMessages.getString(PKG, "NormaliserDialog.ColumnInfo.NewField"), ColumnInfo.COLUMN_TYPE_TEXT, false); wFields = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(100, 0); fdFields.bottom = new FormAttachment(wOK, -2 * 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(); // 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(); } }); // Set the shell size, based upon previous time... setSize(); getData(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return stepname; }
public SAPFunction open() { Shell parent = getParent(); Display display = parent.getDisplay(); shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX); props.setLook(shell); shell.setImage(GUIResource.getInstance().getImageSpoon()); int middle = Const.MIDDLE_PCT; int margin = Const.MARGIN; FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "SapFunctionBrowser.Title")); // Function // wlFunction = new Label(shell, SWT.RIGHT); wlFunction.setText(BaseMessages.getString(PKG, "SapInputDialog.Function.Label")); props.setLook(wlFunction); FormData fdlFunction = new FormData(); fdlFunction.left = new FormAttachment(0, 0); fdlFunction.right = new FormAttachment(middle, -margin); fdlFunction.top = new FormAttachment(0, 0); wlFunction.setLayoutData(fdlFunction); wbFunction = new Button(shell, SWT.PUSH); props.setLook(wbFunction); wbFunction.setText(BaseMessages.getString(PKG, "SapInputDialog.FindFunctionButton.Label")); FormData fdbFunction = new FormData(); fdbFunction.right = new FormAttachment(100, 0); fdbFunction.top = new FormAttachment(0, 0); wbFunction.setLayoutData(fdbFunction); wbFunction.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { searchString = wFunction.getText(); getData(); } }); wFunction = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFunction); FormData fdFunction = new FormData(); fdFunction.left = new FormAttachment(middle, 0); fdFunction.right = new FormAttachment(wbFunction, -margin); fdFunction.top = new FormAttachment(0, margin); wFunction.setLayoutData(fdFunction); Control lastControl = wFunction; // The buttons at the bottom of the dialog // wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wOK.addListener( SWT.Selection, new Listener() { public void handleEvent(Event e) { ok(); } }); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); wCancel.addListener( SWT.Selection, new Listener() { public void handleEvent(Event e) { cancel(); } }); // Position the buttons... // BaseStepDialog.positionBottomButtons( shell, new Button[] { wOK, wCancel, }, Const.MARGIN, null); // The search results... // ColumnInfo[] columns = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "SapFunctionBrowser.ResultView.Name.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false, true), new ColumnInfo( BaseMessages.getString(PKG, "SapFunctionBrowser.ResultView.Groupname.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false, true), new ColumnInfo( BaseMessages.getString(PKG, "SapFunctionBrowser.ResultView.Application.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false, true), new ColumnInfo( BaseMessages.getString(PKG, "SapFunctionBrowser.ResultView.Description.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false, true), }; wResult = new TableView( space, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, columns, 0, null, props); wResult.setSortable(true); FormData fdResults = new FormData(); fdResults.left = new FormAttachment(0, 0); fdResults.top = new FormAttachment(lastControl, margin); fdResults.right = new FormAttachment(100, 0); fdResults.bottom = new FormAttachment(wOK, -3 * margin); wResult.setLayoutData(fdResults); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); getData(); // Set the shell size, based upon previous time... BaseStepDialog.setSize(shell); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return function; }
@Override 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() { @Override public void modifyText(ModifyEvent e) { input.setChanged(); } }; SelectionListener lsSel = new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent arg0) { input.setChanged(); } }; backupChanged = input.hasChanged(); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "MemoryGroupByDialog.Shell.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "MemoryGroupByDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // Always pass a result rows as output // wlAlwaysAddResult = new Label(shell, SWT.RIGHT); wlAlwaysAddResult.setText( BaseMessages.getString(PKG, "MemoryGroupByDialog.AlwaysAddResult.Label")); wlAlwaysAddResult.setToolTipText( BaseMessages.getString(PKG, "MemoryGroupByDialog.AlwaysAddResult.ToolTip")); props.setLook(wlAlwaysAddResult); fdlAlwaysAddResult = new FormData(); fdlAlwaysAddResult.left = new FormAttachment(0, 0); fdlAlwaysAddResult.top = new FormAttachment(wStepname, margin); fdlAlwaysAddResult.right = new FormAttachment(middle, -margin); wlAlwaysAddResult.setLayoutData(fdlAlwaysAddResult); wAlwaysAddResult = new Button(shell, SWT.CHECK); wAlwaysAddResult.setToolTipText( BaseMessages.getString(PKG, "MemoryGroupByDialog.AlwaysAddResult.ToolTip")); props.setLook(wAlwaysAddResult); fdAlwaysAddResult = new FormData(); fdAlwaysAddResult.left = new FormAttachment(middle, 0); fdAlwaysAddResult.top = new FormAttachment(wStepname, margin); fdAlwaysAddResult.right = new FormAttachment(100, 0); wAlwaysAddResult.setLayoutData(fdAlwaysAddResult); wAlwaysAddResult.addSelectionListener(lsSel); wlGroup = new Label(shell, SWT.NONE); wlGroup.setText(BaseMessages.getString(PKG, "MemoryGroupByDialog.Group.Label")); props.setLook(wlGroup); fdlGroup = new FormData(); fdlGroup.left = new FormAttachment(0, 0); fdlGroup.top = new FormAttachment(wAlwaysAddResult, margin); wlGroup.setLayoutData(fdlGroup); int nrKeyCols = 1; int nrKeyRows = (input.getGroupField() != null ? input.getGroupField().length : 1); ciKey = new ColumnInfo[nrKeyCols]; ciKey[0] = new ColumnInfo( BaseMessages.getString(PKG, "MemoryGroupByDialog.ColumnInfo.GroupField"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); wGroup = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciKey, nrKeyRows, lsMod, props); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "MemoryGroupByDialog.GetFields.Button")); fdGet = new FormData(); fdGet.top = new FormAttachment(wlGroup, margin); fdGet.right = new FormAttachment(100, 0); wGet.setLayoutData(fdGet); fdGroup = new FormData(); fdGroup.left = new FormAttachment(0, 0); fdGroup.top = new FormAttachment(wlGroup, margin); fdGroup.right = new FormAttachment(wGet, -margin); fdGroup.bottom = new FormAttachment(45, 0); wGroup.setLayoutData(fdGroup); // THE Aggregate fields wlAgg = new Label(shell, SWT.NONE); wlAgg.setText(BaseMessages.getString(PKG, "MemoryGroupByDialog.Aggregates.Label")); props.setLook(wlAgg); fdlAgg = new FormData(); fdlAgg.left = new FormAttachment(0, 0); fdlAgg.top = new FormAttachment(wGroup, margin); wlAgg.setLayoutData(fdlAgg); int UpInsCols = 4; int UpInsRows = (input.getAggregateField() != null ? input.getAggregateField().length : 1); ciReturn = new ColumnInfo[UpInsCols]; ciReturn[0] = new ColumnInfo( BaseMessages.getString(PKG, "MemoryGroupByDialog.ColumnInfo.Name"), ColumnInfo.COLUMN_TYPE_TEXT, false); ciReturn[1] = new ColumnInfo( BaseMessages.getString(PKG, "MemoryGroupByDialog.ColumnInfo.Subject"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); ciReturn[2] = new ColumnInfo( BaseMessages.getString(PKG, "MemoryGroupByDialog.ColumnInfo.Type"), ColumnInfo.COLUMN_TYPE_CCOMBO, MemoryGroupByMeta.typeGroupLongDesc); ciReturn[3] = new ColumnInfo( BaseMessages.getString(PKG, "MemoryGroupByDialog.ColumnInfo.Value"), ColumnInfo.COLUMN_TYPE_TEXT, false); ciReturn[3].setToolTip( BaseMessages.getString(PKG, "MemoryGroupByDialog.ColumnInfo.Value.Tooltip")); ciReturn[3].setUsingVariables(true); wAgg = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciReturn, UpInsRows, lsMod, props); wGetAgg = new Button(shell, SWT.PUSH); wGetAgg.setText(BaseMessages.getString(PKG, "MemoryGroupByDialog.GetLookupFields.Button")); fdGetAgg = new FormData(); fdGetAgg.top = new FormAttachment(wlAgg, margin); fdGetAgg.right = new FormAttachment(100, 0); wGetAgg.setLayoutData(fdGetAgg); // // Search the fields in the background final Runnable runnable = new Runnable() { @Override 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(); // THE BUTTONS 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, null); fdAgg = new FormData(); fdAgg.left = new FormAttachment(0, 0); fdAgg.top = new FormAttachment(wlAgg, margin); fdAgg.right = new FormAttachment(wGetAgg, -margin); fdAgg.bottom = new FormAttachment(wOK, -margin); wAgg.setLayoutData(fdAgg); // Add listeners lsOK = new Listener() { @Override public void handleEvent(Event e) { ok(); } }; lsGet = new Listener() { @Override public void handleEvent(Event e) { get(); } }; lsGetAgg = new Listener() { @Override public void handleEvent(Event e) { getAgg(); } }; lsCancel = new Listener() { @Override public void handleEvent(Event e) { cancel(); } }; wOK.addListener(SWT.Selection, lsOK); wGet.addListener(SWT.Selection, lsGet); wGetAgg.addListener(SWT.Selection, lsGetAgg); wCancel.addListener(SWT.Selection, lsCancel); lsDef = new SelectionAdapter() { @Override public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { @Override public void shellClosed(ShellEvent e) { cancel(); } }); // Set the shell size, based upon previous time... setSize(); getData(); input.setChanged(backupChanged); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
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, "JobCheckDbConnections.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Filename line wlName = new Label(shell, SWT.RIGHT); wlName.setText(BaseMessages.getString(PKG, "JobCheckDbConnections.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); wlFields = new Label(shell, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "JobCheckDbConnections.Fields.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); // fdlFields.right= new FormAttachment(middle, -margin); fdlFields.top = new FormAttachment(wName, 2 * margin); wlFields.setLayoutData(fdlFields); // Buttons to the right of the screen... wbdSourceFileFolder = new Button(shell, SWT.PUSH | SWT.CENTER); props.setLook(wbdSourceFileFolder); wbdSourceFileFolder.setText(BaseMessages.getString(PKG, "JobCheckDbConnections.DeleteEntry")); wbdSourceFileFolder.setToolTipText( BaseMessages.getString(PKG, "JobCheckDbConnections.DeleteSourceFileButton.Label")); fdbdSourceFileFolder = new FormData(); fdbdSourceFileFolder.right = new FormAttachment(100, -margin); fdbdSourceFileFolder.top = new FormAttachment(wlFields, 50); wbdSourceFileFolder.setLayoutData(fdbdSourceFileFolder); // Buttons to the right of the screen... wbgetConnections = new Button(shell, SWT.PUSH | SWT.CENTER); props.setLook(wbgetConnections); wbgetConnections.setText(BaseMessages.getString(PKG, "JobCheckDbConnections.GetConnections")); wbgetConnections.setToolTipText( BaseMessages.getString(PKG, "JobCheckDbConnections.GetConnections.Tooltip")); fdbgetConnections = new FormData(); fdbgetConnections.right = new FormAttachment(100, -margin); fdbgetConnections.top = new FormAttachment(wlFields, 20); wbgetConnections.setLayoutData(fdbgetConnections); addDatabases(); int rows = jobEntry.connections == null ? 1 : (jobEntry.connections.length == 0 ? 0 : jobEntry.connections.length); final int FieldsRows = rows; ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "JobCheckDbConnections.Fields.Argument.Label"), ColumnInfo.COLUMN_TYPE_CCOMBO, connections, false), new ColumnInfo( BaseMessages.getString(PKG, "JobCheckDbConnections.Fields.WaitFor.Label"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "JobCheckDbConnections.Fields.WaitForTime.Label"), ColumnInfo.COLUMN_TYPE_CCOMBO, JobEntryCheckDbConnections.unitTimeDesc, false), }; colinf[0].setToolTip(BaseMessages.getString(PKG, "JobCheckDbConnections.Fields.Column")); colinf[1].setUsingVariables(true); colinf[1].setToolTip(BaseMessages.getString(PKG, "JobCheckDbConnections.WaitFor.ToolTip")); wFields = new TableView( jobMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(wbgetConnections, -margin); fdFields.bottom = new FormAttachment(100, -50); wFields.setLayoutData(fdFields); wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); FormData fd = new FormData(); fd.right = new FormAttachment(50, -10); fd.bottom = new FormAttachment(100, 0); fd.width = 100; wOK.setLayoutData(fd); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); fd = new FormData(); fd.left = new FormAttachment(50, 10); fd.bottom = new FormAttachment(100, 0); fd.width = 100; wCancel.setLayoutData(fd); BaseStepDialog.positionBottomButtons(shell, new Button[] {wOK, wCancel}, margin, wFields); // Add listeners lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; // Delete files from the list of files... wbdSourceFileFolder.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { int idx[] = wFields.getSelectionIndices(); wFields.remove(idx); wFields.removeEmptyRows(); wFields.setRowNums(); } }); // get connections... wbgetConnections.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { getDatabases(); } }); wCancel.addListener(SWT.Selection, lsCancel); wOK.addListener(SWT.Selection, lsOK); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wName.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(); props.setDialogSize(shell, "JobCheckDbConnectionsDialogSize"); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return jobEntry; }
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, "GetFilesRowsCountDialog.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 FILE TAB /// // //////////////////////// wFileTab = new CTabItem(wTabFolder, SWT.NONE); wFileTab.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.File.Tab")); wFileComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wFileComp); FormLayout fileLayout = new FormLayout(); fileLayout.marginWidth = 3; fileLayout.marginHeight = 3; wFileComp.setLayout(fileLayout); // /////////////////////////////// // START OF Origin files GROUP // // /////////////////////////////// wOriginFiles = new Group(wFileComp, SWT.SHADOW_NONE); props.setLook(wOriginFiles); wOriginFiles.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.wOriginFiles.Label")); FormLayout OriginFilesgroupLayout = new FormLayout(); OriginFilesgroupLayout.marginWidth = 10; OriginFilesgroupLayout.marginHeight = 10; wOriginFiles.setLayout(OriginFilesgroupLayout); // Is Filename defined in a Field wlFileField = new Label(wOriginFiles, SWT.RIGHT); wlFileField.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FileField.Label")); props.setLook(wlFileField); fdlFileField = new FormData(); fdlFileField.left = new FormAttachment(0, -margin); fdlFileField.top = new FormAttachment(0, margin); fdlFileField.right = new FormAttachment(middle, -2 * margin); wlFileField.setLayoutData(fdlFileField); wFileField = new Button(wOriginFiles, SWT.CHECK); props.setLook(wFileField); wFileField.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FileField.Tooltip")); fdFileField = new FormData(); fdFileField.left = new FormAttachment(middle, -margin); fdFileField.top = new FormAttachment(0, margin); wFileField.setLayoutData(fdFileField); SelectionAdapter lfilefield = new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { ActiveFileField(); input.setChanged(); } }; wFileField.addSelectionListener(lfilefield); // Filename field wlFilenameField = new Label(wOriginFiles, SWT.RIGHT); wlFilenameField.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameField.Label")); props.setLook(wlFilenameField); fdlFilenameField = new FormData(); fdlFilenameField.left = new FormAttachment(0, -margin); fdlFilenameField.top = new FormAttachment(wFileField, margin); fdlFilenameField.right = new FormAttachment(middle, -2 * margin); wlFilenameField.setLayoutData(fdlFilenameField); wFilenameField = new CCombo(wOriginFiles, SWT.BORDER | SWT.READ_ONLY); wFilenameField.setEditable(true); props.setLook(wFilenameField); wFilenameField.addModifyListener(lsMod); fdFilenameField = new FormData(); fdFilenameField.left = new FormAttachment(middle, -margin); fdFilenameField.top = new FormAttachment(wFileField, margin); fdFilenameField.right = new FormAttachment(100, -margin); wFilenameField.setLayoutData(fdFilenameField); wFilenameField.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); setFileField(); shell.setCursor(null); busy.dispose(); } }); fdOriginFiles = new FormData(); fdOriginFiles.left = new FormAttachment(0, margin); fdOriginFiles.top = new FormAttachment(wFilenameList, margin); fdOriginFiles.right = new FormAttachment(100, -margin); wOriginFiles.setLayoutData(fdOriginFiles); // /////////////////////////////////////////////////////////// // / END OF Origin files GROUP // /////////////////////////////////////////////////////////// // Filename line wlFilename = new Label(wFileComp, SWT.RIGHT); wlFilename.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Filename.Label")); props.setLook(wlFilename); fdlFilename = new FormData(); fdlFilename.left = new FormAttachment(0, 0); fdlFilename.top = new FormAttachment(wOriginFiles, margin); fdlFilename.right = new FormAttachment(middle, -margin); wlFilename.setLayoutData(fdlFilename); wbbFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER); props.setLook(wbbFilename); wbbFilename.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameBrowse.Button")); wbbFilename.setToolTipText( BaseMessages.getString(PKG, "System.Tooltip.BrowseForFileOrDirAndAdd")); fdbFilename = new FormData(); fdbFilename.right = new FormAttachment(100, 0); fdbFilename.top = new FormAttachment(wOriginFiles, margin); wbbFilename.setLayoutData(fdbFilename); wbaFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER); props.setLook(wbaFilename); wbaFilename.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameAdd.Button")); wbaFilename.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameAdd.Tooltip")); fdbaFilename = new FormData(); fdbaFilename.right = new FormAttachment(wbbFilename, -margin); fdbaFilename.top = new FormAttachment(wOriginFiles, margin); wbaFilename.setLayoutData(fdbaFilename); wFilename = new TextVar(transMeta, wFileComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFilename); wFilename.addModifyListener(lsMod); fdFilename = new FormData(); fdFilename.left = new FormAttachment(middle, 0); fdFilename.right = new FormAttachment(wbaFilename, -margin); fdFilename.top = new FormAttachment(wOriginFiles, margin); wFilename.setLayoutData(fdFilename); wlFilemask = new Label(wFileComp, SWT.RIGHT); wlFilemask.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RegExp.Label")); props.setLook(wlFilemask); fdlFilemask = new FormData(); fdlFilemask.left = new FormAttachment(0, 0); fdlFilemask.top = new FormAttachment(wFilename, margin); fdlFilemask.right = new FormAttachment(middle, -margin); wlFilemask.setLayoutData(fdlFilemask); wFilemask = new TextVar(transMeta, wFileComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFilemask); wFilemask.addModifyListener(lsMod); fdFilemask = new FormData(); fdFilemask.left = new FormAttachment(middle, 0); fdFilemask.top = new FormAttachment(wFilename, margin); fdFilemask.right = new FormAttachment(100, 0); wFilemask.setLayoutData(fdFilemask); wlExcludeFilemask = new Label(wFileComp, SWT.RIGHT); wlExcludeFilemask.setText( BaseMessages.getString(PKG, "GetFilesRowsDialog.ExcludeFilemask.Label")); props.setLook(wlExcludeFilemask); fdlExcludeFilemask = new FormData(); fdlExcludeFilemask.left = new FormAttachment(0, 0); fdlExcludeFilemask.top = new FormAttachment(wFilemask, margin); fdlExcludeFilemask.right = new FormAttachment(middle, -margin); wlExcludeFilemask.setLayoutData(fdlExcludeFilemask); wExcludeFilemask = new TextVar(transMeta, wFileComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wExcludeFilemask); wExcludeFilemask.addModifyListener(lsMod); fdExcludeFilemask = new FormData(); fdExcludeFilemask.left = new FormAttachment(middle, 0); fdExcludeFilemask.top = new FormAttachment(wFilemask, margin); fdExcludeFilemask.right = new FormAttachment(wFilename, 0, SWT.RIGHT); wExcludeFilemask.setLayoutData(fdExcludeFilemask); // Filename list line wlFilenameList = new Label(wFileComp, SWT.RIGHT); wlFilenameList.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameList.Label")); props.setLook(wlFilenameList); fdlFilenameList = new FormData(); fdlFilenameList.left = new FormAttachment(0, 0); fdlFilenameList.top = new FormAttachment(wExcludeFilemask, margin); fdlFilenameList.right = new FormAttachment(middle, -margin); wlFilenameList.setLayoutData(fdlFilenameList); // Buttons to the right of the screen... wbdFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER); props.setLook(wbdFilename); wbdFilename.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameRemove.Button")); wbdFilename.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameRemove.Tooltip")); fdbdFilename = new FormData(); fdbdFilename.right = new FormAttachment(100, 0); fdbdFilename.top = new FormAttachment(wExcludeFilemask, 40); wbdFilename.setLayoutData(fdbdFilename); wbeFilename = new Button(wFileComp, SWT.PUSH | SWT.CENTER); props.setLook(wbeFilename); wbeFilename.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameEdit.Button")); wbeFilename.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.FilenameEdit.Tooltip")); fdbeFilename = new FormData(); fdbeFilename.right = new FormAttachment(100, 0); fdbeFilename.top = new FormAttachment(wbdFilename, margin); wbeFilename.setLayoutData(fdbeFilename); wbShowFiles = new Button(wFileComp, SWT.PUSH | SWT.CENTER); props.setLook(wbShowFiles); wbShowFiles.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.ShowFiles.Button")); fdbShowFiles = new FormData(); fdbShowFiles.left = new FormAttachment(middle, 0); fdbShowFiles.bottom = new FormAttachment(100, 0); wbShowFiles.setLayoutData(fdbShowFiles); ColumnInfo[] colinfo = new ColumnInfo[5]; colinfo[0] = new ColumnInfo( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Files.Filename.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinfo[1] = new ColumnInfo( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Files.Wildcard.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinfo[2] = new ColumnInfo( BaseMessages.getString(PKG, "GetFilesRowsDialog.Files.ExcludeWildcard.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinfo[3] = new ColumnInfo( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Required.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, GetFilesRowsCountMeta.RequiredFilesDesc); colinfo[4] = new ColumnInfo( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.IncludeSubDirs.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, GetFilesRowsCountMeta.RequiredFilesDesc); colinfo[0].setUsingVariables(true); colinfo[1].setUsingVariables(true); colinfo[1].setToolTip( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Files.Wildcard.Tooltip")); colinfo[2].setUsingVariables(true); colinfo[2].setToolTip( BaseMessages.getString(PKG, "GetFilesRowsDialog.Files.ExcludeWildcard.Tooltip")); wFilenameList = new TableView( transMeta, wFileComp, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER, colinfo, 2, lsMod, props); props.setLook(wFilenameList); fdFilenameList = new FormData(); fdFilenameList.left = new FormAttachment(middle, 0); fdFilenameList.right = new FormAttachment(wbdFilename, -margin); fdFilenameList.top = new FormAttachment(wExcludeFilemask, margin); fdFilenameList.bottom = new FormAttachment(wbShowFiles, -margin); wFilenameList.setLayoutData(fdFilenameList); fdFileComp = new FormData(); fdFileComp.left = new FormAttachment(0, 0); fdFileComp.top = new FormAttachment(0, 0); fdFileComp.right = new FormAttachment(100, 0); fdFileComp.bottom = new FormAttachment(100, 0); wFileComp.setLayoutData(fdFileComp); wFileComp.layout(); wFileTab.setControl(wFileComp); // /////////////////////////////////////////////////////////// // / END OF FILE TAB // /////////////////////////////////////////////////////////// // //////////////////////// // START OF CONTENT TAB/// // / wContentTab = new CTabItem(wTabFolder, SWT.NONE); wContentTab.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Content.Tab")); FormLayout contentLayout = new FormLayout(); contentLayout.marginWidth = 3; contentLayout.marginHeight = 3; wContentComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wContentComp); wContentComp.setLayout(contentLayout); // ///////////////////////////////// // START OF Files Count Field GROUP // ///////////////////////////////// wFilesCountFieldGroup = new Group(wContentComp, SWT.SHADOW_NONE); props.setLook(wFilesCountFieldGroup); wFilesCountFieldGroup.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Group.CountFilesFieldGroup.Label")); FormLayout countfilesfieldgroupLayout = new FormLayout(); countfilesfieldgroupLayout.marginWidth = 10; countfilesfieldgroupLayout.marginHeight = 10; wFilesCountFieldGroup.setLayout(countfilesfieldgroupLayout); wlRowsCountField = new Label(wFilesCountFieldGroup, SWT.RIGHT); wlRowsCountField.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowsCountField.Label")); props.setLook(wlRowsCountField); fdlRowsCountField = new FormData(); fdlRowsCountField.left = new FormAttachment(wInclFilesCount, margin); fdlRowsCountField.top = new FormAttachment(0, margin); wlRowsCountField.setLayoutData(fdlRowsCountField); wRowsCountField = new TextVar(transMeta, wFilesCountFieldGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wRowsCountField); wRowsCountField.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowsCountField.Tooltip")); wRowsCountField.addModifyListener(lsMod); fdRowsCountField = new FormData(); fdRowsCountField.left = new FormAttachment(wlRowsCountField, margin); fdRowsCountField.top = new FormAttachment(0, margin); fdRowsCountField.right = new FormAttachment(100, 0); wRowsCountField.setLayoutData(fdRowsCountField); fdFilesCountFieldGroup = new FormData(); fdFilesCountFieldGroup.left = new FormAttachment(0, margin); fdFilesCountFieldGroup.top = new FormAttachment(0, margin); fdFilesCountFieldGroup.right = new FormAttachment(100, -margin); wFilesCountFieldGroup.setLayoutData(fdFilesCountFieldGroup); // /////////////////////////////////////////////////////////// // / END OF ADDITIONNAL FIELDS GROUP // /////////////////////////////////////////////////////////// // ///////////////////////////////// // START OF Row separator GROUP // ///////////////////////////////// wRowSeparatorGroup = new Group(wContentComp, SWT.SHADOW_NONE); props.setLook(wRowSeparatorGroup); wRowSeparatorGroup.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Group.RowSeparator.Label")); FormLayout rowseparatorgroupLayout = new FormLayout(); rowseparatorgroupLayout.marginWidth = 10; rowseparatorgroupLayout.marginHeight = 10; wRowSeparatorGroup.setLayout(rowseparatorgroupLayout); wlRowSeparatorFormat = new Label(wRowSeparatorGroup, SWT.RIGHT); wlRowSeparatorFormat.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparatorFormat.Label")); props.setLook(wlRowSeparatorFormat); fdlRowSeparatorFormat = new FormData(); fdlRowSeparatorFormat.left = new FormAttachment(0, 0); fdlRowSeparatorFormat.top = new FormAttachment(wFilesCountFieldGroup, margin); fdlRowSeparatorFormat.right = new FormAttachment(middle, -margin); wlRowSeparatorFormat.setLayoutData(fdlRowSeparatorFormat); wRowSeparatorFormat = new CCombo(wRowSeparatorGroup, SWT.BORDER | SWT.READ_ONLY); props.setLook(wRowSeparatorFormat); wRowSeparatorFormat.add( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparatorFormat.CR.Label")); wRowSeparatorFormat.add( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparatorFormat.LF.Label")); wRowSeparatorFormat.add( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparatorFormat.CRLF.Label")); wRowSeparatorFormat.add( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparatorFormat.TAB.Label")); wRowSeparatorFormat.add( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparatorFormat.CUSTOM.Label")); wRowSeparatorFormat.select(0); wRowSeparatorFormat.addModifyListener(lsMod); fdRowSeparatorFormat = new FormData(); fdRowSeparatorFormat.left = new FormAttachment(middle, 0); fdRowSeparatorFormat.top = new FormAttachment(wFilesCountFieldGroup, margin); fdRowSeparatorFormat.right = new FormAttachment(100, 0); wRowSeparatorFormat.setLayoutData(fdRowSeparatorFormat); wRowSeparatorFormat.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ActiveRowSeparator(); } }); wlRowSeparator = new Label(wRowSeparatorGroup, SWT.RIGHT); wlRowSeparator.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparator.Label")); props.setLook(wlRowSeparator); fdlRowSeparator = new FormData(); fdlRowSeparator.left = new FormAttachment(wInclFilesCount, margin); fdlRowSeparator.top = new FormAttachment(wRowSeparatorFormat, margin); wlRowSeparator.setLayoutData(fdlRowSeparator); wRowSeparator = new TextVar(transMeta, wRowSeparatorGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wRowSeparator); wRowSeparator.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.RowSeparator.Tooltip")); wRowSeparator.addModifyListener(lsMod); fdRowSeparator = new FormData(); fdRowSeparator.left = new FormAttachment(wlRowSeparator, margin); fdRowSeparator.top = new FormAttachment(wRowSeparatorFormat, margin); fdRowSeparator.right = new FormAttachment(100, 0); wRowSeparator.setLayoutData(fdRowSeparator); wlSmartCount = new Label(wRowSeparatorGroup, SWT.RIGHT); wlSmartCount.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.SmartCount.Label")); props.setLook(wlSmartCount); fdlSmartCount = new FormData(); fdlSmartCount.left = new FormAttachment(0, 0); fdlSmartCount.top = new FormAttachment(wRowSeparator, margin); fdlSmartCount.right = new FormAttachment(middle, -margin); wlSmartCount.setLayoutData(fdlSmartCount); wSmartCount = new Button(wRowSeparatorGroup, SWT.CHECK); props.setLook(wSmartCount); wSmartCount.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.SmartCount.Tooltip")); fdSmartCount = new FormData(); fdSmartCount.left = new FormAttachment(middle, 0); fdSmartCount.top = new FormAttachment(wRowSeparator, margin); wSmartCount.setLayoutData(fdSmartCount); fdRowSeparatorGroup = new FormData(); fdRowSeparatorGroup.left = new FormAttachment(0, margin); fdRowSeparatorGroup.top = new FormAttachment(wFilesCountFieldGroup, margin); fdRowSeparatorGroup.right = new FormAttachment(100, -margin); wRowSeparatorGroup.setLayoutData(fdRowSeparatorGroup); // /////////////////////////////////////////////////////////// // / END OF ROW SEPARATOR GROUP // /////////////////////////////////////////////////////////// // ///////////////////////////////// // START OF Additional Fields GROUP // ///////////////////////////////// wAdditionalGroup = new Group(wContentComp, SWT.SHADOW_NONE); props.setLook(wAdditionalGroup); wAdditionalGroup.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Group.AdditionalGroup.Label")); FormLayout additionalgroupLayout = new FormLayout(); additionalgroupLayout.marginWidth = 10; additionalgroupLayout.marginHeight = 10; wAdditionalGroup.setLayout(additionalgroupLayout); wlInclFilesCount = new Label(wAdditionalGroup, SWT.RIGHT); wlInclFilesCount.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.InclCountFiles.Label")); props.setLook(wlInclFilesCount); fdlInclFilesCount = new FormData(); fdlInclFilesCount.left = new FormAttachment(0, 0); fdlInclFilesCount.top = new FormAttachment(wRowSeparatorGroup, margin); fdlInclFilesCount.right = new FormAttachment(middle, -margin); wlInclFilesCount.setLayoutData(fdlInclFilesCount); wInclFilesCount = new Button(wAdditionalGroup, SWT.CHECK); props.setLook(wInclFilesCount); wInclFilesCount.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.InclCountFiles.Tooltip")); fdFilesCount = new FormData(); fdFilesCount.left = new FormAttachment(middle, 0); fdFilesCount.top = new FormAttachment(wRowSeparatorGroup, margin); wInclFilesCount.setLayoutData(fdFilesCount); wlInclFilesCountField = new Label(wAdditionalGroup, SWT.RIGHT); wlInclFilesCountField.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.InclCountFilesField.Label")); props.setLook(wlInclFilesCountField); fdlInclFilesCountField = new FormData(); fdlInclFilesCountField.left = new FormAttachment(wInclFilesCount, margin); fdlInclFilesCountField.top = new FormAttachment(wRowSeparatorGroup, margin); wlInclFilesCountField.setLayoutData(fdlInclFilesCountField); wInclFilesCountField = new TextVar(transMeta, wAdditionalGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wInclFilesCountField); wInclFilesCountField.addModifyListener(lsMod); fdInclFilesCountField = new FormData(); fdInclFilesCountField.left = new FormAttachment(wlInclFilesCountField, margin); fdInclFilesCountField.top = new FormAttachment(wRowSeparatorGroup, margin); fdInclFilesCountField.right = new FormAttachment(100, 0); wInclFilesCountField.setLayoutData(fdInclFilesCountField); fdAdditionalGroup = new FormData(); fdAdditionalGroup.left = new FormAttachment(0, margin); fdAdditionalGroup.top = new FormAttachment(wRowSeparatorGroup, margin); fdAdditionalGroup.right = new FormAttachment(100, -margin); wAdditionalGroup.setLayoutData(fdAdditionalGroup); // /////////////////////////////////////////////////////////// // / END OF ADDITIONNAL FIELDS GROUP // /////////////////////////////////////////////////////////// // /////////////////////////////// // START OF AddFileResult GROUP // // /////////////////////////////// wAddFileResult = new Group(wContentComp, SWT.SHADOW_NONE); props.setLook(wAddFileResult); wAddFileResult.setText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.wAddFileResult.Label")); FormLayout AddFileResultgroupLayout = new FormLayout(); AddFileResultgroupLayout.marginWidth = 10; AddFileResultgroupLayout.marginHeight = 10; wAddFileResult.setLayout(AddFileResultgroupLayout); wlAddResult = new Label(wAddFileResult, SWT.RIGHT); wlAddResult.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.AddResult.Label")); props.setLook(wlAddResult); fdlAddResult = new FormData(); fdlAddResult.left = new FormAttachment(0, 0); fdlAddResult.top = new FormAttachment(wAdditionalGroup, margin); fdlAddResult.right = new FormAttachment(middle, -margin); wlAddResult.setLayoutData(fdlAddResult); wAddResult = new Button(wAddFileResult, SWT.CHECK); props.setLook(wAddResult); wAddResult.setToolTipText( BaseMessages.getString(PKG, "GetFilesRowsCountDialog.AddResult.Tooltip")); fdAddResult = new FormData(); fdAddResult.left = new FormAttachment(middle, 0); fdAddResult.top = new FormAttachment(wAdditionalGroup, margin); wAddResult.setLayoutData(fdAddResult); fdAddFileResult = new FormData(); fdAddFileResult.left = new FormAttachment(0, margin); fdAddFileResult.top = new FormAttachment(wAdditionalGroup, margin); fdAddFileResult.right = new FormAttachment(100, -margin); wAddFileResult.setLayoutData(fdAddFileResult); // /////////////////////////////////////////////////////////// // / END OF AddFileResult GROUP // //////////////////////////////////// fdContentComp = new FormData(); fdContentComp.left = new FormAttachment(0, 0); fdContentComp.top = new FormAttachment(0, 0); fdContentComp.right = new FormAttachment(100, 0); fdContentComp.bottom = new FormAttachment(100, 0); wContentComp.setLayoutData(fdContentComp); wContentComp.layout(); wContentTab.setControl(wContentComp); // /////////////////////////////////////////////////////////// // / END OF CONTENT TAB // /////////////////////////////////////////////////////////// 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")); wPreview = new Button(shell, SWT.PUSH); wPreview.setText(BaseMessages.getString(PKG, "GetFilesRowsCountDialog.Button.PreviewRows")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); setButtonPositions(new Button[] {wOK, wPreview, wCancel}, margin, wTabFolder); // Add listeners lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; lsPreview = new Listener() { public void handleEvent(Event e) { preview(); } }; lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; wOK.addListener(SWT.Selection, lsOK); wPreview.addListener(SWT.Selection, lsPreview); wCancel.addListener(SWT.Selection, lsCancel); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); wInclFilesCountField.addSelectionListener(lsDef); // Add the file to the list of files... SelectionAdapter selA = new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { wFilenameList.add( new String[] { wFilename.getText(), wFilemask.getText(), wExcludeFilemask.getText(), GetFilesRowsCountMeta.RequiredFilesCode[0], GetFilesRowsCountMeta.RequiredFilesCode[0] }); wFilename.setText(""); wFilemask.setText(""); wExcludeFilemask.setText(""); wFilenameList.removeEmptyRows(); wFilenameList.setRowNums(); wFilenameList.optWidth(true); } }; wbaFilename.addSelectionListener(selA); wFilename.addSelectionListener(selA); // Delete files from the list of files... wbdFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { int[] idx = wFilenameList.getSelectionIndices(); wFilenameList.remove(idx); wFilenameList.removeEmptyRows(); wFilenameList.setRowNums(); } }); // Edit the selected file & remove from the list... wbeFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { int idx = wFilenameList.getSelectionIndex(); if (idx >= 0) { String[] string = wFilenameList.getItem(idx); wFilename.setText(string[0]); wFilemask.setText(string[1]); wExcludeFilemask.setText(string[2]); wFilenameList.remove(idx); } wFilenameList.removeEmptyRows(); wFilenameList.setRowNums(); } }); // Show the files that are selected at this time... wbShowFiles.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { try { GetFilesRowsCountMeta tfii = new GetFilesRowsCountMeta(); getInfo(tfii); FileInputList fileInputList = tfii.getFiles(transMeta); String[] files = fileInputList.getFileStrings(); if (files.length > 0) { EnterSelectionDialog esd = new EnterSelectionDialog( shell, files, BaseMessages.getString( PKG, "GetFilesRowsCountDialog.FilesReadSelection.DialogTitle"), BaseMessages.getString( PKG, "GetFilesRowsCountDialog.FilesReadSelection.DialogMessage")); esd.setViewOnly(); esd.open(); } else { MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR); mb.setMessage( BaseMessages.getString( PKG, "GetFilesRowsCountDialog.NoFileFound.DialogMessage")); mb.setText(BaseMessages.getString(PKG, "System.Dialog.Error.Title")); mb.open(); } } catch (KettleException ex) { new ErrorDialog( shell, BaseMessages.getString( PKG, "GetFilesRowsCountDialog.ErrorParsingData.DialogTitle"), BaseMessages.getString( PKG, "GetFilesRowsCountDialog.ErrorParsingData.DialogMessage"), ex); } } }); // Enable/disable the right fields to allow a row number to be added to each row... wInclFilesCount.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { setIncludeRownum(); } }); // Whenever something changes, set the tooltip to the expanded version of the filename: wFilename.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { wFilename.setToolTipText( ""); // StringUtil.environmentSubstitute( wFilename.getText() ) ); } }); // Listen to the Browse... button wbbFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (!Const.isEmpty(wFilemask.getText()) || !Const.isEmpty(wExcludeFilemask.getText())) // A mask: a // directory! { DirectoryDialog dialog = new DirectoryDialog(shell, SWT.OPEN); if (wFilename.getText() != null) { String fpath = ""; // StringUtil.environmentSubstitute(wFilename.getText()); dialog.setFilterPath(fpath); } if (dialog.open() != null) { String str = dialog.getFilterPath(); wFilename.setText(str); } } else { FileDialog dialog = new FileDialog(shell, SWT.OPEN); dialog.setFilterExtensions(new String[] {"*"}); if (wFilename.getText() != null) { String fname = ""; // StringUtil.environmentSubstitute(wFilename.getText()); dialog.setFileName(fname); } dialog.setFilterNames( new String[] {BaseMessages.getString(PKG, "System.FileType.AllFiles")}); if (dialog.open() != null) { String str = dialog.getFilterPath() + System.getProperty("file.separator") + dialog.getFileName(); wFilename.setText(str); } } } }); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); wTabFolder.setSelection(0); // Set the shell size, based upon previous time... setSize(); getData(input); ActiveFileField(); ActiveRowSeparator(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
public String open() { Shell parent = getParent(); Display display = parent.getDisplay(); shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX); 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, "StepsMetricsDialog.Shell.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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, PropsUI.WIDGET_STYLE_TAB); // //////////////////////// // START OF GENERAL TAB/// // / wGeneralTab = new CTabItem(wTabFolder, SWT.NONE); wGeneralTab.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.General")); Composite wGeneralComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wGeneralComp); FormLayout fileLayout = new FormLayout(); fileLayout.marginWidth = 3; fileLayout.marginHeight = 3; wGeneralComp.setLayout(fileLayout); // Get the previous steps... setStepNames(); wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.getSteps.Label")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); setButtonPositions(new Button[] {wOK, wGet, wCancel}, margin, null); // Table with fields wlFields = new Label(wGeneralComp, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.Fields.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.top = new FormAttachment(wStepname, margin); wlFields.setLayoutData(fdlFields); final int FieldsCols = 3; final int FieldsRows = input.getStepName().length; ColumnInfo[] colinf = new ColumnInfo[FieldsCols]; colinf[0] = new ColumnInfo( BaseMessages.getString(PKG, "StepsMetricsDialog.Fieldname.Step"), ColumnInfo.COLUMN_TYPE_CCOMBO, previousSteps, false); colinf[1] = new ColumnInfo( BaseMessages.getString(PKG, "StepsMetricsDialog.Fieldname.CopyNr"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinf[2] = new ColumnInfo( BaseMessages.getString(PKG, "StepsMetricsDialog.Required.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, YES_NO_COMBO); colinf[1].setUsingVariables(true); wFields = new TableView( transMeta, wGeneralComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(100, 0); fdFields.bottom = new FormAttachment(100, -2 * margin); wFields.setLayoutData(fdFields); fdGeneralComp = new FormData(); fdGeneralComp.left = new FormAttachment(0, 0); fdGeneralComp.top = new FormAttachment(0, 0); fdGeneralComp.right = new FormAttachment(100, 0); fdGeneralComp.bottom = new FormAttachment(100, 0); wGeneralComp.setLayoutData(fdGeneralComp); wGeneralComp.layout(); wGeneralTab.setControl(wGeneralComp); // /////////////////////////////////////////////////////////// // / END OF GENERAL TAB // /////////////////////////////////////////////////////////// // //////////////////////// // START OF FIELDS TAB/// // / wFieldsTab = new CTabItem(wTabFolder, SWT.NONE); wFieldsTab.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.Group.Fields")); Composite wFieldsComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wFieldsComp); FormLayout fieldsLayout = new FormLayout(); fieldsLayout.marginWidth = 3; fieldsLayout.marginHeight = 3; wFieldsComp.setLayout(fieldsLayout); // Stepname line wlStepnameField = new Label(wFieldsComp, SWT.RIGHT); wlStepnameField.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.Label.StepnameField")); props.setLook(wlStepnameField); fdlStepnameField = new FormData(); fdlStepnameField.left = new FormAttachment(0, 0); fdlStepnameField.top = new FormAttachment(0, margin); fdlStepnameField.right = new FormAttachment(middle, -margin); wlStepnameField.setLayoutData(fdlStepnameField); wStepnameField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wStepnameField.setText(""); props.setLook(wStepnameField); wStepnameField.addModifyListener(lsMod); fdStepnameField = new FormData(); fdStepnameField.left = new FormAttachment(middle, 0); fdStepnameField.top = new FormAttachment(0, margin); fdStepnameField.right = new FormAttachment(100, -margin); wStepnameField.setLayoutData(fdStepnameField); // Stepid line wlStepidField = new Label(wFieldsComp, SWT.RIGHT); wlStepidField.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.Label.StepidField")); props.setLook(wlStepidField); fdlStepidField = new FormData(); fdlStepidField.left = new FormAttachment(0, 0); fdlStepidField.top = new FormAttachment(wStepnameField, margin); fdlStepidField.right = new FormAttachment(middle, -margin); wlStepidField.setLayoutData(fdlStepidField); wStepidField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wStepidField.setText(""); props.setLook(wStepidField); wStepidField.addModifyListener(lsMod); fdStepidField = new FormData(); fdStepidField.left = new FormAttachment(middle, 0); fdStepidField.top = new FormAttachment(wStepnameField, margin); fdStepidField.right = new FormAttachment(100, -margin); wStepidField.setLayoutData(fdStepidField); // Linesinput line wlLinesinputField = new Label(wFieldsComp, SWT.RIGHT); wlLinesinputField.setText( BaseMessages.getString(PKG, "StepsMetricsDialog.Label.LinesinputField")); props.setLook(wlLinesinputField); fdlLinesinputField = new FormData(); fdlLinesinputField.left = new FormAttachment(0, 0); fdlLinesinputField.top = new FormAttachment(wStepidField, margin); fdlLinesinputField.right = new FormAttachment(middle, -margin); wlLinesinputField.setLayoutData(fdlLinesinputField); wLinesinputField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wLinesinputField.setText(""); props.setLook(wLinesinputField); wLinesinputField.addModifyListener(lsMod); fdLinesinputField = new FormData(); fdLinesinputField.left = new FormAttachment(middle, 0); fdLinesinputField.top = new FormAttachment(wStepidField, margin); fdLinesinputField.right = new FormAttachment(100, -margin); wLinesinputField.setLayoutData(fdLinesinputField); // Linesoutput line wlLinesoutputField = new Label(wFieldsComp, SWT.RIGHT); wlLinesoutputField.setText( BaseMessages.getString(PKG, "StepsMetricsDialog.Label.LinesoutputField")); props.setLook(wlLinesoutputField); fdlLinesoutputField = new FormData(); fdlLinesoutputField.left = new FormAttachment(0, 0); fdlLinesoutputField.top = new FormAttachment(wLinesinputField, margin); fdlLinesoutputField.right = new FormAttachment(middle, -margin); wlLinesoutputField.setLayoutData(fdlLinesoutputField); wLinesoutputField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wLinesoutputField.setText(""); props.setLook(wLinesoutputField); wLinesoutputField.addModifyListener(lsMod); fdLinesoutputField = new FormData(); fdLinesoutputField.left = new FormAttachment(middle, 0); fdLinesoutputField.top = new FormAttachment(wLinesinputField, margin); fdLinesoutputField.right = new FormAttachment(100, -margin); wLinesoutputField.setLayoutData(fdLinesoutputField); // Linesread line wlLinesreadField = new Label(wFieldsComp, SWT.RIGHT); wlLinesreadField.setText( BaseMessages.getString(PKG, "StepsMetricsDialog.Label.LinesreadField")); props.setLook(wlLinesreadField); fdlLinesreadField = new FormData(); fdlLinesreadField.left = new FormAttachment(0, 0); fdlLinesreadField.top = new FormAttachment(wLinesoutputField, margin); fdlLinesreadField.right = new FormAttachment(middle, -margin); wlLinesreadField.setLayoutData(fdlLinesreadField); wLinesreadField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wLinesreadField.setText(""); props.setLook(wLinesreadField); wLinesreadField.addModifyListener(lsMod); fdLinesreadField = new FormData(); fdLinesreadField.left = new FormAttachment(middle, 0); fdLinesreadField.top = new FormAttachment(wLinesoutputField, margin); fdLinesreadField.right = new FormAttachment(100, -margin); wLinesreadField.setLayoutData(fdLinesreadField); // Linesupdated line wlLinesupdatedField = new Label(wFieldsComp, SWT.RIGHT); wlLinesupdatedField.setText( BaseMessages.getString(PKG, "StepsMetricsDialog.Label.LinesupdatedField")); props.setLook(wlLinesupdatedField); fdlLinesupdatedField = new FormData(); fdlLinesupdatedField.left = new FormAttachment(0, 0); fdlLinesupdatedField.top = new FormAttachment(wLinesreadField, margin); fdlLinesupdatedField.right = new FormAttachment(middle, -margin); wlLinesupdatedField.setLayoutData(fdlLinesupdatedField); wLinesupdatedField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wLinesupdatedField.setText(""); props.setLook(wLinesupdatedField); wLinesupdatedField.addModifyListener(lsMod); fdLinesupdatedField = new FormData(); fdLinesupdatedField.left = new FormAttachment(middle, 0); fdLinesupdatedField.top = new FormAttachment(wLinesreadField, margin); fdLinesupdatedField.right = new FormAttachment(100, -margin); wLinesupdatedField.setLayoutData(fdLinesupdatedField); // Lineswritten line wlLineswrittenField = new Label(wFieldsComp, SWT.RIGHT); wlLineswrittenField.setText( BaseMessages.getString(PKG, "StepsMetricsDialog.Label.LineswrittenField")); props.setLook(wlLineswrittenField); fdlLineswrittenField = new FormData(); fdlLineswrittenField.left = new FormAttachment(0, 0); fdlLineswrittenField.top = new FormAttachment(wLinesupdatedField, margin); fdlLineswrittenField.right = new FormAttachment(middle, -margin); wlLineswrittenField.setLayoutData(fdlLineswrittenField); wLineswrittenField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wLineswrittenField.setText(""); props.setLook(wLineswrittenField); wLineswrittenField.addModifyListener(lsMod); fdLineswrittenField = new FormData(); fdLineswrittenField.left = new FormAttachment(middle, 0); fdLineswrittenField.top = new FormAttachment(wLinesupdatedField, margin); fdLineswrittenField.right = new FormAttachment(100, -margin); wLineswrittenField.setLayoutData(fdLineswrittenField); // Lineserrors line wlLineserrorsField = new Label(wFieldsComp, SWT.RIGHT); wlLineserrorsField.setText( BaseMessages.getString(PKG, "StepsMetricsDialog.Label.LineserrorsField")); props.setLook(wlLineserrorsField); fdlLineserrorsField = new FormData(); fdlLineserrorsField.left = new FormAttachment(0, 0); fdlLineserrorsField.top = new FormAttachment(wLineswrittenField, margin); fdlLineserrorsField.right = new FormAttachment(middle, -margin); wlLineserrorsField.setLayoutData(fdlLineserrorsField); wLineserrorsField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wLineserrorsField.setText(""); props.setLook(wLineserrorsField); wLineserrorsField.addModifyListener(lsMod); fdLineserrorsField = new FormData(); fdLineserrorsField.left = new FormAttachment(middle, 0); fdLineserrorsField.top = new FormAttachment(wLineswrittenField, margin); fdLineserrorsField.right = new FormAttachment(100, -margin); wLineserrorsField.setLayoutData(fdLineserrorsField); // Seconds line wlSecondsField = new Label(wFieldsComp, SWT.RIGHT); wlSecondsField.setText(BaseMessages.getString(PKG, "StepsMetricsDialog.Label.DurationField")); props.setLook(wlSecondsField); fdlSecondsField = new FormData(); fdlSecondsField.left = new FormAttachment(0, 0); fdlSecondsField.top = new FormAttachment(wLineserrorsField, margin); fdlSecondsField.right = new FormAttachment(middle, -margin); wlSecondsField.setLayoutData(fdlSecondsField); wSecondsField = new TextVar(transMeta, wFieldsComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wSecondsField.setText(""); props.setLook(wSecondsField); wSecondsField.addModifyListener(lsMod); fdSecondsField = new FormData(); fdSecondsField.left = new FormAttachment(middle, 0); fdSecondsField.top = new FormAttachment(wLineserrorsField, margin); fdSecondsField.right = new FormAttachment(100, -margin); wSecondsField.setLayoutData(fdSecondsField); 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); // /////////////////////////////////////////////////////////// // / END OF FIELDS TAB // /////////////////////////////////////////////////////////// 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); // Add listeners lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsGet = new Listener() { public void handleEvent(Event e) { get(); } }; lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; wCancel.addListener(SWT.Selection, lsCancel); wOK.addListener(SWT.Selection, lsOK); wGet.addListener(SWT.Selection, lsGet); 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(); } }); wTabFolder.setSelection(0); // Set the shell size, based upon previous time... setSize(); getData(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
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); if (!SAPLibraryTester.isJCoLibAvailable()) { int style = SWT.ICON_ERROR; MessageBox messageBox = new MessageBox(shell, style); messageBox.setMessage(BaseMessages.getString(PKG, "SapInputDialog.JCoLibNotFound")); messageBox.open(); // dispose(); // return stepname; } if (!SAPLibraryTester.isJCoImplAvailable()) { int style = SWT.ICON_ERROR; MessageBox messageBox = new MessageBox(shell, style); messageBox.setMessage(BaseMessages.getString(PKG, "SapInputDialog.JCoImplNotFound")); messageBox.open(); // dispose(); // return stepname; } ModifyListener lsMod = new ModifyListener() { public void modifyText(ModifyEvent e) { input.setChanged(); } }; ModifyListener lsConnectionMod = new ModifyListener() { public void modifyText(ModifyEvent e) { input.setChanged(); } }; backupChanged = input.hasChanged(); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "SapInputDialog.shell.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "SapInputDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); Control lastControl = wStepname; // Connection line // wConnection = addConnectionLine(shell, lastControl, middle, margin); List<String> items = new ArrayList<String>(); for (DatabaseMeta dbMeta : transMeta.getDatabases()) { if (dbMeta.getDatabaseInterface() instanceof SAPR3DatabaseMeta) { items.add(dbMeta.getName()); } } wConnection.setItems(items.toArray(new String[items.size()])); if (input.getDatabaseMeta() == null && transMeta.nrDatabases() == 1) { wConnection.select(0); } wConnection.addModifyListener(lsConnectionMod); lastControl = wConnection; // Function // wlFunction = new Label(shell, SWT.RIGHT); wlFunction.setText(BaseMessages.getString(PKG, "SapInputDialog.Function.Label")); props.setLook(wlFunction); FormData fdlFunction = new FormData(); fdlFunction.left = new FormAttachment(0, 0); fdlFunction.right = new FormAttachment(middle, -margin); fdlFunction.top = new FormAttachment(lastControl, margin); wlFunction.setLayoutData(fdlFunction); wbFunction = new Button(shell, SWT.PUSH); props.setLook(wbFunction); wbFunction.setText(BaseMessages.getString(PKG, "SapInputDialog.FindFunctionButton.Label")); FormData fdbFunction = new FormData(); fdbFunction.right = new FormAttachment(100, 0); fdbFunction.top = new FormAttachment(lastControl, margin); wbFunction.setLayoutData(fdbFunction); wbFunction.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { getFunction(); } }); wFunction = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFunction); wFunction.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { function = new SAPFunction(((Text) e.widget).getText()); input.setChanged(); } }); FormData fdFunction = new FormData(); fdFunction.left = new FormAttachment(middle, 0); fdFunction.right = new FormAttachment(wbFunction, -margin); fdFunction.top = new FormAttachment(lastControl, margin); wFunction.setLayoutData(fdFunction); lastControl = wFunction; // The parameter input fields... // wlInput = new Label(shell, SWT.NONE); wlInput.setText(BaseMessages.getString(PKG, "SapInputDialog.Input.Label")); props.setLook(wlInput); FormData fdlInput = new FormData(); fdlInput.left = new FormAttachment(0, 0); fdlInput.top = new FormAttachment(lastControl, margin); wlInput.setLayoutData(fdlInput); ColumnInfo[] ciKey = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.Field"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.SAPType"), ColumnInfo.COLUMN_TYPE_CCOMBO, SapType.getDescriptions()), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.TableOrStruct"), ColumnInfo.COLUMN_TYPE_TEXT, false, false), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.SAPParameterName"), ColumnInfo.COLUMN_TYPE_TEXT, false, false), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.TargetType"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMeta.getTypes()), }; inputFieldColumns.add(ciKey[0]); wInput = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciKey, input.getParameters().size(), lsMod, props); FormData fdInput = new FormData(); fdInput.left = new FormAttachment(0, 0); fdInput.top = new FormAttachment(wlInput, margin); fdInput.right = new FormAttachment(100, 0); fdInput.bottom = new FormAttachment(40, 0); wInput.setLayoutData(fdInput); lastControl = wInput; // THE BUTTONS wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); // wPreview = new Button(shell, SWT.PUSH); // wPreview.setText(BaseMessages.getString(PKG, "System.Button.Preview")); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "SapInputDialog.GetFields.Button")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); wAbout = new Button(shell, SWT.PUSH); wAbout.setText(BaseMessages.getString(PKG, "SapInputDialog.About.Button")); // Preview not possible without inputRowSets in BaseStep.getRow() // setButtonPositions(new Button[] { wOK, wPreview, wAbout , wGet, wCancel}, margin, null); setButtonPositions(new Button[] {wOK, wAbout, wGet, wCancel}, margin, null); // The output fields... // wlOutput = new Label(shell, SWT.NONE); wlOutput.setText(BaseMessages.getString(PKG, "SapInputDialog.Output.Label")); props.setLook(wlOutput); FormData fdlOutput = new FormData(); fdlOutput.left = new FormAttachment(0, 0); fdlOutput.top = new FormAttachment(wInput, margin); wlOutput.setLayoutData(fdlOutput); ColumnInfo[] ciReturn = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.SAPField"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {}, false), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.SAPType"), ColumnInfo.COLUMN_TYPE_CCOMBO, SapType.getDescriptions(), false), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.TableOrStruct"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.NewName"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SapInputDialog.ColumnInfo.TargetType"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMeta.getTypes()), }; outputFieldColumns.add(ciReturn[0]); wOutput = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciReturn, input.getOutputFields().size(), lsMod, props); FormData fdOutput = new FormData(); fdOutput.left = new FormAttachment(0, 0); fdOutput.top = new FormAttachment(wlOutput, margin); fdOutput.right = new FormAttachment(100, 0); fdOutput.bottom = new FormAttachment(wOK, -8 * margin); wOutput.setLayoutData(fdOutput); lastControl = wOutput; this.wAscLink = new Link(this.shell, SWT.NONE); FormData fdAscLink = new FormData(); fdAscLink.left = new FormAttachment(0, 0); fdAscLink.top = new FormAttachment(wOutput, margin); wAscLink.setLayoutData(fdAscLink); this.wAscLink.setText(BaseMessages.getString(PKG, "SapInputDialog.Provided.Info")); lastControl = wAscLink; // Add listeners lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; lsPreview = new Listener() { public void handleEvent(Event e) { preview(); } }; lsGet = new Listener() { public void handleEvent(Event e) { get(); } }; lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; Listener lsAbout = new Listener() { public void handleEvent(Event e) { about(); } }; wOK.addListener(SWT.Selection, lsOK); // wPreview.addListener(SWT.Selection, lsPreview); wGet.addListener(SWT.Selection, lsGet); wCancel.addListener(SWT.Selection, lsCancel); this.wAbout.addListener(SWT.Selection, lsAbout); this.wAscLink.addListener( SWT.Selection, new Listener() { public void handleEvent(final Event event) { Program.launch(event.text); } }); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); wFunction.addSelectionListener(lsDef); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); getData(); // Set the shell size, based upon previous time... setSize(); input.setChanged(backupChanged); setComboValues(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
protected void parametersSectionLayout(Class<?> PKG, String prefix) { tabFolder = new CTabFolder(shell, SWT.BORDER); props.setLook(tabFolder, Props.WIDGET_STYLE_TAB); fdDetails.bottom = new FormAttachment(tabFolder, -16); fd_tabFolder = new FormData(); fd_tabFolder.right = new FormAttachment(100, -15); fd_tabFolder.left = new FormAttachment(0, 15); fd_tabFolder.top = new FormAttachment(0, 276); tabFolder.setLayoutData(fd_tabFolder); // Parameters CTabItem tbtmParameters = new CTabItem(tabFolder, SWT.NONE); tbtmParameters.setText(BaseMessages.getString(PKG, prefix + ".Params.Label")); Composite parametersComposite = new Composite(tabFolder, SWT.NONE); props.setLook(parametersComposite); parametersComposite.setLayout(new FormLayout()); tbtmParameters.setControl(parametersComposite); ColumnInfo[] cParams = { new ColumnInfo( BaseMessages.getString(PKG, prefix + ".ParamsColumn.Argument"), ColumnInfo.COLUMN_TYPE_TEXT, false, true, 126), // Stepname new ColumnInfo( BaseMessages.getString(PKG, prefix + ".ParamsColumn.Default"), ColumnInfo.COLUMN_TYPE_TEXT, false, true, 138), // Preview size new ColumnInfo( BaseMessages.getString(PKG, prefix + ".ParamsColumn.Value"), ColumnInfo.COLUMN_TYPE_TEXT, false, false, 142), // Preview size new ColumnInfo( BaseMessages.getString(PKG, prefix + ".ParamsColumn.Description"), ColumnInfo.COLUMN_TYPE_TEXT, false, true, 181), // Preview size }; String[] namedParams = abstractMeta.listParameters(); int nrParams = namedParams.length; wParams = new TableView( abstractMeta, parametersComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, cParams, nrParams, false, null, props, false); FormData fdParams = new FormData(); fdParams.top = new FormAttachment(0, 10); fdParams.left = new FormAttachment(0, 10); wParams.setLayoutData(fdParams); tabFolder.setSelection(0); Button argsButton = new Button(parametersComposite, SWT.NONE); fdParams.right = new FormAttachment(argsButton, 0, SWT.RIGHT); fdParams.bottom = new FormAttachment(argsButton, -6); FormData fd_argsButton = new FormData(); fd_argsButton.right = new FormAttachment(100, -10); fd_argsButton.bottom = new FormAttachment(100, -10); argsButton.setLayoutData(fd_argsButton); argsButton.setText(BaseMessages.getString(PKG, prefix + ".Arguments.Label")); argsButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { new ArgumentsDialog(shell, configuration, abstractMeta); } }); // Variables CTabItem tbtmVariables = new CTabItem(tabFolder, SWT.NONE); tbtmVariables.setText(BaseMessages.getString(PKG, prefix + ".Variables.Label")); Composite variablesComposite = new Composite(tabFolder, SWT.NONE); props.setLook(variablesComposite); variablesComposite.setLayout(new FormLayout()); tbtmVariables.setControl(variablesComposite); ColumnInfo[] cVariables = { new ColumnInfo( BaseMessages.getString(PKG, prefix + ".VariablesColumn.Argument"), ColumnInfo.COLUMN_TYPE_TEXT, false, false, 287), // Stepname new ColumnInfo( BaseMessages.getString(PKG, prefix + ".VariablesColumn.Value"), ColumnInfo.COLUMN_TYPE_TEXT, false, false, 300), // Preview size }; int nrVariables = configuration.getVariables() != null ? configuration.getVariables().size() : 0; wVariables = new TableView( abstractMeta, variablesComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, cVariables, nrVariables, false, null, props, false); FormData fdVariables = new FormData(); fdVariables.top = new FormAttachment(0, 10); fdVariables.left = new FormAttachment(0, 10); fdVariables.bottom = new FormAttachment(0, 221); fdVariables.right = new FormAttachment(100, -10); wVariables.setLayoutData(fdVariables); }
/** * This method is called by Spoon when the user opens the settings dialog of the step. It should * open the dialog and return only once the dialog has been closed by the user. * * <p>If the user confirms the dialog, the meta object (passed in the constructor) must be updated * to reflect the new step settings. The changed flag of the meta object must reflect whether the * step configuration was changed by the dialog. * * <p>If the user cancels the dialog, the meta object must not be updated, and its changed flag * must remain unaltered. * * <p>The open() method must return the name of the step after the user has confirmed the dialog, * or null if the user cancelled the dialog. */ public String open() { // store some convenient SWT variables Shell parent = getParent(); Display display = parent.getDisplay(); // SWT code for preparing the dialog shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX); props.setLook(shell); setShellImage(shell, meta); // Save the value of the changed flag on the meta object. If the user cancels // the dialog, it will be restored to this saved value. // The "changed" variable is inherited from BaseStepDialog changed = meta.hasChanged(); // The ModifyListener used on all controls. It will update the meta object to // indicate that changes are being made. ModifyListener lsMod = new ModifyListener() { public void modifyText(ModifyEvent e) { meta.setChanged(); } }; // ------------------------------------------------------- // // SWT code for building the actual settings dialog // // ------------------------------------------------------- // FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "UniqueListStep.Shell.Title")); 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.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // Treat Consecutive Delimiters as One // wlRemoveBlanks = new Label(shell, SWT.RIGHT); wlRemoveBlanks.setText("Treat Consecutive Delims as One"); wlRemoveBlanks.setToolTipText( "Multiple delimiters in a row will be condensed. Essentially removes blank spaces"); props.setLook(wlRemoveBlanks); fdlRemoveBlanks = new FormData(); fdlRemoveBlanks.left = new FormAttachment(0, 0); fdlRemoveBlanks.top = new FormAttachment(wStepname, margin); fdlRemoveBlanks.right = new FormAttachment(middle, -margin); wlRemoveBlanks.setLayoutData(fdlRemoveBlanks); wRemoveBlanks = new Button(shell, SWT.CHECK); wRemoveBlanks.setToolTipText( "Multiple delimiters in a row will be condensed. Essentially removes blank spaces"); props.setLook(wRemoveBlanks); wRemoveBlanks.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { meta.setChanged(); } }); fdRemoveBlanks = new FormData(); fdRemoveBlanks.left = new FormAttachment(middle, 0); fdRemoveBlanks.top = new FormAttachment(wStepname, margin); fdRemoveBlanks.right = new FormAttachment(100, 0); wRemoveBlanks.setLayoutData(fdRemoveBlanks); // OK and cancel buttons wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wGet = new Button(shell, SWT.PUSH); wGet.setText("Get"); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); setButtonPositions(new Button[] {wOK, wGet, wCancel}, margin, null); wlGroup = new Label(shell, SWT.NONE); wlGroup.setText("Fields"); props.setLook(wlGroup); fdlGroup = new FormData(); fdlGroup.left = new FormAttachment(0, 0); fdlGroup.top = new FormAttachment(wlRemoveBlanks, margin); wlGroup.setLayoutData(fdlGroup); // Fields colinf = new ColumnInfo[] { new ColumnInfo("Field Name", ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), new ColumnInfo("Current Delimiter", ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo("Output Field Name (Optional)", ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo("Output Delimiter (Optional)", ColumnInfo.COLUMN_TYPE_TEXT, false) }; int nrRows = (meta.getSourceFields() != null ? meta.getSourceFields().length : 1); wGroup = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, colinf, nrRows, lsMod, props); fdGroup = new FormData(); fdGroup.left = new FormAttachment(0, 0); fdGroup.top = new FormAttachment(wlGroup, margin); fdGroup.right = new FormAttachment(100, 0); fdGroup.bottom = new FormAttachment(wGet, -margin); wGroup.setLayoutData(fdGroup); 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(), i); } setComboBoxes(); } catch (KettleException e) { logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message")); } } } }; new Thread(runnable).start(); // Add listeners for cancel and OK lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; lsGet = new Listener() { public void handleEvent(Event event) { get(); } }; wCancel.addListener(SWT.Selection, lsCancel); wOK.addListener(SWT.Selection, lsOK); wGet.addListener(SWT.Selection, lsGet); // default listener (for hitting "enter") lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); // Detect X or ALT-F4 or something that kills this window and cancel the dialog properly shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); // Set/Restore the dialog size based on last position on screen // The setSize() method is inherited from BaseStepDialog setSize(); // populate the dialog with the values from the meta object populateDialog(); // restore the changed flag to original value, as the modify listeners fire during dialog // population meta.setChanged(changed); // open dialog and enter event loop shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } // at this point the dialog has closed, so either ok() or cancel() have been executed // The "stepname" variable is inherited from BaseStepDialog return stepname; }
public MappingEditor( Shell shell, Composite parent, ConfigurationProducer configProducer, FieldProducer fieldProducer, int tableViewStyle, boolean allowTableCreate, PropsUI props, TransMeta transMeta) { // super(parent, SWT.NO_BACKGROUND | SWT.NO_FOCUS | SWT.NO_MERGE_PAINTS); super(parent, SWT.NONE); m_shell = shell; m_parent = parent; m_transMeta = transMeta; boolean showConnectWidgets = false; m_configProducer = configProducer; if (m_configProducer != null) { m_currentConfiguration = m_configProducer.getCurrentConfiguration(); } else { showConnectWidgets = true; m_configProducer = this; } m_incomingFieldsProducer = fieldProducer; m_allowTableCreate = allowTableCreate; int middle = props.getMiddlePct(); int margin = Const.MARGIN; FormLayout controlLayout = new FormLayout(); /*controlLayout.marginLeft = 0; controlLayout.marginRight = 0; controlLayout.marginTop = 0; controlLayout.marginBottom = 0; */ controlLayout.marginWidth = 3; controlLayout.marginHeight = 3; setLayout(controlLayout); props.setLook(this); if (showConnectWidgets) { Label zooHostLab = new Label(this, SWT.RIGHT); zooHostLab.setText("Zookeeper host"); props.setLook(zooHostLab); FormData fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.top = new FormAttachment(0, margin); fd.right = new FormAttachment(middle, -margin); zooHostLab.setLayoutData(fd); m_zookeeperHostText = new TextVar(transMeta, this, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(m_zookeeperHostText); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.top = new FormAttachment(0, margin); fd.right = new FormAttachment(100, 0); m_zookeeperHostText.setLayoutData(fd); Label zooPortLab = new Label(this, SWT.RIGHT); zooPortLab.setText("Zookeeper port"); props.setLook(zooPortLab); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.top = new FormAttachment(m_zookeeperHostText, margin); fd.right = new FormAttachment(middle, -margin); zooPortLab.setLayoutData(fd); m_zookeeperPortText = new TextVar(transMeta, this, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(m_zookeeperPortText); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.top = new FormAttachment(m_zookeeperHostText, margin); fd.right = new FormAttachment(100, 0); m_zookeeperPortText.setLayoutData(fd); m_currentConfiguration = m_configProducer.getCurrentConfiguration(); } // table names Label tableNameLab = new Label(this, SWT.RIGHT); tableNameLab.setText(Messages.getString("MappingDialog.TableName.Label")); props.setLook(tableNameLab); FormData fd = new FormData(); fd.left = new FormAttachment(0, 0); if (showConnectWidgets) { fd.top = new FormAttachment(m_zookeeperPortText, margin); } else { fd.top = new FormAttachment(0, margin); } fd.right = new FormAttachment(middle, -margin); tableNameLab.setLayoutData(fd); /* m_existingTableNamesBut = new Button(this, SWT.PUSH | SWT.CENTER); props.setLook(m_existingTableNamesBut); m_existingTableNamesBut.setText("Get existing table names"); fd = new FormData(); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(0, 0); m_existingTableNamesBut.setLayoutData(fd); */ m_existingTableNamesCombo = new CCombo(this, SWT.BORDER); props.setLook(m_existingTableNamesCombo); fd = new FormData(); fd.left = new FormAttachment(middle, 0); if (showConnectWidgets) { fd.top = new FormAttachment(m_zookeeperPortText, margin); } else { fd.top = new FormAttachment(0, margin); } fd.right = new FormAttachment(100, 0); m_existingTableNamesCombo.setLayoutData(fd); // allow or disallow table creation by enabling/disabling the ability // to type into this combo m_existingTableNamesCombo.setEditable(m_allowTableCreate); // mapping names Label mappingNameLab = new Label(this, SWT.RIGHT); mappingNameLab.setText(Messages.getString("MappingDialog.MappingName.Label")); props.setLook(tableNameLab); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.top = new FormAttachment(m_existingTableNamesCombo, margin); fd.right = new FormAttachment(middle, -margin); mappingNameLab.setLayoutData(fd); /*m_existingMappingNamesBut = new Button(this, SWT.PUSH | SWT.CENTER); props.setLook(m_existingMappingNamesBut); m_existingMappingNamesBut.setText("Get mapping names"); fd = new FormData(); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(m_existingTableNamesCombo, 0); m_existingMappingNamesBut.setLayoutData(fd); */ m_existingMappingNamesCombo = new CCombo(this, SWT.BORDER); props.setLook(m_existingMappingNamesCombo); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.top = new FormAttachment(m_existingTableNamesCombo, margin); // fd.right = new FormAttachment(m_existingMappingNamesBut, -margin); fd.right = new FormAttachment(100, 0); m_existingMappingNamesCombo.setLayoutData(fd); m_existingTableNamesCombo.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { m_familiesInvalidated = true; populateMappingComboAndFamilyStuff(); } public void widgetDefaultSelected(SelectionEvent e) { m_familiesInvalidated = true; populateMappingComboAndFamilyStuff(); } }); m_existingTableNamesCombo.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent e) { m_familiesInvalidated = true; } }); m_existingTableNamesCombo.addFocusListener( new FocusListener() { public void focusGained(FocusEvent e) { populateTableCombo(false); } public void focusLost(FocusEvent e) { m_familiesInvalidated = true; populateMappingComboAndFamilyStuff(); } }); m_existingMappingNamesCombo.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { loadTableViewFromMapping(); } public void widgetDefaultSelected(SelectionEvent e) { loadTableViewFromMapping(); } }); // fields ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo( Messages.getString("HBaseInputDialog.Fields.FIELD_ALIAS"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( Messages.getString("HBaseInputDialog.Fields.FIELD_KEY"), ColumnInfo.COLUMN_TYPE_CCOMBO, true), new ColumnInfo( Messages.getString("HBaseInputDialog.Fields.FIELD_FAMILY"), ColumnInfo.COLUMN_TYPE_CCOMBO, true), new ColumnInfo( Messages.getString("HBaseInputDialog.Fields.FIELD_NAME"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( Messages.getString("HBaseInputDialog.Fields.FIELD_TYPE"), ColumnInfo.COLUMN_TYPE_CCOMBO, true), new ColumnInfo( Messages.getString("HBaseInputDialog.Fields.FIELD_INDEXED"), ColumnInfo.COLUMN_TYPE_TEXT, false), }; m_keyCI = colinf[1]; m_keyCI.setComboValues(new String[] {"N", "Y"}); m_familyCI = colinf[2]; m_familyCI.setComboValues(new String[] {""}); m_typeCI = colinf[4]; // default types for non-key fields m_typeCI.setComboValues( new String[] { "String", "Integer", "Long", "Float", "Double", "Date", "BigNumber", "Serializable", "Binary" }); m_keyCI.setComboValuesSelectionListener( new ComboValuesSelectionListener() { public String[] getComboValues(TableItem tableItem, int rowNr, int colNr) { tableItem.setText(5, ""); return m_keyCI.getComboValues(); } }); m_typeCI.setComboValuesSelectionListener( new ComboValuesSelectionListener() { public String[] getComboValues(TableItem tableItem, int rowNr, int colNr) { String[] comboValues = null; String keyOrNot = tableItem.getText(2); if (Const.isEmpty(keyOrNot) || keyOrNot.equalsIgnoreCase("N")) { comboValues = new String[] { "String", "Integer", "Long", "Float", "Double", "Boolean", "Date", "BigNumber", "Serializable", "Binary" }; } else { comboValues = new String[] { "String", "Integer", "UnsignedInteger", "Long", "UnsignedLong", "Date", "UnsignedDate", "Binary" }; } return comboValues; } }); m_saveBut = new Button(this, SWT.PUSH | SWT.CENTER); props.setLook(m_saveBut); m_saveBut.setText(Messages.getString("MappingDialog.SaveMapping")); fd = new FormData(); fd.left = new FormAttachment(0, margin); fd.bottom = new FormAttachment(100, -margin * 2); m_saveBut.setLayoutData(fd); m_saveBut.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { saveMapping(); } }); m_deleteBut = new Button(this, SWT.PUSH | SWT.CENTER); props.setLook(m_deleteBut); m_deleteBut.setText(Messages.getString("MappingDialog.DeleteMapping")); fd = new FormData(); fd.left = new FormAttachment(m_saveBut, margin); fd.bottom = new FormAttachment(100, -margin * 2); m_deleteBut.setLayoutData(fd); m_deleteBut.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { deleteMapping(); } }); if (m_allowTableCreate) { m_getFieldsBut = new Button(this, SWT.PUSH | SWT.CENTER); props.setLook(m_getFieldsBut); m_getFieldsBut.setText(Messages.getString("MappingDialog.GetIncomingFields")); fd = new FormData(); // fd.left = new FormAttachment(0, margin); fd.right = new FormAttachment(100, 0); fd.bottom = new FormAttachment(100, -margin * 2); m_getFieldsBut.setLayoutData(fd); m_getFieldsBut.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { populateTableWithIncomingFields(); } }); } else { m_keyValueTupleBut = new Button(this, SWT.PUSH | SWT.CENTER); props.setLook(m_keyValueTupleBut); m_keyValueTupleBut.setText(Messages.getString("MappingDialog.KeyValueTemplate")); m_keyValueTupleBut.setToolTipText( Messages.getString("MappingDialog.KeyValueTemplate.TipText")); fd = new FormData(); // fd.left = new FormAttachment(0, margin); fd.right = new FormAttachment(100, 0); fd.bottom = new FormAttachment(100, -margin * 2); m_keyValueTupleBut.setLayoutData(fd); m_keyValueTupleBut.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { populateTableWithTupleTemplate(); } }); /* colinf[0].setReadOnly(true); colinf[1].setReadOnly(true); colinf[2].setReadOnly(true); colinf[4].setReadOnly(true); */ } m_fieldsView = new TableView(transMeta, this, tableViewStyle, colinf, 1, null, props); fd = new FormData(); fd.top = new FormAttachment(m_existingMappingNamesCombo, margin * 2); fd.bottom = new FormAttachment(m_saveBut, -margin * 2); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(100, 0); m_fieldsView.setLayoutData(fd); // -- // layout(); // pack(); }
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(Messages.getString("JobXMLWellFormed.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Filename line wlName = new Label(shell, SWT.RIGHT); wlName.setText(Messages.getString("JobXMLWellFormed.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); 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(Messages.getString("JobXMLWellFormed.Tab.General.Label")); wGeneralComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wGeneralComp); FormLayout generalLayout = new FormLayout(); generalLayout.marginWidth = 3; generalLayout.marginHeight = 3; wGeneralComp.setLayout(generalLayout); // SETTINGS grouping? // //////////////////////// // START OF SETTINGS GROUP // wSettings = new Group(wGeneralComp, SWT.SHADOW_NONE); props.setLook(wSettings); wSettings.setText(Messages.getString("JobXMLWellFormed.Settings.Label")); FormLayout groupLayout = new FormLayout(); groupLayout.marginWidth = 10; groupLayout.marginHeight = 10; wSettings.setLayout(groupLayout); wlIncludeSubfolders = new Label(wSettings, SWT.RIGHT); wlIncludeSubfolders.setText(Messages.getString("JobXMLWellFormed.IncludeSubfolders.Label")); props.setLook(wlIncludeSubfolders); fdlIncludeSubfolders = new FormData(); fdlIncludeSubfolders.left = new FormAttachment(0, 0); fdlIncludeSubfolders.top = new FormAttachment(wName, margin); fdlIncludeSubfolders.right = new FormAttachment(middle, -margin); wlIncludeSubfolders.setLayoutData(fdlIncludeSubfolders); wIncludeSubfolders = new Button(wSettings, SWT.CHECK); props.setLook(wIncludeSubfolders); wIncludeSubfolders.setToolTipText( Messages.getString("JobXMLWellFormed.IncludeSubfolders.Tooltip")); fdIncludeSubfolders = new FormData(); fdIncludeSubfolders.left = new FormAttachment(middle, 0); fdIncludeSubfolders.top = new FormAttachment(wName, margin); fdIncludeSubfolders.right = new FormAttachment(100, 0); wIncludeSubfolders.setLayoutData(fdIncludeSubfolders); wIncludeSubfolders.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { jobEntry.setChanged(); } }); // previous wlPrevious = new Label(wSettings, SWT.RIGHT); wlPrevious.setText(Messages.getString("JobXMLWellFormed.Previous.Label")); props.setLook(wlPrevious); fdlPrevious = new FormData(); fdlPrevious.left = new FormAttachment(0, 0); fdlPrevious.top = new FormAttachment(wIncludeSubfolders, margin); fdlPrevious.right = new FormAttachment(middle, -margin); wlPrevious.setLayoutData(fdlPrevious); wPrevious = new Button(wSettings, SWT.CHECK); props.setLook(wPrevious); wPrevious.setSelection(jobEntry.arg_from_previous); wPrevious.setToolTipText(Messages.getString("JobXMLWellFormed.Previous.Tooltip")); fdPrevious = new FormData(); fdPrevious.left = new FormAttachment(middle, 0); fdPrevious.top = new FormAttachment(wIncludeSubfolders, margin); fdPrevious.right = new FormAttachment(100, 0); wPrevious.setLayoutData(fdPrevious); wPrevious.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { RefreshArgFromPrevious(); } }); fdSettings = new FormData(); fdSettings.left = new FormAttachment(0, margin); fdSettings.top = new FormAttachment(wName, margin); fdSettings.right = new FormAttachment(100, -margin); wSettings.setLayoutData(fdSettings); // /////////////////////////////////////////////////////////// // / END OF SETTINGS GROUP // /////////////////////////////////////////////////////////// // SourceFileFolder line wlSourceFileFolder = new Label(wGeneralComp, SWT.RIGHT); wlSourceFileFolder.setText(Messages.getString("JobXMLWellFormed.SourceFileFolder.Label")); props.setLook(wlSourceFileFolder); fdlSourceFileFolder = new FormData(); fdlSourceFileFolder.left = new FormAttachment(0, 0); fdlSourceFileFolder.top = new FormAttachment(wSettings, 2 * margin); fdlSourceFileFolder.right = new FormAttachment(middle, -margin); wlSourceFileFolder.setLayoutData(fdlSourceFileFolder); // Browse Source folders button ... wbSourceDirectory = new Button(wGeneralComp, SWT.PUSH | SWT.CENTER); props.setLook(wbSourceDirectory); wbSourceDirectory.setText(Messages.getString("JobXMLWellFormed.BrowseFolders.Label")); fdbSourceDirectory = new FormData(); fdbSourceDirectory.right = new FormAttachment(100, 0); fdbSourceDirectory.top = new FormAttachment(wSettings, margin); wbSourceDirectory.setLayoutData(fdbSourceDirectory); wbSourceDirectory.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { DirectoryDialog ddialog = new DirectoryDialog(shell, SWT.OPEN); if (wSourceFileFolder.getText() != null) { ddialog.setFilterPath(jobMeta.environmentSubstitute(wSourceFileFolder.getText())); } // Calling open() will open and run the dialog. // It will return the selected directory, or // null if user cancels String dir = ddialog.open(); if (dir != null) { // Set the text box to the new selection wSourceFileFolder.setText(dir); } } }); // Browse Source files button ... wbSourceFileFolder = new Button(wGeneralComp, SWT.PUSH | SWT.CENTER); props.setLook(wbSourceFileFolder); wbSourceFileFolder.setText(Messages.getString("JobXMLWellFormed.BrowseFiles.Label")); fdbSourceFileFolder = new FormData(); fdbSourceFileFolder.right = new FormAttachment(wbSourceDirectory, -margin); fdbSourceFileFolder.top = new FormAttachment(wSettings, margin); wbSourceFileFolder.setLayoutData(fdbSourceFileFolder); // Browse Destination file add button ... wbaSourceFileFolder = new Button(wGeneralComp, SWT.PUSH | SWT.CENTER); props.setLook(wbaSourceFileFolder); wbaSourceFileFolder.setText(Messages.getString("JobXMLWellFormed.FilenameAdd.Button")); fdbaSourceFileFolder = new FormData(); fdbaSourceFileFolder.right = new FormAttachment(wbSourceFileFolder, -margin); fdbaSourceFileFolder.top = new FormAttachment(wSettings, margin); wbaSourceFileFolder.setLayoutData(fdbaSourceFileFolder); wSourceFileFolder = new TextVar(jobMeta, wGeneralComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wSourceFileFolder.setToolTipText( Messages.getString("JobXMLWellFormed.SourceFileFolder.Tooltip")); props.setLook(wSourceFileFolder); wSourceFileFolder.addModifyListener(lsMod); fdSourceFileFolder = new FormData(); fdSourceFileFolder.left = new FormAttachment(middle, 0); fdSourceFileFolder.top = new FormAttachment(wSettings, 2 * margin); fdSourceFileFolder.right = new FormAttachment(wbSourceFileFolder, -55); wSourceFileFolder.setLayoutData(fdSourceFileFolder); // Whenever something changes, set the tooltip to the expanded version: wSourceFileFolder.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { wSourceFileFolder.setToolTipText( jobMeta.environmentSubstitute(wSourceFileFolder.getText())); } }); wbSourceFileFolder.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(shell, SWT.OPEN); dialog.setFilterExtensions(new String[] {"*.xml;*.XML", "*"}); if (wSourceFileFolder.getText() != null) { dialog.setFileName(jobMeta.environmentSubstitute(wSourceFileFolder.getText())); } dialog.setFilterNames(FILETYPES); if (dialog.open() != null) { wSourceFileFolder.setText( dialog.getFilterPath() + Const.FILE_SEPARATOR + dialog.getFileName()); } } }); // Buttons to the right of the screen... wbdSourceFileFolder = new Button(wGeneralComp, SWT.PUSH | SWT.CENTER); props.setLook(wbdSourceFileFolder); wbdSourceFileFolder.setText(Messages.getString("JobXMLWellFormed.FilenameDelete.Button")); wbdSourceFileFolder.setToolTipText( Messages.getString("JobXMLWellFormed.FilenameDelete.Tooltip")); fdbdSourceFileFolder = new FormData(); fdbdSourceFileFolder.right = new FormAttachment(100, 0); fdbdSourceFileFolder.top = new FormAttachment(wSourceFileFolder, 40); wbdSourceFileFolder.setLayoutData(fdbdSourceFileFolder); wbeSourceFileFolder = new Button(wGeneralComp, SWT.PUSH | SWT.CENTER); props.setLook(wbeSourceFileFolder); wbeSourceFileFolder.setText(Messages.getString("JobXMLWellFormed.FilenameEdit.Button")); wbeSourceFileFolder.setToolTipText(Messages.getString("JobXMLWellFormed.FilenameEdit.Tooltip")); fdbeSourceFileFolder = new FormData(); fdbeSourceFileFolder.right = new FormAttachment(100, 0); fdbeSourceFileFolder.left = new FormAttachment(wbdSourceFileFolder, 0, SWT.LEFT); fdbeSourceFileFolder.top = new FormAttachment(wbdSourceFileFolder, margin); wbeSourceFileFolder.setLayoutData(fdbeSourceFileFolder); // Wildcard wlWildcard = new Label(wGeneralComp, SWT.RIGHT); wlWildcard.setText(Messages.getString("JobXMLWellFormed.Wildcard.Label")); props.setLook(wlWildcard); fdlWildcard = new FormData(); fdlWildcard.left = new FormAttachment(0, 0); fdlWildcard.top = new FormAttachment(wSourceFileFolder, margin); fdlWildcard.right = new FormAttachment(middle, -margin); wlWildcard.setLayoutData(fdlWildcard); wWildcard = new TextVar(jobMeta, wGeneralComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wWildcard.setToolTipText(Messages.getString("JobXMLWellFormed.Wildcard.Tooltip")); props.setLook(wWildcard); wWildcard.addModifyListener(lsMod); fdWildcard = new FormData(); fdWildcard.left = new FormAttachment(middle, 0); fdWildcard.top = new FormAttachment(wSourceFileFolder, margin); fdWildcard.right = new FormAttachment(wbSourceFileFolder, -55); wWildcard.setLayoutData(fdWildcard); wlFields = new Label(wGeneralComp, SWT.NONE); wlFields.setText(Messages.getString("JobXMLWellFormed.Fields.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.right = new FormAttachment(middle, -margin); fdlFields.top = new FormAttachment(wWildcard, margin); wlFields.setLayoutData(fdlFields); int rows = jobEntry.source_filefolder == null ? 1 : (jobEntry.source_filefolder.length == 0 ? 0 : jobEntry.source_filefolder.length); final int FieldsRows = rows; ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo( Messages.getString("JobXMLWellFormed.Fields.SourceFileFolder.Label"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( Messages.getString("JobXMLWellFormed.Fields.Wildcard.Label"), ColumnInfo.COLUMN_TYPE_TEXT, false), }; colinf[0].setUsingVariables(true); colinf[0].setToolTip(Messages.getString("JobXMLWellFormed.Fields.SourceFileFolder.Tooltip")); colinf[1].setUsingVariables(true); colinf[1].setToolTip(Messages.getString("JobXMLWellFormed.Fields.Wildcard.Tooltip")); wFields = new TableView( jobMeta, wGeneralComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(100, -75); fdFields.bottom = new FormAttachment(100, -margin); wFields.setLayoutData(fdFields); RefreshArgFromPrevious(); // Add the file to the list of files... SelectionAdapter selA = new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { wFields.add(new String[] {wSourceFileFolder.getText(), wWildcard.getText()}); wSourceFileFolder.setText(""); wWildcard.setText(""); wFields.removeEmptyRows(); wFields.setRowNums(); wFields.optWidth(true); } }; wbaSourceFileFolder.addSelectionListener(selA); wSourceFileFolder.addSelectionListener(selA); // Delete files from the list of files... wbdSourceFileFolder.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { int idx[] = wFields.getSelectionIndices(); wFields.remove(idx); wFields.removeEmptyRows(); wFields.setRowNums(); } }); // Edit the selected file & remove from the list... wbeSourceFileFolder.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { int idx = wFields.getSelectionIndex(); if (idx >= 0) { String string[] = wFields.getItem(idx); wSourceFileFolder.setText(string[0]); wWildcard.setText(string[1]); wFields.remove(idx); } wFields.removeEmptyRows(); wFields.setRowNums(); } }); fdGeneralComp = new FormData(); fdGeneralComp.left = new FormAttachment(0, 0); fdGeneralComp.top = new FormAttachment(0, 0); fdGeneralComp.right = new FormAttachment(100, 0); fdGeneralComp.bottom = new FormAttachment(100, 0); wGeneralComp.setLayoutData(fdGeneralComp); wGeneralComp.layout(); wGeneralTab.setControl(wGeneralComp); props.setLook(wGeneralComp); ///////////////////////////////////////////////////////////// /// END OF GENERAL TAB ///////////////////////////////////////////////////////////// ////////////////////////////////////// // START OF ADVANCED TAB /// ///////////////////////////////////// wAdvancedTab = new CTabItem(wTabFolder, SWT.NONE); wAdvancedTab.setText(Messages.getString("JobXMLWellFormed.Tab.Advanced.Label")); FormLayout contentLayout = new FormLayout(); contentLayout.marginWidth = 3; contentLayout.marginHeight = 3; wAdvancedComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wAdvancedComp); wAdvancedComp.setLayout(contentLayout); // SuccessOngrouping? // //////////////////////// // START OF SUCCESS ON GROUP/// // / wSuccessOn = new Group(wAdvancedComp, SWT.SHADOW_NONE); props.setLook(wSuccessOn); wSuccessOn.setText(Messages.getString("JobXMLWellFormed.SuccessOn.Group.Label")); FormLayout successongroupLayout = new FormLayout(); successongroupLayout.marginWidth = 10; successongroupLayout.marginHeight = 10; wSuccessOn.setLayout(successongroupLayout); // Success Condition wlSuccessCondition = new Label(wSuccessOn, SWT.RIGHT); wlSuccessCondition.setText(Messages.getString("JobXMLWellFormed.SuccessCondition.Label")); props.setLook(wlSuccessCondition); fdlSuccessCondition = new FormData(); fdlSuccessCondition.left = new FormAttachment(0, 0); fdlSuccessCondition.right = new FormAttachment(middle, 0); fdlSuccessCondition.top = new FormAttachment(0, margin); wlSuccessCondition.setLayoutData(fdlSuccessCondition); wSuccessCondition = new CCombo(wSuccessOn, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER); wSuccessCondition.add(Messages.getString("JobXMLWellFormed.SuccessWhenAllWorksFine.Label")); wSuccessCondition.add(Messages.getString("JobXMLWellFormed.SuccessWhenAtLeat.Label")); wSuccessCondition.add( Messages.getString("JobXMLWellFormed.SuccessWhenBadFormedLessThan.Label")); wSuccessCondition.select(0); // +1: starts at -1 props.setLook(wSuccessCondition); fdSuccessCondition = new FormData(); fdSuccessCondition.left = new FormAttachment(middle, 0); fdSuccessCondition.top = new FormAttachment(0, margin); fdSuccessCondition.right = new FormAttachment(100, 0); wSuccessCondition.setLayoutData(fdSuccessCondition); wSuccessCondition.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { activeSuccessCondition(); } }); // Success when number of errors less than wlNrErrorsLessThan = new Label(wSuccessOn, SWT.RIGHT); wlNrErrorsLessThan.setText(Messages.getString("JobXMLWellFormed.NrBadFormedLessThan.Label")); props.setLook(wlNrErrorsLessThan); fdlNrErrorsLessThan = new FormData(); fdlNrErrorsLessThan.left = new FormAttachment(0, 0); fdlNrErrorsLessThan.top = new FormAttachment(wSuccessCondition, margin); fdlNrErrorsLessThan.right = new FormAttachment(middle, -margin); wlNrErrorsLessThan.setLayoutData(fdlNrErrorsLessThan); wNrErrorsLessThan = new TextVar( jobMeta, wSuccessOn, SWT.SINGLE | SWT.LEFT | SWT.BORDER, Messages.getString("JobXMLWellFormed.NrBadFormedLessThan.Tooltip")); props.setLook(wNrErrorsLessThan); wNrErrorsLessThan.addModifyListener(lsMod); fdNrErrorsLessThan = new FormData(); fdNrErrorsLessThan.left = new FormAttachment(middle, 0); fdNrErrorsLessThan.top = new FormAttachment(wSuccessCondition, margin); fdNrErrorsLessThan.right = new FormAttachment(100, -margin); wNrErrorsLessThan.setLayoutData(fdNrErrorsLessThan); fdSuccessOn = new FormData(); fdSuccessOn.left = new FormAttachment(0, margin); fdSuccessOn.top = new FormAttachment(0, margin); fdSuccessOn.right = new FormAttachment(100, -margin); wSuccessOn.setLayoutData(fdSuccessOn); // /////////////////////////////////////////////////////////// // / END OF Success ON GROUP // /////////////////////////////////////////////////////////// // fileresult grouping? // //////////////////////// // START OF LOGGING GROUP/// // / wFileResult = new Group(wAdvancedComp, SWT.SHADOW_NONE); props.setLook(wFileResult); wFileResult.setText(Messages.getString("JobXMLWellFormed.FileResult.Group.Label")); FormLayout fileresultgroupLayout = new FormLayout(); fileresultgroupLayout.marginWidth = 10; fileresultgroupLayout.marginHeight = 10; wFileResult.setLayout(fileresultgroupLayout); // Add Filenames to result filenames? wlAddFilenameToResult = new Label(wFileResult, SWT.RIGHT); wlAddFilenameToResult.setText(Messages.getString("JobXMLWellFormed.AddFilenameToResult.Label")); props.setLook(wlAddFilenameToResult); fdlAddFilenameToResult = new FormData(); fdlAddFilenameToResult.left = new FormAttachment(0, 0); fdlAddFilenameToResult.right = new FormAttachment(middle, 0); fdlAddFilenameToResult.top = new FormAttachment(0, margin); wlAddFilenameToResult.setLayoutData(fdlAddFilenameToResult); wAddFilenameToResult = new CCombo(wFileResult, SWT.SINGLE | SWT.READ_ONLY | SWT.BORDER); wAddFilenameToResult.add(Messages.getString("JobXMLWellFormed.AddAllFilenamesToResult.Label")); wAddFilenameToResult.add( Messages.getString("JobXMLWellFormed.AddOnlyWellFormedFilenames.Label")); wAddFilenameToResult.add( Messages.getString("JobXMLWellFormed.AddOnlyBadFormedFilenames.Label")); wAddFilenameToResult.select(0); // +1: starts at -1 props.setLook(wAddFilenameToResult); fdAddFilenameToResult = new FormData(); fdAddFilenameToResult.left = new FormAttachment(middle, 0); fdAddFilenameToResult.top = new FormAttachment(0, margin); fdAddFilenameToResult.right = new FormAttachment(100, 0); wAddFilenameToResult.setLayoutData(fdAddFilenameToResult); wAddFilenameToResult.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) {} }); fdFileResult = new FormData(); fdFileResult.left = new FormAttachment(0, margin); fdFileResult.top = new FormAttachment(wSuccessOn, margin); fdFileResult.right = new FormAttachment(100, -margin); wFileResult.setLayoutData(fdFileResult); // /////////////////////////////////////////////////////////// // / END OF FilesResult GROUP // /////////////////////////////////////////////////////////// fdAdvancedComp = new FormData(); fdAdvancedComp.left = new FormAttachment(0, 0); fdAdvancedComp.top = new FormAttachment(0, 0); fdAdvancedComp.right = new FormAttachment(100, 0); fdAdvancedComp.bottom = new FormAttachment(100, 0); wAdvancedComp.setLayoutData(wAdvancedComp); wAdvancedComp.layout(); wAdvancedTab.setControl(wAdvancedComp); ///////////////////////////////////////////////////////////// /// END OF ADVANCED TAB ///////////////////////////////////////////////////////////// fdTabFolder = new FormData(); fdTabFolder.left = new FormAttachment(0, 0); fdTabFolder.top = new FormAttachment(wName, margin); fdTabFolder.right = new FormAttachment(100, 0); fdTabFolder.bottom = new FormAttachment(100, -50); wTabFolder.setLayoutData(fdTabFolder); wOK = new Button(shell, SWT.PUSH); wOK.setText(Messages.getString("System.Button.OK")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(Messages.getString("System.Button.Cancel")); BaseStepDialog.positionBottomButtons(shell, new Button[] {wOK, wCancel}, margin, wTabFolder); // 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); wSourceFileFolder.addSelectionListener(lsDef); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); getData(); activeSuccessCondition(); activeSuccessCondition(); wTabFolder.setSelection(0); BaseStepDialog.setSize(shell); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return jobEntry; }
public String open() { final Display display = getParent().getDisplay(); shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN); props.setLook(shell); setShellImage(shell, meta); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); int middle = props.getMiddlePct(); int margin = Const.MARGIN; FormData fd; labelStepName = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(0, margin); labelStepName.setLayoutData(fd); textStepName = new Text(shell, SWT.BORDER); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(0, margin); textStepName.setLayoutData(fd); addConnectionLine = addConnectionLine(shell, textStepName, Const.MIDDLE_PCT, margin); labelDimension = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(addConnectionLine, margin); labelDimension.setLayoutData(fd); comboDimension = new Combo(shell, SWT.READ_ONLY); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(addConnectionLine, margin); comboDimension.setLayoutData(fd); labelBaseElementsOnly = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(comboDimension, margin); labelBaseElementsOnly.setLayoutData(fd); buttonBaseElementsOnly = new Button(shell, SWT.CHECK); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(comboDimension, margin); buttonBaseElementsOnly.setLayoutData(fd); ModifyListener lsMod = new ModifyListener() { public void modifyText(ModifyEvent e) { meta.setChanged(); } }; ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo(getLocalizedColumn(0), ColumnInfo.COLUMN_TYPE_TEXT, false, true), new ColumnInfo(getLocalizedColumn(1), ColumnInfo.COLUMN_TYPE_TEXT, false, true), new ColumnInfo(getLocalizedColumn(2), ColumnInfo.COLUMN_TYPE_TEXT, false, false), new ColumnInfo( getLocalizedColumn(3), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {"String", "Number"}, true) }; tableViewFields = new TableView(null, shell, SWT.FILL | SWT.BORDER, colinf, 10, true, lsMod, props); tableViewFields.setSize(477, 280); tableViewFields.setBounds(5, 125, 477, 280); tableViewFields.setReadonly(true); tableViewFields.setSortable(false); fd = new FormData(); fd.left = new FormAttachment(0, margin); fd.top = new FormAttachment(buttonBaseElementsOnly, 3 * margin); fd.right = new FormAttachment(100, -150); fd.bottom = new FormAttachment(100, -50); tableViewFields.setLayoutData(fd); buttonGetLevels = new Button(shell, SWT.NONE); fd = new FormData(); fd.left = new FormAttachment(tableViewFields, margin); fd.top = new FormAttachment(buttonBaseElementsOnly, 3 * margin); fd.right = new FormAttachment(100, 0); buttonGetLevels.setLayoutData(fd); buttonClearLevels = new Button(shell, SWT.NONE); fd = new FormData(); fd.left = new FormAttachment(tableViewFields, margin); fd.top = new FormAttachment(buttonGetLevels, margin); fd.right = new FormAttachment(100, 0); buttonClearLevels.setLayoutData(fd); buttonOk = new Button(shell, SWT.CENTER); buttonCancel = new Button(shell, SWT.CENTER); buttonPreview = new Button(shell, SWT.CENTER); buttonOk.setText(BaseMessages.getString("System.Button.OK")); buttonPreview.setText(BaseMessages.getString("System.Button.Preview")); buttonCancel.setText(BaseMessages.getString("System.Button.Cancel")); setButtonPositions(new Button[] {buttonOk, buttonPreview, buttonCancel}, margin, null); buttonCancel.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { cancel(); } }); buttonPreview.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { preview(); } }); buttonOk.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ok(); } }); buttonClearLevels.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doClearLevels(); } }); buttonGetLevels.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doGetLevels(); } }); comboDimension.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doSelectDimension(); } }); addConnectionLine.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doSelectConnection(false); } }); this.fillLocalizationData(); this.fillStoredData(); this.doSelectConnection(false); props.setLook(tableViewFields); props.setLook(comboDimension); props.setLook(textStepName); props.setLook(buttonClearLevels); props.setLook(buttonGetLevels); props.setLook(labelStepName); props.setLook(labelDimension); props.setLook(buttonOk); props.setLook(buttonCancel); props.setLook(buttonPreview); props.setLook(addConnectionLine); props.setLook(labelBaseElementsOnly); props.setLook(buttonBaseElementsOnly); shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); meta.setChanged(changed); setSize(); shell.open(); PaloCellInputDialog.showPaloLibWarningDialog(shell); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return stepname; }
public String open() { final Display display = getParent().getDisplay(); shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MAX | SWT.MIN); props.setLook(shell); setShellImage(shell, meta); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); int middle = props.getMiddlePct(); int margin = Const.MARGIN; FormData fd; labelStepName = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(0, margin); labelStepName.setLayoutData(fd); textStepName = new Text(shell, SWT.BORDER); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(0, margin); textStepName.setLayoutData(fd); addConnectionLine = addConnectionLine(shell, textStepName, Const.MIDDLE_PCT, margin); labelCube = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(addConnectionLine, margin); labelCube.setLayoutData(fd); comboCube = new Combo(shell, SWT.READ_ONLY); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(addConnectionLine, margin); comboCube.setLayoutData(fd); labelMeasureType = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(comboCube, margin); labelMeasureType.setLayoutData(fd); comboMeasureType = new Combo(shell, SWT.READ_ONLY | SWT.FILL); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(comboCube, margin); comboMeasureType.setLayoutData(fd); labelUpdateMode = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(comboMeasureType, margin); labelUpdateMode.setLayoutData(fd); comboUpdateMode = new Combo(shell, SWT.READ_ONLY | SWT.FILL); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(comboMeasureType, margin); comboUpdateMode.setLayoutData(fd); labelSplashMode = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(comboUpdateMode, margin); labelSplashMode.setLayoutData(fd); comboSplashMode = new Combo(shell, SWT.READ_ONLY | SWT.FILL); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(comboUpdateMode, margin); comboSplashMode.setLayoutData(fd); labelCommitSize = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(comboSplashMode, margin); labelCommitSize.setLayoutData(fd); textCommitSize = new Text(shell, SWT.BORDER); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(comboSplashMode, margin); textCommitSize.setLayoutData(fd); labelClearCube = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(textCommitSize, margin); labelClearCube.setLayoutData(fd); buttonClearCube = new Button(shell, SWT.CHECK); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(textCommitSize, margin); buttonClearCube.setLayoutData(fd); labelEnableDimensionCache = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(buttonClearCube, margin); labelEnableDimensionCache.setLayoutData(fd); buttonEnableDimensionCache = new Button(shell, SWT.CHECK); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(buttonClearCube, margin); buttonEnableDimensionCache.setLayoutData(fd); labelPreloadDimensionCache = new Label(shell, SWT.RIGHT); fd = new FormData(); fd.left = new FormAttachment(0, 0); fd.right = new FormAttachment(middle, -margin); fd.top = new FormAttachment(buttonEnableDimensionCache, margin); labelPreloadDimensionCache.setLayoutData(fd); buttonPreloadDimensionCache = new Button(shell, SWT.CHECK); fd = new FormData(); fd.left = new FormAttachment(middle, 0); fd.right = new FormAttachment(100, 0); fd.top = new FormAttachment(buttonEnableDimensionCache, margin); buttonPreloadDimensionCache.setLayoutData(fd); ModifyListener lsMod = new ModifyListener() { public void modifyText(ModifyEvent e) { meta.setChanged(); } }; colinf = new ColumnInfo[] { new ColumnInfo(getLocalizedColumn(0), ColumnInfo.COLUMN_TYPE_TEXT, false, true), new ColumnInfo( getLocalizedColumn(1), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {}, true), }; tableViewFields = new TableView(null, shell, SWT.NONE | SWT.BORDER, colinf, 10, true, lsMod, props); tableViewFields.setSize(477, 105); tableViewFields.setBounds(5, 250, 477, 105); tableViewFields.setReadonly(true); tableViewFields.setSortable(false); tableViewFields.table.removeAll(); fd = new FormData(); fd.left = new FormAttachment(0, margin); fd.top = new FormAttachment(buttonPreloadDimensionCache, 3 * margin); fd.right = new FormAttachment(100, -150); fd.bottom = new FormAttachment(100, -50); tableViewFields.setLayoutData(fd); buttonGetFields = new Button(shell, SWT.NONE); fd = new FormData(); fd.left = new FormAttachment(tableViewFields, margin); fd.top = new FormAttachment(buttonPreloadDimensionCache, 3 * margin); fd.right = new FormAttachment(100, 0); buttonGetFields.setLayoutData(fd); buttonClearFields = new Button(shell, SWT.NONE); fd = new FormData(); fd.left = new FormAttachment(tableViewFields, margin); fd.top = new FormAttachment(buttonGetFields, margin); fd.right = new FormAttachment(100, 0); buttonClearFields.setLayoutData(fd); buttonOk = new Button(shell, SWT.CENTER); buttonCancel = new Button(shell, SWT.CENTER); buttonOk.setText(BaseMessages.getString("System.Button.OK")); buttonCancel.setText(BaseMessages.getString("System.Button.Cancel")); setButtonPositions(new Button[] {buttonOk, buttonCancel}, margin, null); buttonGetFields.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doGetFields(); } }); buttonClearFields.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doClearFields(); } }); buttonCancel.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { cancel(); } }); buttonOk.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ok(); } }); addConnectionLine.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doSelectConnection(false); } }); comboCube.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { doSelectCube(); } }); buttonEnableDimensionCache.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { buttonPreloadDimensionCache.setEnabled(buttonEnableDimensionCache.getSelection()); } }); this.fillLocalizedData(); this.fillStoredData(); this.doSelectConnection(false); props.setLook(tableViewFields); props.setLook(textStepName); props.setLook(comboCube); props.setLook(labelStepName); props.setLook(labelCube); props.setLook(labelMeasureType); props.setLook(comboMeasureType); props.setLook(labelUpdateMode); props.setLook(comboUpdateMode); props.setLook(labelSplashMode); props.setLook(comboSplashMode); props.setLook(buttonClearFields); props.setLook(buttonGetFields); props.setLook(buttonOk); props.setLook(buttonCancel); props.setLook(addConnectionLine); props.setLook(buttonClearCube); props.setLook(labelClearCube); props.setLook(textCommitSize); props.setLook(labelCommitSize); props.setLook(labelPreloadDimensionCache); props.setLook(buttonPreloadDimensionCache); props.setLook(labelEnableDimensionCache); props.setLook(buttonEnableDimensionCache); shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); meta.setChanged(changed); setSize(); shell.open(); PaloCellInputDialog.showPaloLibWarningDialog(shell); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
public String open() { Shell parent = getParent(); Display display = parent.getDisplay(); shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX); props.setLook(shell); setShellImage(shell, inputMeta); ModifyListener lsMod = new ModifyListener() { public void modifyText(ModifyEvent e) { inputMeta.setChanged(); } }; changed = inputMeta.hasChanged(); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "FixedInputDialog.Shell.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Step name line // wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "FixedInputDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, margin); wlStepname.setLayoutData(fdlStepname); wStepname = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); 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); Control lastControl = wStepname; // Filename... // // The filename browse button // wbbFilename = new Button(shell, SWT.PUSH | SWT.CENTER); props.setLook(wbbFilename); wbbFilename.setText(BaseMessages.getString(PKG, "System.Button.Browse")); wbbFilename.setToolTipText( BaseMessages.getString(PKG, "System.Tooltip.BrowseForFileOrDirAndAdd")); FormData fdbFilename = new FormData(); fdbFilename.top = new FormAttachment(lastControl, margin); fdbFilename.right = new FormAttachment(100, 0); wbbFilename.setLayoutData(fdbFilename); // The field itself... // Label wlFilename = new Label(shell, SWT.RIGHT); wlFilename.setText(BaseMessages.getString(PKG, "FixedInputDialog.Filename.Label")); props.setLook(wlFilename); FormData fdlFilename = new FormData(); fdlFilename.top = new FormAttachment(lastControl, margin); fdlFilename.left = new FormAttachment(0, 0); fdlFilename.right = new FormAttachment(middle, -margin); wlFilename.setLayoutData(fdlFilename); wFilename = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFilename); wFilename.addModifyListener(lsMod); FormData fdFilename = new FormData(); fdFilename.top = new FormAttachment(lastControl, margin); fdFilename.left = new FormAttachment(middle, 0); fdFilename.right = new FormAttachment(wbbFilename, -margin); wFilename.setLayoutData(fdFilename); lastControl = wFilename; // delimiter Label wlLineWidth = new Label(shell, SWT.RIGHT); wlLineWidth.setText(BaseMessages.getString(PKG, "FixedInputDialog.LineWidth.Label")); props.setLook(wlLineWidth); FormData fdlLineWidth = new FormData(); fdlLineWidth.top = new FormAttachment(lastControl, margin); fdlLineWidth.left = new FormAttachment(0, 0); fdlLineWidth.right = new FormAttachment(middle, -margin); wlLineWidth.setLayoutData(fdlLineWidth); wLineWidth = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wLineWidth); wLineWidth.addModifyListener(lsMod); FormData fdLineWidth = new FormData(); fdLineWidth.top = new FormAttachment(lastControl, margin); fdLineWidth.left = new FormAttachment(middle, 0); fdLineWidth.right = new FormAttachment(100, 0); wLineWidth.setLayoutData(fdLineWidth); lastControl = wLineWidth; // delimiter Label wlLineFeedPresent = new Label(shell, SWT.RIGHT); wlLineFeedPresent.setText( BaseMessages.getString(PKG, "FixedInputDialog.LineFeedPresent.Label")); props.setLook(wlLineFeedPresent); FormData fdlLineFeedPresent = new FormData(); fdlLineFeedPresent.top = new FormAttachment(lastControl, margin); fdlLineFeedPresent.left = new FormAttachment(0, 0); fdlLineFeedPresent.right = new FormAttachment(middle, -margin); wlLineFeedPresent.setLayoutData(fdlLineFeedPresent); wLineFeedPresent = new Button(shell, SWT.CHECK); props.setLook(wLineFeedPresent); FormData fdLineFeedPresent = new FormData(); fdLineFeedPresent.top = new FormAttachment(lastControl, margin); fdLineFeedPresent.left = new FormAttachment(middle, 0); fdLineFeedPresent.right = new FormAttachment(100, 0); wLineFeedPresent.setLayoutData(fdLineFeedPresent); lastControl = wLineFeedPresent; // bufferSize // Label wlBufferSize = new Label(shell, SWT.RIGHT); wlBufferSize.setText(BaseMessages.getString(PKG, "FixedInputDialog.BufferSize.Label")); props.setLook(wlBufferSize); FormData fdlBufferSize = new FormData(); fdlBufferSize.top = new FormAttachment(lastControl, margin); fdlBufferSize.left = new FormAttachment(0, 0); fdlBufferSize.right = new FormAttachment(middle, -margin); wlBufferSize.setLayoutData(fdlBufferSize); wBufferSize = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wBufferSize); wBufferSize.addModifyListener(lsMod); FormData fdBufferSize = new FormData(); fdBufferSize.top = new FormAttachment(lastControl, margin); fdBufferSize.left = new FormAttachment(middle, 0); fdBufferSize.right = new FormAttachment(100, 0); wBufferSize.setLayoutData(fdBufferSize); lastControl = wBufferSize; // performingLazyConversion? // Label wlLazyConversion = new Label(shell, SWT.RIGHT); wlLazyConversion.setText(BaseMessages.getString(PKG, "FixedInputDialog.LazyConversion.Label")); props.setLook(wlLazyConversion); FormData fdlLazyConversion = new FormData(); fdlLazyConversion.top = new FormAttachment(lastControl, margin); fdlLazyConversion.left = new FormAttachment(0, 0); fdlLazyConversion.right = new FormAttachment(middle, -margin); wlLazyConversion.setLayoutData(fdlLazyConversion); wLazyConversion = new Button(shell, SWT.CHECK); props.setLook(wLazyConversion); FormData fdLazyConversion = new FormData(); fdLazyConversion.top = new FormAttachment(lastControl, margin); fdLazyConversion.left = new FormAttachment(middle, 0); fdLazyConversion.right = new FormAttachment(100, 0); wLazyConversion.setLayoutData(fdLazyConversion); lastControl = wLazyConversion; // header row? // Label wlHeaderPresent = new Label(shell, SWT.RIGHT); wlHeaderPresent.setText(BaseMessages.getString(PKG, "FixedInputDialog.HeaderPresent.Label")); props.setLook(wlHeaderPresent); FormData fdlHeaderPresent = new FormData(); fdlHeaderPresent.top = new FormAttachment(lastControl, margin); fdlHeaderPresent.left = new FormAttachment(0, 0); fdlHeaderPresent.right = new FormAttachment(middle, -margin); wlHeaderPresent.setLayoutData(fdlHeaderPresent); wHeaderPresent = new Button(shell, SWT.CHECK); props.setLook(wHeaderPresent); FormData fdHeaderPresent = new FormData(); fdHeaderPresent.top = new FormAttachment(lastControl, margin); fdHeaderPresent.left = new FormAttachment(middle, 0); fdHeaderPresent.right = new FormAttachment(100, 0); wHeaderPresent.setLayoutData(fdHeaderPresent); lastControl = wHeaderPresent; // running in parallel? // Label wlRunningInParallel = new Label(shell, SWT.RIGHT); wlRunningInParallel.setText( BaseMessages.getString(PKG, "FixedInputDialog.RunningInParallel.Label")); props.setLook(wlRunningInParallel); FormData fdlRunningInParallel = new FormData(); fdlRunningInParallel.top = new FormAttachment(lastControl, margin); fdlRunningInParallel.left = new FormAttachment(0, 0); fdlRunningInParallel.right = new FormAttachment(middle, -margin); wlRunningInParallel.setLayoutData(fdlRunningInParallel); wRunningInParallel = new Button(shell, SWT.CHECK); props.setLook(wRunningInParallel); FormData fdRunningInParallel = new FormData(); fdRunningInParallel.top = new FormAttachment(lastControl, margin); fdRunningInParallel.left = new FormAttachment(middle, 0); wRunningInParallel.setLayoutData(fdRunningInParallel); // The file type... // wlFileType = new Label(shell, SWT.RIGHT); wlFileType.setText(BaseMessages.getString(PKG, "FixedInputDialog.FileType.Label")); wlFileType.setToolTipText(BaseMessages.getString(PKG, "FixedInputDialog.FileType.ToolTip")); props.setLook(wlFileType); FormData fdlFileType = new FormData(); fdlFileType.top = new FormAttachment(lastControl, margin); fdlFileType.left = new FormAttachment(wRunningInParallel, margin * 2); wlFileType.setLayoutData(fdlFileType); wFileType = new CCombo(shell, SWT.BORDER | SWT.READ_ONLY); wFileType.setToolTipText(BaseMessages.getString(PKG, "FixedInputDialog.FileType.ToolTip")); props.setLook(wFileType); wFileType.setItems(FixedInputMeta.fileTypeDesc); FormData fdFileType = new FormData(); fdFileType.top = new FormAttachment(lastControl, margin); fdFileType.left = new FormAttachment(wlFileType, margin); fdFileType.right = new FormAttachment(100, 0); wFileType.setLayoutData(fdFileType); lastControl = wFileType; wRunningInParallel.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { enableFields(); } }); Label wlEncoding = new Label(shell, SWT.RIGHT); wlEncoding.setText(BaseMessages.getString(PKG, "FixedInputDialog.Encoding.Label")); props.setLook(wlEncoding); FormData fdlEncoding = new FormData(); fdlEncoding.left = new FormAttachment(0, 0); fdlEncoding.top = new FormAttachment(lastControl, margin); fdlEncoding.right = new FormAttachment(middle, -margin); wlEncoding.setLayoutData(fdlEncoding); wEncoding = new ComboVar(transMeta, shell, SWT.BORDER | SWT.READ_ONLY); wEncoding.setEditable(true); props.setLook(wEncoding); wEncoding.addModifyListener(lsMod); FormData fdEncoding = new FormData(); fdEncoding.left = new FormAttachment(middle, 0); fdEncoding.top = new FormAttachment(lastControl, margin); fdEncoding.right = new FormAttachment(100, 0); wEncoding.setLayoutData(fdEncoding); lastControl = wEncoding; 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(); } }); wlAddResult = new Label(shell, SWT.RIGHT); wlAddResult.setText(BaseMessages.getString(PKG, "FixedInputDialog.AddResult.Label")); props.setLook(wlAddResult); fdlAddResult = new FormData(); fdlAddResult.left = new FormAttachment(0, 0); fdlAddResult.top = new FormAttachment(lastControl, margin); fdlAddResult.right = new FormAttachment(middle, -margin); wlAddResult.setLayoutData(fdlAddResult); wAddResult = new Button(shell, SWT.CHECK); props.setLook(wAddResult); wAddResult.setToolTipText(BaseMessages.getString(PKG, "FixedInputDialog.AddResult.Tooltip")); fdAddResult = new FormData(); fdAddResult.left = new FormAttachment(middle, 0); fdAddResult.top = new FormAttachment(lastControl, margin); wAddResult.setLayoutData(fdAddResult); lastControl = wAddResult; // Some buttons first, so that the dialog scales nicely... // wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wPreview = new Button(shell, SWT.PUSH); wPreview.setText(BaseMessages.getString(PKG, "System.Button.Preview")); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "System.Button.GetFields")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); setButtonPositions(new Button[] {wOK, wGet, wPreview, wCancel}, margin, null); // Fields ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.NameColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.TypeColumn.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMetaFactory.getValueMetaNames(), true), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.FormatColumn.Column"), ColumnInfo.COLUMN_TYPE_FORMAT, 2), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.WidthColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.LengthColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.PrecisionColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.CurrencyColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.DecimalColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.GroupColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "FixedInputDialog.TrimColumn.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMetaString.trimTypeDesc), }; colinf[2].setComboValuesSelectionListener( new ComboValuesSelectionListener() { public String[] getComboValues(TableItem tableItem, int rowNr, int colNr) { String[] comboValues = new String[] {}; int type = ValueMetaFactory.getIdForValueMeta(tableItem.getText(colNr - 1)); switch (type) { case ValueMetaInterface.TYPE_DATE: comboValues = Const.getDateFormats(); break; case ValueMetaInterface.TYPE_INTEGER: case ValueMetaInterface.TYPE_BIGNUMBER: case ValueMetaInterface.TYPE_NUMBER: comboValues = Const.getNumberFormats(); break; default: break; } return comboValues; } }); wFields = new TableView(transMeta, shell, SWT.FULL_SELECTION | SWT.MULTI, colinf, 1, lsMod, props); FormData fdFields = new FormData(); fdFields.top = new FormAttachment(lastControl, margin * 2); fdFields.bottom = new FormAttachment(wOK, -margin * 2); fdFields.left = new FormAttachment(0, 0); fdFields.right = new FormAttachment(100, 0); wFields.setLayoutData(fdFields); // Add listeners lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; lsGet = new Listener() { public void handleEvent(Event e) { getFixed(); } }; lsPreview = new Listener() { public void handleEvent(Event e) { preview(); } }; wCancel.addListener(SWT.Selection, lsCancel); wOK.addListener(SWT.Selection, lsOK); wPreview.addListener(SWT.Selection, lsPreview); wGet.addListener(SWT.Selection, lsGet); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); wFilename.addSelectionListener(lsDef); wLineWidth.addSelectionListener(lsDef); wBufferSize.addSelectionListener(lsDef); // Listen to the browse button next to the file name wbbFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(shell, SWT.OPEN); dialog.setFilterExtensions(new String[] {"*.txt", "*"}); if (wFilename.getText() != null) { String fname = transMeta.environmentSubstitute(wFilename.getText()); dialog.setFileName(fname); } dialog.setFilterNames( new String[] { BaseMessages.getString(PKG, "System.FileType.TextFiles"), BaseMessages.getString(PKG, "System.FileType.AllFiles") }); if (dialog.open() != null) { String str = dialog.getFilterPath() + System.getProperty("file.separator") + dialog.getFileName(); wFilename.setText(str); } } }); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); // Set the shell size, based upon previous time... setSize(); getData(); inputMeta.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
public String open() { Shell parent = getParent(); Display display = parent.getDisplay(); shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX); props.setLook(shell); setShellImage(shell, input); ModifyListener lsMod = new ModifyListener() { public void modifyText(ModifyEvent e) { input.setChanged(); } }; backupChanged = input.hasChanged(); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "MergeRowsDialog.Shell.Label")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "MergeRowsDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // Get the previous steps... String[] previousSteps = transMeta.getPrevStepNames(stepname); // Send 'True' data to... wlReference = new Label(shell, SWT.RIGHT); wlReference.setText(BaseMessages.getString(PKG, "MergeRowsDialog.Reference.Label")); props.setLook(wlReference); fdlReference = new FormData(); fdlReference.left = new FormAttachment(0, 0); fdlReference.right = new FormAttachment(middle, -margin); fdlReference.top = new FormAttachment(wStepname, margin); wlReference.setLayoutData(fdlReference); wReference = new CCombo(shell, SWT.BORDER); props.setLook(wReference); if (previousSteps != null) { wReference.setItems(previousSteps); } wReference.addModifyListener(lsMod); fdReference = new FormData(); fdReference.left = new FormAttachment(middle, 0); fdReference.top = new FormAttachment(wStepname, margin); fdReference.right = new FormAttachment(100, 0); wReference.setLayoutData(fdReference); // Send 'False' data to... wlCompare = new Label(shell, SWT.RIGHT); wlCompare.setText(BaseMessages.getString(PKG, "MergeRowsDialog.Compare.Label")); props.setLook(wlCompare); fdlCompare = new FormData(); fdlCompare.left = new FormAttachment(0, 0); fdlCompare.right = new FormAttachment(middle, -margin); fdlCompare.top = new FormAttachment(wReference, margin); wlCompare.setLayoutData(fdlCompare); wCompare = new CCombo(shell, SWT.BORDER); props.setLook(wCompare); if (previousSteps != null) { wCompare.setItems(previousSteps); } wCompare.addModifyListener(lsMod); fdCompare = new FormData(); fdCompare.top = new FormAttachment(wReference, margin); fdCompare.left = new FormAttachment(middle, 0); fdCompare.right = new FormAttachment(100, 0); wCompare.setLayoutData(fdCompare); // Stepname line wlFlagfield = new Label(shell, SWT.RIGHT); wlFlagfield.setText(BaseMessages.getString(PKG, "MergeRowsDialog.FlagField.Label")); props.setLook(wlFlagfield); fdlFlagfield = new FormData(); fdlFlagfield.left = new FormAttachment(0, 0); fdlFlagfield.right = new FormAttachment(middle, -margin); fdlFlagfield.top = new FormAttachment(wCompare, margin); wlFlagfield.setLayoutData(fdlFlagfield); wFlagfield = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wFlagfield); wFlagfield.addModifyListener(lsMod); fdFlagfield = new FormData(); fdFlagfield.top = new FormAttachment(wCompare, margin); fdFlagfield.left = new FormAttachment(middle, 0); fdFlagfield.right = new FormAttachment(100, 0); wFlagfield.setLayoutData(fdFlagfield); // THE KEYS TO MATCH... wlKeys = new Label(shell, SWT.NONE); wlKeys.setText(BaseMessages.getString(PKG, "MergeRowsDialog.Keys.Label")); props.setLook(wlKeys); fdlKeys = new FormData(); fdlKeys.left = new FormAttachment(0, 0); fdlKeys.top = new FormAttachment(wFlagfield, margin); wlKeys.setLayoutData(fdlKeys); int nrKeyRows = (input.getKeyFields() != null ? input.getKeyFields().length : 1); ColumnInfo[] ciKeys = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "MergeRowsDialog.ColumnInfo.KeyField"), ColumnInfo.COLUMN_TYPE_TEXT, false), }; wKeys = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciKeys, nrKeyRows, lsMod, props); fdKeys = new FormData(); fdKeys.top = new FormAttachment(wlKeys, margin); fdKeys.left = new FormAttachment(0, 0); fdKeys.bottom = new FormAttachment(100, -70); fdKeys.right = new FormAttachment(50, -margin); wKeys.setLayoutData(fdKeys); wbKeys = new Button(shell, SWT.PUSH); wbKeys.setText(BaseMessages.getString(PKG, "MergeRowsDialog.KeyFields.Button")); fdbKeys = new FormData(); fdbKeys.top = new FormAttachment(wKeys, margin); fdbKeys.left = new FormAttachment(0, 0); fdbKeys.right = new FormAttachment(50, -margin); wbKeys.setLayoutData(fdbKeys); wbKeys.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { getKeys(); } }); // VALUES TO COMPARE wlValues = new Label(shell, SWT.NONE); wlValues.setText(BaseMessages.getString(PKG, "MergeRowsDialog.Values.Label")); props.setLook(wlValues); fdlValues = new FormData(); fdlValues.left = new FormAttachment(50, 0); fdlValues.top = new FormAttachment(wFlagfield, margin); wlValues.setLayoutData(fdlValues); int nrValueRows = (input.getValueFields() != null ? input.getValueFields().length : 1); ColumnInfo[] ciValues = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "MergeRowsDialog.ColumnInfo.ValueField"), ColumnInfo.COLUMN_TYPE_TEXT, false), }; wValues = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciValues, nrValueRows, lsMod, props); fdValues = new FormData(); fdValues.top = new FormAttachment(wlValues, margin); fdValues.left = new FormAttachment(50, 0); fdValues.bottom = new FormAttachment(100, -70); fdValues.right = new FormAttachment(100, 0); wValues.setLayoutData(fdValues); wbValues = new Button(shell, SWT.PUSH); wbValues.setText(BaseMessages.getString(PKG, "MergeRowsDialog.ValueFields.Button")); fdbValues = new FormData(); fdbValues.top = new FormAttachment(wValues, margin); fdbValues.left = new FormAttachment(50, 0); fdbValues.right = new FormAttachment(100, 0); wbValues.setLayoutData(fdbValues); wbValues.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { getValues(); } }); // Some buttons 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, wbKeys); // 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(); } }; wStepname.addSelectionListener(lsDef); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); // Set the shell size, based upon previous time... setSize(); getData(); input.setChanged(backupChanged); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
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, "XsltDialog.Shell.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Filename line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "XsltDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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, "XsltDialog.GeneralTab.TabTitle")); wGeneralComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wGeneralComp); FormLayout generalLayout = new FormLayout(); generalLayout.marginWidth = 3; generalLayout.marginHeight = 3; wGeneralComp.setLayout(generalLayout); // FieldName to evaluate wlField = new Label(wGeneralComp, SWT.RIGHT); wlField.setText(BaseMessages.getString(PKG, "XsltDialog.Field.Label")); props.setLook(wlField); FormData fdlField = new FormData(); fdlField.left = new FormAttachment(0, 0); fdlField.top = new FormAttachment(wStepname, 2 * margin); fdlField.right = new FormAttachment(middle, -margin); wlField.setLayoutData(fdlField); wField = new CCombo(wGeneralComp, SWT.BORDER | SWT.READ_ONLY); wField.setEditable(true); props.setLook(wField); wField.addModifyListener(lsMod); FormData fdField = new FormData(); fdField.left = new FormAttachment(middle, margin); fdField.top = new FormAttachment(wStepname, 2 * margin); fdField.right = new FormAttachment(100, -margin); wField.setLayoutData(fdField); wField.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); PopulateFields(wField); shell.setCursor(null); busy.dispose(); } }); // Step Ouput field grouping? // //////////////////////// // START OF Output Field GROUP // wOutputField = new Group(wGeneralComp, SWT.SHADOW_NONE); props.setLook(wOutputField); wOutputField.setText(BaseMessages.getString(PKG, "XsltDialog.ResultField.Group.Label")); FormLayout outputfieldgroupLayout = new FormLayout(); outputfieldgroupLayout.marginWidth = 10; outputfieldgroupLayout.marginHeight = 10; wOutputField.setLayout(outputfieldgroupLayout); // Output Fieldame wResultField = new LabelTextVar( transMeta, wOutputField, BaseMessages.getString(PKG, "XsltDialog.ResultField.Label"), BaseMessages.getString(PKG, "XsltDialog.ResultField.Tooltip")); props.setLook(wResultField); wResultField.addModifyListener(lsMod); FormData fdResultField = new FormData(); fdResultField.left = new FormAttachment(0, 0); fdResultField.top = new FormAttachment(wField, margin); fdResultField.right = new FormAttachment(100, 0); wResultField.setLayoutData(fdResultField); fdOutputField = new FormData(); fdOutputField.left = new FormAttachment(0, margin); fdOutputField.top = new FormAttachment(wField, margin); fdOutputField.right = new FormAttachment(100, -margin); wOutputField.setLayoutData(fdOutputField); // /////////////////////////////////////////////////////////// // / END OF Output Field GROUP // /////////////////////////////////////////////////////////// // XSL File grouping // //////////////////////// // START OF XSL File GROUP // wXSLFileGroup = new Group(wGeneralComp, SWT.SHADOW_NONE); props.setLook(wXSLFileGroup); wXSLFileGroup.setText(BaseMessages.getString(PKG, "XsltDialog.XSL.Group.Label")); FormLayout XSLFileGroupLayout = new FormLayout(); XSLFileGroupLayout.marginWidth = 10; XSLFileGroupLayout.marginHeight = 10; wXSLFileGroup.setLayout(XSLFileGroupLayout); // Is XSL source defined in a Field? wlXSLFileField = new Label(wXSLFileGroup, SWT.RIGHT); wlXSLFileField.setText(BaseMessages.getString(PKG, "XsltDialog.XSLFilenameFileField.Label")); props.setLook(wlXSLFileField); fdlXSLFileField = new FormData(); fdlXSLFileField.left = new FormAttachment(0, 0); fdlXSLFileField.top = new FormAttachment(wResultField, margin); fdlXSLFileField.right = new FormAttachment(middle, -margin); wlXSLFileField.setLayoutData(fdlXSLFileField); wXSLFileField = new Button(wXSLFileGroup, SWT.CHECK); props.setLook(wXSLFileField); wXSLFileField.setToolTipText( BaseMessages.getString(PKG, "XsltDialog.XSLFilenameFileField.Tooltip")); fdXSLFileField = new FormData(); fdXSLFileField.left = new FormAttachment(middle, margin); fdXSLFileField.top = new FormAttachment(wResultField, margin); wXSLFileField.setLayoutData(fdXSLFileField); SelectionAdapter lsXslFile = new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { ActivewlXSLField(); input.setChanged(); } }; wXSLFileField.addSelectionListener(lsXslFile); // If XSL File name defined in a Field wlXSLField = new Label(wXSLFileGroup, SWT.RIGHT); wlXSLField.setText(BaseMessages.getString(PKG, "XsltDialog.XSLFilenameField.Label")); props.setLook(wlXSLField); FormData fdlXSLField = new FormData(); fdlXSLField.left = new FormAttachment(0, 0); fdlXSLField.top = new FormAttachment(wXSLFileField, margin); fdlXSLField.right = new FormAttachment(middle, -margin); wlXSLField.setLayoutData(fdlXSLField); wXSLField = new CCombo(wXSLFileGroup, SWT.BORDER | SWT.READ_ONLY); wXSLField.setEditable(true); props.setLook(wXSLField); wXSLField.addModifyListener(lsMod); FormData fdXSLField = new FormData(); fdXSLField.left = new FormAttachment(middle, margin); fdXSLField.top = new FormAttachment(wXSLFileField, margin); fdXSLField.right = new FormAttachment(100, -margin); wXSLField.setLayoutData(fdXSLField); wXSLField.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); PopulateFields(wXSLField); shell.setCursor(null); busy.dispose(); } }); // Is XSL field defined in a Field is a file? wlXSLFieldIsAFile = new Label(wXSLFileGroup, SWT.RIGHT); wlXSLFieldIsAFile.setText(BaseMessages.getString(PKG, "XsltDialog.XSLFieldIsAFile.Label")); props.setLook(wlXSLFieldIsAFile); fdlXSLFieldIsAFile = new FormData(); fdlXSLFieldIsAFile.left = new FormAttachment(0, 0); fdlXSLFieldIsAFile.top = new FormAttachment(wXSLField, margin); fdlXSLFieldIsAFile.right = new FormAttachment(middle, -margin); wlXSLFieldIsAFile.setLayoutData(fdlXSLFieldIsAFile); wXSLFieldIsAFile = new Button(wXSLFileGroup, SWT.CHECK); props.setLook(wXSLFieldIsAFile); wXSLFieldIsAFile.setToolTipText( BaseMessages.getString(PKG, "XsltDialog.XSLFieldIsAFile.Tooltip")); fdXSLFieldIsAFile = new FormData(); fdXSLFieldIsAFile.left = new FormAttachment(middle, margin); fdXSLFieldIsAFile.top = new FormAttachment(wXSLField, margin); wXSLFieldIsAFile.setLayoutData(fdXSLFieldIsAFile); wXSLFieldIsAFile.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { input.setChanged(); } }); // XSL Filename wlFilename = new Label(wXSLFileGroup, SWT.RIGHT); wlFilename.setText(BaseMessages.getString(PKG, "XsltDialog.XSLFilename.Label")); props.setLook(wlFilename); FormData fdlXSLFilename = new FormData(); fdlXSLFilename.left = new FormAttachment(0, 0); fdlXSLFilename.top = new FormAttachment(wXSLFieldIsAFile, 2 * margin); fdlXSLFilename.right = new FormAttachment(middle, -margin); wlFilename.setLayoutData(fdlXSLFilename); wbbFilename = new Button(wXSLFileGroup, SWT.PUSH | SWT.CENTER); props.setLook(wbbFilename); wbbFilename.setText(BaseMessages.getString(PKG, "XsltDialog.FilenameBrowse.Button")); wbbFilename.setToolTipText( BaseMessages.getString(PKG, "System.Tooltip.BrowseForFileOrDirAndAdd")); FormData fdbXSLFilename = new FormData(); fdbXSLFilename.right = new FormAttachment(100, 0); fdbXSLFilename.top = new FormAttachment(wXSLFieldIsAFile, 2 * margin); wbbFilename.setLayoutData(fdbXSLFilename); wXSLFilename = new TextVar(transMeta, wXSLFileGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wXSLFilename); wXSLFilename.addModifyListener(lsMod); FormData fdXSLFilename = new FormData(); fdXSLFilename.left = new FormAttachment(middle, margin); fdXSLFilename.right = new FormAttachment(wbbFilename, -margin); fdXSLFilename.top = new FormAttachment(wXSLFieldIsAFile, 2 * margin); wXSLFilename.setLayoutData(fdXSLFilename); // XSLTFactory wlXSLTFactory = new Label(wXSLFileGroup, SWT.RIGHT); wlXSLTFactory.setText(BaseMessages.getString(PKG, "XsltDialog.XSLTFactory.Label")); props.setLook(wlXSLTFactory); fdlXSLTFactory = new FormData(); fdlXSLTFactory.left = new FormAttachment(0, 0); fdlXSLTFactory.top = new FormAttachment(wXSLFilename, 2 * margin); fdlXSLTFactory.right = new FormAttachment(middle, -margin); wlXSLTFactory.setLayoutData(fdlXSLTFactory); wXSLTFactory = new CCombo(wXSLFileGroup, SWT.BORDER | SWT.READ_ONLY); wXSLTFactory.setEditable(true); props.setLook(wXSLTFactory); wXSLTFactory.addModifyListener(lsMod); fdXSLTFactory = new FormData(); fdXSLTFactory.left = new FormAttachment(middle, margin); fdXSLTFactory.top = new FormAttachment(wXSLFilename, 2 * margin); fdXSLTFactory.right = new FormAttachment(100, 0); wXSLTFactory.setLayoutData(fdXSLTFactory); wXSLTFactory.add("JAXP"); wXSLTFactory.add("SAXON"); fdXSLFileGroup = new FormData(); fdXSLFileGroup.left = new FormAttachment(0, margin); fdXSLFileGroup.top = new FormAttachment(wOutputField, margin); fdXSLFileGroup.right = new FormAttachment(100, -margin); wXSLFileGroup.setLayoutData(fdXSLFileGroup); // /////////////////////////////////////////////////////////// // / END OF XSL File GROUP // /////////////////////////////////////////////////////////// fdGeneralComp = new FormData(); fdGeneralComp.left = new FormAttachment(0, 0); fdGeneralComp.top = new FormAttachment(wField, 0); fdGeneralComp.right = new FormAttachment(100, 0); fdGeneralComp.bottom = new FormAttachment(100, 0); wGeneralComp.setLayoutData(fdGeneralComp); wGeneralComp.layout(); wGeneralTab.setControl(wGeneralComp); props.setLook(wGeneralComp); // /////////////////////////////////////////////////////////// // / END OF GENERAL TAB // /////////////////////////////////////////////////////////// // Additional tab... // wAdditionalTab = new CTabItem(wTabFolder, SWT.NONE); wAdditionalTab.setText(BaseMessages.getString(PKG, "XsltDialog.AdvancedTab.Title")); FormLayout addLayout = new FormLayout(); addLayout.marginWidth = Const.FORM_MARGIN; addLayout.marginHeight = Const.FORM_MARGIN; wAdditionalComp = new Composite(wTabFolder, SWT.NONE); wAdditionalComp.setLayout(addLayout); props.setLook(wAdditionalComp); // Output properties wlOutputProperties = new Label(wAdditionalComp, SWT.NONE); wlOutputProperties.setText(BaseMessages.getString(PKG, "XsltDialog.OutputProperties.Label")); props.setLook(wlOutputProperties); fdlOutputProperties = new FormData(); fdlOutputProperties.left = new FormAttachment(0, 0); fdlOutputProperties.top = new FormAttachment(0, margin); wlOutputProperties.setLayoutData(fdlOutputProperties); final int OutputPropertiesRows = input.getOutputPropertyName().length; colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "XsltDialog.ColumnInfo.OutputProperties.Name"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), new ColumnInfo( BaseMessages.getString(PKG, "XsltDialog.ColumnInfo.OutputProperties.Value"), ColumnInfo.COLUMN_TYPE_TEXT, false), }; colinf[0].setComboValues(XsltMeta.outputProperties); colinf[1].setUsingVariables(true); wOutputProperties = new TableView( transMeta, wAdditionalComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, OutputPropertiesRows, lsMod, props); fdOutputProperties = new FormData(); fdOutputProperties.left = new FormAttachment(0, 0); fdOutputProperties.top = new FormAttachment(wlOutputProperties, margin); fdOutputProperties.right = new FormAttachment(100, -margin); fdOutputProperties.bottom = new FormAttachment(wlOutputProperties, 200); wOutputProperties.setLayoutData(fdOutputProperties); // Parameters wlFields = new Label(wAdditionalComp, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "XsltDialog.Parameters.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.top = new FormAttachment(wOutputProperties, 2 * margin); wlFields.setLayoutData(fdlFields); wGet = new Button(wAdditionalComp, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "XsltDialog.GetFields.Button")); FormData fdGet = new FormData(); fdGet.top = new FormAttachment(wlFields, margin); fdGet.right = new FormAttachment(100, 0); wGet.setLayoutData(fdGet); final int FieldsRows = input.getParameterField().length; colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "XsltDialog.ColumnInfo.Name"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), new ColumnInfo( BaseMessages.getString(PKG, "XsltDialog.ColumnInfo.Parameter"), ColumnInfo.COLUMN_TYPE_TEXT, false), }; colinf[1].setUsingVariables(true); wFields = new TableView( transMeta, wAdditionalComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(wGet, -margin); fdFields.bottom = new FormAttachment(100, -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(); fdAdditionalComp = new FormData(); fdAdditionalComp.left = new FormAttachment(0, 0); fdAdditionalComp.top = new FormAttachment(wStepname, margin); fdAdditionalComp.right = new FormAttachment(100, 0); fdAdditionalComp.bottom = new FormAttachment(100, 0); wAdditionalComp.setLayoutData(fdAdditionalComp); wAdditionalComp.layout(); wAdditionalTab.setControl(wAdditionalComp); // ////// END of Additional Tab FormData 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 lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsGet = new Listener() { public void handleEvent(Event e) { get(); } }; lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; wCancel.addListener(SWT.Selection, lsCancel); wGet.addListener(SWT.Selection, lsGet); wOK.addListener(SWT.Selection, lsOK); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); // Whenever something changes, set the tooltip to the expanded version // of the filename: wXSLFilename.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { wXSLFilename.setToolTipText(transMeta.environmentSubstitute(wXSLFilename.getText())); } }); // Listen to the Browse... button wbbFilename.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(shell, SWT.OPEN); dialog.setFilterExtensions(new String[] {"*.xsl;*.XSL", "*.xslt;.*XSLT", "*"}); if (wXSLFilename.getText() != null) { String fname = transMeta.environmentSubstitute(wXSLFilename.getText()); dialog.setFileName(fname); } dialog.setFilterNames( new String[] { BaseMessages.getString(PKG, "XsltDialog.FileType"), BaseMessages.getString(PKG, "System.FileType.AllFiles") }); if (dialog.open() != null) { String str = dialog.getFilterPath() + System.getProperty("file.separator") + dialog.getFileName(); wXSLFilename.setText(str); } } }); wTabFolder.setSelection(0); // Set the shell size, based upon previous time... setSize(); getData(); ActivewlXSLField(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
public String open() { Shell parent = getParent(); Display display = parent.getDisplay(); shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX); props.setLook(shell); setShellImage(shell, input); lsMod = new ModifyListener() { public void modifyText(ModifyEvent e) { input.setChanged(); } }; changed = input.hasChanged(); oldlsMod = lsMod; FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; middle = props.getMiddlePct(); margin = Const.MARGIN; fieldsRows = input.getFields().length; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "IfNullDialog.Shell.Title")); // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "IfNullDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // /////////////////////////////// // START OF All Fields GROUP // // /////////////////////////////// wAllFields = new Group(shell, SWT.SHADOW_NONE); props.setLook(wAllFields); wAllFields.setText(BaseMessages.getString(PKG, "IfNullDialog.AllFields.Label")); FormLayout AllFieldsgroupLayout = new FormLayout(); AllFieldsgroupLayout.marginWidth = 10; AllFieldsgroupLayout.marginHeight = 10; wAllFields.setLayout(AllFieldsgroupLayout); // Replace by Value wlReplaceByValue = new Label(wAllFields, SWT.RIGHT); wlReplaceByValue.setText(BaseMessages.getString(PKG, "IfNullDialog.ReplaceByValue.Label")); props.setLook(wlReplaceByValue); fdlReplaceByValue = new FormData(); fdlReplaceByValue.left = new FormAttachment(0, 0); fdlReplaceByValue.right = new FormAttachment(middle, -margin); fdlReplaceByValue.top = new FormAttachment(wStepname, margin * 2); wlReplaceByValue.setLayoutData(fdlReplaceByValue); wReplaceByValue = new TextVar(transMeta, wAllFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wReplaceByValue.setToolTipText( BaseMessages.getString(PKG, "IfNullDialog.ReplaceByValue.Tooltip")); props.setLook(wReplaceByValue); fdReplaceByValue = new FormData(); fdReplaceByValue.left = new FormAttachment(middle, 0); fdReplaceByValue.top = new FormAttachment(wStepname, 2 * margin); fdReplaceByValue.right = new FormAttachment(100, 0); wReplaceByValue.setLayoutData(fdReplaceByValue); // SetEmptyStringAll line wlSetEmptyStringAll = new Label(wAllFields, SWT.RIGHT); wlSetEmptyStringAll.setText( BaseMessages.getString(PKG, "IfNullDialog.SetEmptyStringAll.Label")); props.setLook(wlSetEmptyStringAll); fdlSetEmptyStringAll = new FormData(); fdlSetEmptyStringAll.left = new FormAttachment(0, 0); fdlSetEmptyStringAll.top = new FormAttachment(wReplaceByValue, margin); fdlSetEmptyStringAll.right = new FormAttachment(middle, -margin); wlSetEmptyStringAll.setLayoutData(fdlSetEmptyStringAll); wSetEmptyStringAll = new Button(wAllFields, SWT.CHECK); wSetEmptyStringAll.setToolTipText( BaseMessages.getString(PKG, "IfNullDialog.SetEmptyStringAll.Tooltip")); props.setLook(wSetEmptyStringAll); fdSetEmptyStringAll = new FormData(); fdSetEmptyStringAll.left = new FormAttachment(middle, 0); fdSetEmptyStringAll.top = new FormAttachment(wReplaceByValue, margin); fdSetEmptyStringAll.right = new FormAttachment(100, 0); wSetEmptyStringAll.setLayoutData(fdSetEmptyStringAll); wSetEmptyStringAll.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { input.setChanged(); enableSetEmptyStringAll(); } }); wlMask = new Label(wAllFields, SWT.RIGHT); wlMask.setText(BaseMessages.getString(PKG, "IfNullDialog.Mask.Label")); props.setLook(wlMask); fdlMask = new FormData(); fdlMask.left = new FormAttachment(0, 0); fdlMask.top = new FormAttachment(wSetEmptyStringAll, margin); fdlMask.right = new FormAttachment(middle, -margin); wlMask.setLayoutData(fdlMask); wMask = new CCombo(wAllFields, SWT.BORDER | SWT.READ_ONLY); wMask.setEditable(true); wMask.setItems(Const.getDateFormats()); props.setLook(wMask); wMask.addModifyListener(lsMod); fdMask = new FormData(); fdMask.left = new FormAttachment(middle, 0); fdMask.top = new FormAttachment(wSetEmptyStringAll, margin); fdMask.right = new FormAttachment(100, 0); wMask.setLayoutData(fdMask); fdAllFields = new FormData(); fdAllFields.left = new FormAttachment(0, margin); fdAllFields.top = new FormAttachment(wStepname, margin); fdAllFields.right = new FormAttachment(100, -margin); wAllFields.setLayoutData(fdAllFields); // /////////////////////////////////////////////////////////// // / END OF All Fields GROUP // /////////////////////////////////////////////////////////// // Select fields? wlSelectFields = new Label(shell, SWT.RIGHT); wlSelectFields.setText(BaseMessages.getString(PKG, "IfNullDialog.SelectFields.Label")); props.setLook(wlSelectFields); fdlSelectFields = new FormData(); fdlSelectFields.left = new FormAttachment(0, 0); fdlSelectFields.top = new FormAttachment(wAllFields, margin); fdlSelectFields.right = new FormAttachment(middle, -margin); wlSelectFields.setLayoutData(fdlSelectFields); wSelectFields = new Button(shell, SWT.CHECK); wSelectFields.setToolTipText(BaseMessages.getString(PKG, "IfNullDialog.SelectFields.Tooltip")); props.setLook(wSelectFields); fdSelectFields = new FormData(); fdSelectFields.left = new FormAttachment(middle, 0); fdSelectFields.top = new FormAttachment(wAllFields, margin); fdSelectFields.right = new FormAttachment(100, 0); wSelectFields.setLayoutData(fdSelectFields); // Select type? wlSelectValuesType = new Label(shell, SWT.RIGHT); wlSelectValuesType.setText(BaseMessages.getString(PKG, "IfNullDialog.SelectValuesType.Label")); props.setLook(wlSelectValuesType); fdlSelectValuesType = new FormData(); fdlSelectValuesType.left = new FormAttachment(0, 0); fdlSelectValuesType.top = new FormAttachment(wSelectFields, margin); fdlSelectValuesType.right = new FormAttachment(middle, -margin); wlSelectValuesType.setLayoutData(fdlSelectValuesType); wSelectValuesType = new Button(shell, SWT.CHECK); wSelectValuesType.setToolTipText( BaseMessages.getString(PKG, "IfNullDialog.SelectValuesType.Tooltip")); props.setLook(wSelectValuesType); fdSelectValuesType = new FormData(); fdSelectValuesType.left = new FormAttachment(middle, 0); fdSelectValuesType.top = new FormAttachment(wSelectFields, margin); fdSelectValuesType.right = new FormAttachment(100, 0); wSelectValuesType.setLayoutData(fdSelectValuesType); wlValueTypes = new Label(shell, SWT.NONE); wlValueTypes.setText(BaseMessages.getString(PKG, "IfNullDialog.ValueTypes.Label")); props.setLook(wlValueTypes); fdlValueTypes = new FormData(); fdlValueTypes.left = new FormAttachment(0, 0); fdlValueTypes.top = new FormAttachment(wSelectValuesType, margin); wlValueTypes.setLayoutData(fdlValueTypes); int valueTypesRows = input.getValueTypes().length; int FieldsCols = 4; ColumnInfo[] colval = new ColumnInfo[FieldsCols]; colval[0] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.ValueType.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMetaInterface.typeCodes); colval[1] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.Value.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false); colval[2] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.Value.ConversionMask"), ColumnInfo.COLUMN_TYPE_CCOMBO, Const.getDateFormats()); colval[3] = new ColumnInfo( BaseMessages.getString(PKG, "IfNullDialog.Value.SetEmptyString"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] { BaseMessages.getString(PKG, "System.Combo.Yes"), BaseMessages.getString(PKG, "System.Combo.No") }); colval[1].setUsingVariables(true); wValueTypes = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colval, valueTypesRows, oldlsMod, props); fdValueTypes = new FormData(); fdValueTypes.left = new FormAttachment(0, 0); fdValueTypes.top = new FormAttachment(wlValueTypes, margin); fdValueTypes.right = new FormAttachment(100, 0); fdValueTypes.bottom = new FormAttachment(wlValueTypes, 190); wValueTypes.setLayoutData(fdValueTypes); getFirstData(); wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "System.Button.GetFields")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); setButtonPositions(new Button[] {wOK, wGet, wCancel}, margin, null); addFields(); wSelectValuesType.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { activeSelectValuesType(); input.setChanged(); } }); wSelectFields.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { activeSelectFields(); input.setChanged(); } }); // Add listeners lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsGet = new Listener() { public void handleEvent(Event e) { get(); } }; lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; wCancel.addListener(SWT.Selection, lsCancel); wOK.addListener(SWT.Selection, lsOK); wGet.addListener(SWT.Selection, lsGet); 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(); } }); // Set the shell size, based upon previous time... setSize(); getData(); enableSetEmptyStringAll(); // setComboValues(); activeSelectFields(); activeSelectValuesType(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
private Control addFieldSelection(Control lastControl) { // The fields table Label wlFields = new Label(shell, SWT.NONE); wlFields.setText( BaseMessages.getString(PKG, "IngresVectorWiseLoaderDialog.InsertFields.Label")); props.setLook(wlFields); FormData fdlUpIns = new FormData(); fdlUpIns.left = new FormAttachment(0, 0); fdlUpIns.top = new FormAttachment(lastControl, 2 * margin); wlFields.setLayoutData(fdlUpIns); int tableCols = 2; int UpInsRows = (input.getFieldStream() != null ? input.getFieldStream().length : 1); ColumnInfo[] ciFields = new ColumnInfo[tableCols]; ciFields[0] = new ColumnInfo( BaseMessages.getString(PKG, "IngresVectorWiseLoaderDialog.ColumnInfo.TableField"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); ciFields[1] = new ColumnInfo( BaseMessages.getString(PKG, "IngresVectorWiseLoaderDialog.ColumnInfo.StreamField"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); tableFieldColumns.add(ciFields[0]); wFields = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciFields, UpInsRows, lsMod, props); Button wGetFields = new Button(shell, SWT.PUSH); wGetFields.setText( BaseMessages.getString(PKG, "IngresVectorWiseLoaderDialog.GetFields.Button")); FormData fdGetFields = new FormData(); fdGetFields.top = new FormAttachment(wlFields, margin); fdGetFields.right = new FormAttachment(100, 0); wGetFields.setLayoutData(fdGetFields); Button wDoMapping = new Button(shell, SWT.PUSH); wDoMapping.setText( BaseMessages.getString(PKG, "IngresVectorWiseLoaderDialog.DoMapping.Button")); FormData fdDoMapping = new FormData(); fdDoMapping.top = new FormAttachment(wGetFields, margin); fdDoMapping.right = new FormAttachment(100, 0); wDoMapping.setLayoutData(fdDoMapping); wGetFields.addListener( SWT.Selection, new Listener() { public void handleEvent(Event e) { get(); } }); wDoMapping.addListener( SWT.Selection, new Listener() { public void handleEvent(Event arg0) { generateMappings(); } }); FormData fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(wDoMapping, -margin); fdFields.bottom = new FormAttachment(wOK, -2 * margin); wFields.setLayoutData(fdFields); return wFields; }
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) { changedInDialog = true; 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, "ExecSQLDialog.Shell.Label")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "ExecSQLDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // Connection line wConnection = addConnectionLine(shell, wStepname, middle, margin); if (input.getDatabaseMeta() == null && transMeta.nrDatabases() == 1) wConnection.select(0); wConnection.addModifyListener(lsMod); // Table line... wlSQL = new Label(shell, SWT.LEFT); wlSQL.setText(BaseMessages.getString(PKG, "ExecSQLDialog.SQL.Label")); props.setLook(wlSQL); fdlSQL = new FormData(); fdlSQL.left = new FormAttachment(0, 0); fdlSQL.top = new FormAttachment(wConnection, margin * 2); wlSQL.setLayoutData(fdlSQL); wSQL = new StyledTextComp( transMeta, shell, SWT.MULTI | SWT.LEFT | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL, ""); props.setLook(wSQL, Props.WIDGET_STYLE_FIXED); wSQL.addModifyListener(lsMod); wSQL.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent arg0) { setPosition(); } }); wSQL.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent e) { setPosition(); } public void keyReleased(KeyEvent e) { setPosition(); } }); wSQL.addFocusListener( new FocusAdapter() { public void focusGained(FocusEvent e) { setPosition(); } public void focusLost(FocusEvent e) { setPosition(); } }); wSQL.addMouseListener( new MouseAdapter() { public void mouseDoubleClick(MouseEvent e) { setPosition(); } public void mouseDown(MouseEvent e) { setPosition(); } public void mouseUp(MouseEvent e) { setPosition(); } }); // Text Higlighting wSQL.addLineStyleListener(new SQLValuesHighlight()); // Some buttons // wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "ExecSQLDialog.GetFields.Button")); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); setButtonPositions(new Button[] {wOK, wCancel, wGet}, margin, null); // Build it up from the bottom up... // Read field // wlReadField = new Label(shell, SWT.RIGHT); wlReadField.setText(BaseMessages.getString(PKG, "ExecSQLDialog.ReadField.Label")); props.setLook(wlReadField); fdlReadField = new FormData(); fdlReadField.left = new FormAttachment(middle, margin); fdlReadField.right = new FormAttachment(middle * 2, -margin); fdlReadField.bottom = new FormAttachment(wOK, -3 * margin); wlReadField.setLayoutData(fdlReadField); wReadField = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wReadField); wReadField.addModifyListener(lsMod); fdReadField = new FormData(); fdReadField.left = new FormAttachment(middle * 2, 0); fdReadField.bottom = new FormAttachment(wOK, -3 * margin); fdReadField.right = new FormAttachment(100, 0); wReadField.setLayoutData(fdReadField); // Delete field // wlDeleteField = new Label(shell, SWT.RIGHT); wlDeleteField.setText(BaseMessages.getString(PKG, "ExecSQLDialog.DeleteField.Label")); props.setLook(wlDeleteField); fdlDeleteField = new FormData(); fdlDeleteField.left = new FormAttachment(middle, margin); fdlDeleteField.right = new FormAttachment(middle * 2, -margin); fdlDeleteField.bottom = new FormAttachment(wReadField, -margin); wlDeleteField.setLayoutData(fdlDeleteField); wDeleteField = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wDeleteField); wDeleteField.addModifyListener(lsMod); fdDeleteField = new FormData(); fdDeleteField.left = new FormAttachment(middle * 2, 0); fdDeleteField.bottom = new FormAttachment(wReadField, -margin); fdDeleteField.right = new FormAttachment(100, 0); wDeleteField.setLayoutData(fdDeleteField); // Update field // wlUpdateField = new Label(shell, SWT.RIGHT); wlUpdateField.setText(BaseMessages.getString(PKG, "ExecSQLDialog.UpdateField.Label")); props.setLook(wlUpdateField); fdlUpdateField = new FormData(); fdlUpdateField.left = new FormAttachment(middle, margin); fdlUpdateField.right = new FormAttachment(middle * 2, -margin); fdlUpdateField.bottom = new FormAttachment(wDeleteField, -margin); wlUpdateField.setLayoutData(fdlUpdateField); wUpdateField = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wUpdateField); wUpdateField.addModifyListener(lsMod); fdUpdateField = new FormData(); fdUpdateField.left = new FormAttachment(middle * 2, 0); fdUpdateField.bottom = new FormAttachment(wDeleteField, -margin); fdUpdateField.right = new FormAttachment(100, 0); wUpdateField.setLayoutData(fdUpdateField); // insert field // wlInsertField = new Label(shell, SWT.RIGHT); wlInsertField.setText(BaseMessages.getString(PKG, "ExecSQLDialog.InsertField.Label")); props.setLook(wlInsertField); fdlInsertField = new FormData(); fdlInsertField.left = new FormAttachment(middle, margin); fdlInsertField.right = new FormAttachment(middle * 2, -margin); fdlInsertField.bottom = new FormAttachment(wUpdateField, -margin); wlInsertField.setLayoutData(fdlInsertField); wInsertField = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wInsertField); wInsertField.addModifyListener(lsMod); fdInsertField = new FormData(); fdInsertField.left = new FormAttachment(middle * 2, 0); fdInsertField.bottom = new FormAttachment(wUpdateField, -margin); fdInsertField.right = new FormAttachment(100, 0); wInsertField.setLayoutData(fdInsertField); // Setup the "Parameters" label // wlFields = new Label(shell, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "ExecSQLDialog.Fields.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.right = new FormAttachment(middle, 0); fdlFields.bottom = new FormAttachment(wInsertField, -25); wlFields.setLayoutData(fdlFields); // Parameter fields... // final int FieldsRows = input.getArguments().length; colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "ExecSQLDialog.ColumnInfo.ArgumentFieldname"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), }; wFields = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(middle, 0); fdFields.bottom = new FormAttachment(wOK, -3 * margin); wFields.setLayoutData(fdFields); // For the "execute for each row" and "variable substitution" labels, // find their maximum width // and use that in the alignment // wlEachRow = new Label(shell, SWT.RIGHT); wlEachRow.setText(BaseMessages.getString(PKG, "ExecSQLDialog.EachRow.Label")); wlEachRow.pack(); wlSingleStatement = new Label(shell, SWT.RIGHT); wlSingleStatement.setText(BaseMessages.getString(PKG, "ExecSQLDialog.SingleStatement.Label")); wlSingleStatement.pack(); wlVariables = new Label(shell, SWT.RIGHT); wlVariables.setText(BaseMessages.getString(PKG, "ExecSQLDialog.ReplaceVariables")); wlVariables.pack(); wlQuoteString = new Label(shell, SWT.RIGHT); wlQuoteString.setText(BaseMessages.getString(PKG, "ExecSQLDialog.QuoteString.Label")); wlQuoteString.pack(); Rectangle rEachRow = wlEachRow.getBounds(); Rectangle rSingleStatement = wlSingleStatement.getBounds(); Rectangle rVariables = wlVariables.getBounds(); Rectangle rQuoteString = wlQuoteString.getBounds(); int width = Math.max( Math.max(Math.max(rEachRow.width, rSingleStatement.width), rVariables.width), rQuoteString.width) + 30; // Setup the "Quote String" label and checkbox // props.setLook(wlQuoteString); fdlQuoteString = new FormData(); fdlQuoteString.left = new FormAttachment(0, margin); fdlQuoteString.right = new FormAttachment(0, width); fdlQuoteString.bottom = new FormAttachment(wlFields, -2 * margin); wlQuoteString.setLayoutData(fdlQuoteString); wQuoteString = new Button(shell, SWT.CHECK); props.setLook(wQuoteString); wQuoteString.setToolTipText(BaseMessages.getString(PKG, "ExecSQLDialog.QuoteString.Tooltip")); fdQuoteString = new FormData(); fdQuoteString.left = new FormAttachment(wlQuoteString, margin); fdQuoteString.bottom = new FormAttachment(wlFields, -2 * margin); fdQuoteString.right = new FormAttachment(middle, 0); wQuoteString.setLayoutData(fdQuoteString); // Setup the "Bind parameters" label and checkbox // wlSetParams = new Label(this.shell, SWT.RIGHT); wlSetParams.setText(BaseMessages.getString(PKG, "ExecSQLDialog.SetParams.Label")); props.setLook(this.wlSetParams); fdlSetParams = new FormData(); fdlSetParams.left = new FormAttachment(0, margin); fdlSetParams.bottom = new FormAttachment(wQuoteString, -margin); fdlSetParams.right = new FormAttachment(0, width); wlSetParams.setLayoutData(this.fdlSetParams); wSetParams = new Button(shell, SWT.CHECK); props.setLook(this.wSetParams); wSetParams.setToolTipText(BaseMessages.getString(PKG, "ExecSQLDialog.SetParams.Tooltip")); fdSetParams = new FormData(); fdSetParams.left = new FormAttachment(wlSetParams, margin); fdSetParams.bottom = new FormAttachment(wQuoteString, -margin); fdSetParams.right = new FormAttachment(middle, 0); wSetParams.setLayoutData(fdSetParams); wSetParams.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { setExecutedSetParams(); input.setChanged(); } }); // Setup the "variable substitution" label and checkbox // props.setLook(wlVariables); fdlVariables = new FormData(); fdlVariables.left = new FormAttachment(0, margin); fdlVariables.right = new FormAttachment(0, width); fdlVariables.bottom = new FormAttachment(wSetParams, -margin); wlVariables.setLayoutData(fdlVariables); wVariables = new Button(shell, SWT.CHECK); props.setLook(wVariables); fdVariables = new FormData(); fdVariables.left = new FormAttachment(wlVariables, margin); fdVariables.bottom = new FormAttachment(wSetParams, -margin); fdVariables.right = new FormAttachment(middle, 0); wVariables.setLayoutData(fdVariables); // wVariables.addSelectionListener(new SelectionAdapter() { public void // widgetSelected(SelectionEvent arg0) { setSQLToolTip(); } }); // Setup the "Single statement" label and checkbox // props.setLook(wlSingleStatement); FormData fdlSingleStatement = new FormData(); fdlSingleStatement.left = new FormAttachment(0, margin); fdlSingleStatement.right = new FormAttachment(0, width); fdlSingleStatement.bottom = new FormAttachment(wVariables, -margin); wlSingleStatement.setLayoutData(fdlSingleStatement); wSingleStatement = new Button(shell, SWT.CHECK); props.setLook(wSingleStatement); FormData fdSingleStatement = new FormData(); fdSingleStatement.left = new FormAttachment(wlEachRow, margin); fdSingleStatement.bottom = new FormAttachment(wVariables, -margin); fdSingleStatement.right = new FormAttachment(middle, 0); wSingleStatement.setLayoutData(fdSingleStatement); // Setup the "execute for each row" label and checkbox // props.setLook(wlEachRow); FormData fdlEachRow = new FormData(); fdlEachRow.left = new FormAttachment(0, margin); fdlEachRow.right = new FormAttachment(0, width); fdlEachRow.bottom = new FormAttachment(wSingleStatement, -margin); wlEachRow.setLayoutData(fdlEachRow); wEachRow = new Button(shell, SWT.CHECK); props.setLook(wEachRow); FormData fdEachRow = new FormData(); fdEachRow.left = new FormAttachment(wlEachRow, margin); fdEachRow.bottom = new FormAttachment(wSingleStatement, -margin); fdEachRow.right = new FormAttachment(middle, 0); wEachRow.setLayoutData(fdEachRow); // Position label under the SQL editor // wlPosition = new Label(shell, SWT.NONE); props.setLook(wlPosition); fdlPosition = new FormData(); fdlPosition.left = new FormAttachment(0, 0); fdlPosition.right = new FormAttachment(100, 0); fdlPosition.bottom = new FormAttachment( wEachRow, -2 * margin); // 2 times since we deal with bottom instead of top wlPosition.setLayoutData(fdlPosition); // Finally, the SQL editor takes up all other space between the position and the SQL label // fdSQL = new FormData(); fdSQL.left = new FormAttachment(0, 0); fdSQL.top = new FormAttachment(wlSQL, margin); fdSQL.right = new FormAttachment(100, -2 * margin); fdSQL.bottom = new FormAttachment(wlPosition, -margin); wSQL.setLayoutData(fdSQL); // 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(); // Add listeners // lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsGet = new Listener() { public void handleEvent(Event e) { get(); } }; lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; wCancel.addListener(SWT.Selection, lsCancel); wGet.addListener(SWT.Selection, lsGet); wOK.addListener(SWT.Selection, lsOK); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); wEachRow.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ExecSQLDialog.this.setExecutedEachInputRow(); ExecSQLDialog.this.input.setChanged(); } }); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { checkCancel(e); } }); getData(); setExecutedEachInputRow(); changedInDialog = false; // for prompting if dialog is simply closed input.setChanged(changed); // Set the shell size, based upon previous time... setSize(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return stepname; }
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(); } }; SelectionAdapter lsSelMod = new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { 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, "DBProcDialog.Shell.Title")); // $NON-NLS-1$ int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "DBProcDialog.Stepname.Label")); // $NON-NLS-1$ props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // Connection line wConnection = addConnectionLine(shell, wStepname, middle, margin); if (input.getDatabase() == null && transMeta.nrDatabases() == 1) wConnection.select(0); wConnection.addModifyListener(lsMod); // ProcName line... // add button to get list of procedures on selected connection... wbProcName = new Button(shell, SWT.PUSH); wbProcName.setText(BaseMessages.getString(PKG, "DBProcDialog.Finding.Button")); // $NON-NLS-1$ fdbProcName = new FormData(); fdbProcName.right = new FormAttachment(100, 0); fdbProcName.top = new FormAttachment(wConnection, margin * 2); wbProcName.setLayoutData(fdbProcName); wbProcName.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { DatabaseMeta dbInfo = transMeta.findDatabase(wConnection.getText()); if (dbInfo != null) { Database db = new Database(loggingObject, dbInfo); try { db.connect(); String[] procs = db.getProcedures(); if (procs != null && procs.length > 0) { EnterSelectionDialog esd = new EnterSelectionDialog( shell, procs, BaseMessages.getString(PKG, "DBProcDialog.EnterSelection.DialogTitle"), BaseMessages.getString( PKG, "DBProcDialog.EnterSelection.DialogMessage")); //$NON-NLS-1$ // //$NON-NLS-2$ String proc = esd.open(); if (proc != null) { wProcName.setText(proc); } } else { MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_INFORMATION); mb.setMessage( BaseMessages.getString( PKG, "DBProcDialog.NoProceduresFound.DialogMessage")); // $NON-NLS-1$ mb.setText( BaseMessages.getString( PKG, "DBProcDialog.NoProceduresFound.DialogTitle")); // $NON-NLS-1$ mb.open(); } } catch (KettleDatabaseException dbe) { new ErrorDialog( shell, BaseMessages.getString( PKG, "DBProcDialog.ErrorGettingProceduresList.DialogTitle"), BaseMessages.getString( PKG, "DBProcDialog.ErrorGettingProceduresList.DialogMessage"), dbe); //$NON-NLS-1$ //$NON-NLS-2$ } finally { db.disconnect(); } } } }); wlProcName = new Label(shell, SWT.RIGHT); wlProcName.setText( BaseMessages.getString(PKG, "DBProcDialog.ProcedureName.Label")); // $NON-NLS-1$ props.setLook(wlProcName); fdlProcName = new FormData(); fdlProcName.left = new FormAttachment(0, 0); fdlProcName.right = new FormAttachment(middle, -margin); fdlProcName.top = new FormAttachment(wConnection, margin * 2); wlProcName.setLayoutData(fdlProcName); wProcName = new TextVar(transMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wProcName); wProcName.addModifyListener(lsMod); fdProcName = new FormData(); fdProcName.left = new FormAttachment(middle, 0); fdProcName.top = new FormAttachment(wConnection, margin * 2); fdProcName.right = new FormAttachment(wbProcName, -margin); wProcName.setLayoutData(fdProcName); // AutoCommit line wlAutoCommit = new Label(shell, SWT.RIGHT); wlAutoCommit.setText(BaseMessages.getString(PKG, "DBProcDialog.AutoCommit.Label")); wlAutoCommit.setToolTipText(BaseMessages.getString(PKG, "DBProcDialog.AutoCommit.Tooltip")); props.setLook(wlAutoCommit); fdlAutoCommit = new FormData(); fdlAutoCommit.left = new FormAttachment(0, 0); fdlAutoCommit.top = new FormAttachment(wProcName, margin); fdlAutoCommit.right = new FormAttachment(middle, -margin); wlAutoCommit.setLayoutData(fdlAutoCommit); wAutoCommit = new Button(shell, SWT.CHECK); wAutoCommit.setToolTipText(BaseMessages.getString(PKG, "DBProcDialog.AutoCommit.Tooltip")); props.setLook(wAutoCommit); fdAutoCommit = new FormData(); fdAutoCommit.left = new FormAttachment(middle, 0); fdAutoCommit.top = new FormAttachment(wProcName, margin); fdAutoCommit.right = new FormAttachment(100, 0); wAutoCommit.setLayoutData(fdAutoCommit); wAutoCommit.addSelectionListener(lsSelMod); // Result line... wlResult = new Label(shell, SWT.RIGHT); wlResult.setText(BaseMessages.getString(PKG, "DBProcDialog.Result.Label")); // $NON-NLS-1$ props.setLook(wlResult); fdlResult = new FormData(); fdlResult.left = new FormAttachment(0, 0); fdlResult.right = new FormAttachment(middle, -margin); fdlResult.top = new FormAttachment(wAutoCommit, margin * 2); wlResult.setLayoutData(fdlResult); wResult = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wResult); wResult.addModifyListener(lsMod); fdResult = new FormData(); fdResult.left = new FormAttachment(middle, 0); fdResult.top = new FormAttachment(wAutoCommit, margin * 2); fdResult.right = new FormAttachment(100, 0); wResult.setLayoutData(fdResult); // ResultType line wlResultType = new Label(shell, SWT.RIGHT); wlResultType.setText( BaseMessages.getString(PKG, "DBProcDialog.ResultType.Label")); // $NON-NLS-1$ props.setLook(wlResultType); fdlResultType = new FormData(); fdlResultType.left = new FormAttachment(0, 0); fdlResultType.right = new FormAttachment(middle, -margin); fdlResultType.top = new FormAttachment(wResult, margin); wlResultType.setLayoutData(fdlResultType); wResultType = new CCombo(shell, SWT.BORDER | SWT.READ_ONLY); props.setLook(wResultType); String types[] = ValueMeta.getTypes(); for (int x = 0; x < types.length; x++) wResultType.add(types[x]); wResultType.select(0); wResultType.addModifyListener(lsMod); fdResultType = new FormData(); fdResultType.left = new FormAttachment(middle, 0); fdResultType.top = new FormAttachment(wResult, margin); fdResultType.right = new FormAttachment(100, 0); wResultType.setLayoutData(fdResultType); wlFields = new Label(shell, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "DBProcDialog.Parameters.Label")); // $NON-NLS-1$ props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.top = new FormAttachment(wResultType, margin); wlFields.setLayoutData(fdlFields); final int FieldsCols = 3; final int FieldsRows = input.getArgument().length; colinf = new ColumnInfo[FieldsCols]; colinf[0] = new ColumnInfo( BaseMessages.getString(PKG, "DBProcDialog.ColumnInfo.Name"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); colinf[1] = new ColumnInfo( BaseMessages.getString(PKG, "DBProcDialog.ColumnInfo.Direction"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] { "IN", "OUT", "INOUT" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ colinf[2] = new ColumnInfo( BaseMessages.getString(PKG, "DBProcDialog.ColumnInfo.Type"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMeta.getTypes()); // $NON-NLS-1$ wFields = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(100, 0); fdFields.bottom = new FormAttachment(100, -50); 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(); // THE BUTTONS wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); // $NON-NLS-1$ wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "DBProcDialog.GetFields.Button")); // $NON-NLS-1$ wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); // $NON-NLS-1$ setButtonPositions(new Button[] {wOK, wCancel, wGet}, margin, wFields); // 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); // Set the shell size, based upon previous time... setSize(); getData(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return stepname; }
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, "RestDialog.Shell.Title")); // $NON-NLS-1$ int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "RestDialog.Stepname.Label")); // $NON-NLS-1$ props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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, PropsUI.WIDGET_STYLE_TAB); ////////////////////////// // START OF GENERAL TAB /// ////////////////////////// wGeneralTab = new CTabItem(wTabFolder, SWT.NONE); wGeneralTab.setText(BaseMessages.getString(PKG, "RestDialog.GeneralTab.Title")); wGeneralComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wGeneralComp); FormLayout fileLayout = new FormLayout(); fileLayout.marginWidth = 3; fileLayout.marginHeight = 3; wGeneralComp.setLayout(fileLayout); ////////////////////////// // START Settings GROUP Group gSettings = new Group(wGeneralComp, SWT.SHADOW_ETCHED_IN); gSettings.setText( BaseMessages.getString(PKG, "RestDialog.SettingsGroup.Label")); // $NON-NLS-1$; FormLayout SettingsLayout = new FormLayout(); SettingsLayout.marginWidth = 3; SettingsLayout.marginHeight = 3; gSettings.setLayout(SettingsLayout); props.setLook(gSettings); wlUrl = new Label(gSettings, SWT.RIGHT); wlUrl.setText(BaseMessages.getString(PKG, "RestDialog.URL.Label")); // $NON-NLS-1$ props.setLook(wlUrl); fdlUrl = new FormData(); fdlUrl.left = new FormAttachment(0, 0); fdlUrl.right = new FormAttachment(middle, -margin); fdlUrl.top = new FormAttachment(wGeneralComp, margin * 2); wlUrl.setLayoutData(fdlUrl); wUrl = new TextVar(transMeta, gSettings, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wUrl); wUrl.addModifyListener(lsMod); fdUrl = new FormData(); fdUrl.left = new FormAttachment(middle, 0); fdUrl.top = new FormAttachment(wGeneralComp, margin * 2); fdUrl.right = new FormAttachment(100, 0); wUrl.setLayoutData(fdUrl); // UrlInField line wlUrlInField = new Label(gSettings, SWT.RIGHT); wlUrlInField.setText(BaseMessages.getString(PKG, "RestDialog.UrlInField.Label")); props.setLook(wlUrlInField); fdlUrlInField = new FormData(); fdlUrlInField.left = new FormAttachment(0, 0); fdlUrlInField.top = new FormAttachment(wUrl, margin); fdlUrlInField.right = new FormAttachment(middle, -margin); wlUrlInField.setLayoutData(fdlUrlInField); wUrlInField = new Button(gSettings, SWT.CHECK); props.setLook(wUrlInField); fdUrlInField = new FormData(); fdUrlInField.left = new FormAttachment(middle, 0); fdUrlInField.top = new FormAttachment(wUrl, margin); fdUrlInField.right = new FormAttachment(100, 0); wUrlInField.setLayoutData(fdUrlInField); wUrlInField.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { input.setChanged(); activeUrlInfield(); } }); // UrlField Line wlUrlField = new Label(gSettings, SWT.RIGHT); wlUrlField.setText(BaseMessages.getString(PKG, "RestDialog.UrlField.Label")); // $NON-NLS-1$ props.setLook(wlUrlField); fdlUrlField = new FormData(); fdlUrlField.left = new FormAttachment(0, 0); fdlUrlField.right = new FormAttachment(middle, -margin); fdlUrlField.top = new FormAttachment(wUrlInField, margin); wlUrlField.setLayoutData(fdlUrlField); wUrlField = new ComboVar(transMeta, gSettings, SWT.BORDER | SWT.READ_ONLY); wUrlField.setEditable(true); props.setLook(wUrlField); wUrlField.addModifyListener(lsMod); fdUrlField = new FormData(); fdUrlField.left = new FormAttachment(middle, 0); fdUrlField.top = new FormAttachment(wUrlInField, margin); fdUrlField.right = new FormAttachment(100, -margin); wUrlField.setLayoutData(fdUrlField); wUrlField.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); setStreamFields(); shell.setCursor(null); busy.dispose(); } }); // Method Line wlMethod = new Label(gSettings, SWT.RIGHT); wlMethod.setText(BaseMessages.getString(PKG, "RestDialog.Method.Label")); // $NON-NLS-1$ props.setLook(wlMethod); fdlMethod = new FormData(); fdlMethod.left = new FormAttachment(0, 0); fdlMethod.right = new FormAttachment(middle, -margin); fdlMethod.top = new FormAttachment(wUrlField, 2 * margin); wlMethod.setLayoutData(fdlMethod); wMethod = new ComboVar(transMeta, gSettings, SWT.BORDER | SWT.READ_ONLY); wMethod.setEditable(true); props.setLook(wMethod); wMethod.addModifyListener(lsMod); fdMethod = new FormData(); fdMethod.left = new FormAttachment(middle, 0); fdMethod.top = new FormAttachment(wUrlField, 2 * margin); fdMethod.right = new FormAttachment(100, -margin); wMethod.setLayoutData(fdMethod); wMethod.setItems(RestMeta.HTTP_METHODS); wMethod.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { setMethod(); } }); // MethodInField line wlMethodInField = new Label(gSettings, SWT.RIGHT); wlMethodInField.setText(BaseMessages.getString(PKG, "RestDialog.MethodInField.Label")); props.setLook(wlMethodInField); fdlMethodInField = new FormData(); fdlMethodInField.left = new FormAttachment(0, 0); fdlMethodInField.top = new FormAttachment(wMethod, margin); fdlMethodInField.right = new FormAttachment(middle, -margin); wlMethodInField.setLayoutData(fdlMethodInField); wMethodInField = new Button(gSettings, SWT.CHECK); props.setLook(wMethodInField); fdMethodInField = new FormData(); fdMethodInField.left = new FormAttachment(middle, 0); fdMethodInField.top = new FormAttachment(wMethod, margin); fdMethodInField.right = new FormAttachment(100, 0); wMethodInField.setLayoutData(fdMethodInField); wMethodInField.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { input.setChanged(); activeMethodInfield(); } }); // MethodField Line wlMethodField = new Label(gSettings, SWT.RIGHT); wlMethodField.setText( BaseMessages.getString(PKG, "RestDialog.MethodField.Label")); // $NON-NLS-1$ props.setLook(wlMethodField); fdlMethodField = new FormData(); fdlMethodField.left = new FormAttachment(0, 0); fdlMethodField.right = new FormAttachment(middle, -margin); fdlMethodField.top = new FormAttachment(wMethodInField, margin); wlMethodField.setLayoutData(fdlMethodField); wMethodField = new ComboVar(transMeta, gSettings, SWT.BORDER | SWT.READ_ONLY); wMethodField.setEditable(true); props.setLook(wMethodField); wMethodField.addModifyListener(lsMod); fdMethodField = new FormData(); fdMethodField.left = new FormAttachment(middle, 0); fdMethodField.top = new FormAttachment(wMethodInField, margin); fdMethodField.right = new FormAttachment(100, -margin); wMethodField.setLayoutData(fdMethodField); wMethodField.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); setStreamFields(); shell.setCursor(null); busy.dispose(); } }); // Body Line wlBody = new Label(gSettings, SWT.RIGHT); wlBody.setText(BaseMessages.getString(PKG, "RestDialog.Body.Label")); // $NON-NLS-1$ props.setLook(wlBody); fdlBody = new FormData(); fdlBody.left = new FormAttachment(0, 0); fdlBody.right = new FormAttachment(middle, -margin); fdlBody.top = new FormAttachment(wMethodField, 2 * margin); wlBody.setLayoutData(fdlBody); wBody = new ComboVar(transMeta, gSettings, SWT.BORDER | SWT.READ_ONLY); wBody.setEditable(true); props.setLook(wBody); wBody.addModifyListener(lsMod); fdBody = new FormData(); fdBody.left = new FormAttachment(middle, 0); fdBody.top = new FormAttachment(wMethodField, 2 * margin); fdBody.right = new FormAttachment(100, -margin); wBody.setLayoutData(fdBody); wBody.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); setStreamFields(); shell.setCursor(null); busy.dispose(); } }); // ApplicationType Line wlApplicationType = new Label(gSettings, SWT.RIGHT); wlApplicationType.setText( BaseMessages.getString(PKG, "RestDialog.ApplicationType.Label")); // $NON-NLS-1$ props.setLook(wlApplicationType); fdlApplicationType = new FormData(); fdlApplicationType.left = new FormAttachment(0, 0); fdlApplicationType.right = new FormAttachment(middle, -margin); fdlApplicationType.top = new FormAttachment(wBody, 2 * margin); wlApplicationType.setLayoutData(fdlApplicationType); wApplicationType = new ComboVar(transMeta, gSettings, SWT.BORDER | SWT.READ_ONLY); wApplicationType.setEditable(true); props.setLook(wApplicationType); wApplicationType.addModifyListener(lsMod); fdApplicationType = new FormData(); fdApplicationType.left = new FormAttachment(middle, 0); fdApplicationType.top = new FormAttachment(wBody, 2 * margin); fdApplicationType.right = new FormAttachment(100, -margin); wApplicationType.setLayoutData(fdApplicationType); wApplicationType.setItems(RestMeta.APPLICATION_TYPES); wApplicationType.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { input.setChanged(); } }); FormData fdSettings = new FormData(); fdSettings.left = new FormAttachment(0, 0); fdSettings.right = new FormAttachment(100, 0); fdSettings.top = new FormAttachment(wStepname, margin); gSettings.setLayoutData(fdSettings); // END Output Settings GROUP ////////////////////////// ////////////////////////// // START Output Fields GROUP Group gOutputFields = new Group(wGeneralComp, SWT.SHADOW_ETCHED_IN); gOutputFields.setText( BaseMessages.getString(PKG, "RestDialog.OutputFieldsGroup.Label")); // $NON-NLS-1$; FormLayout OutputFieldsLayout = new FormLayout(); OutputFieldsLayout.marginWidth = 3; OutputFieldsLayout.marginHeight = 3; gOutputFields.setLayout(OutputFieldsLayout); props.setLook(gOutputFields); // Result line... wlResult = new Label(gOutputFields, SWT.RIGHT); wlResult.setText(BaseMessages.getString(PKG, "RestDialog.Result.Label")); // $NON-NLS-1$ props.setLook(wlResult); fdlResult = new FormData(); fdlResult.left = new FormAttachment(0, 0); fdlResult.right = new FormAttachment(middle, -margin); fdlResult.top = new FormAttachment(gSettings, margin); wlResult.setLayoutData(fdlResult); wResult = new TextVar(transMeta, gOutputFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wResult); wResult.addModifyListener(lsMod); fdResult = new FormData(); fdResult.left = new FormAttachment(middle, 0); fdResult.top = new FormAttachment(gSettings, margin * 2); fdResult.right = new FormAttachment(100, -margin); wResult.setLayoutData(fdResult); // Resultcode line... wlResultCode = new Label(gOutputFields, SWT.RIGHT); wlResultCode.setText(BaseMessages.getString(PKG, "RestDialog.ResultCode.Label")); // $NON-NLS-1$ props.setLook(wlResultCode); fdlResultCode = new FormData(); fdlResultCode.left = new FormAttachment(0, 0); fdlResultCode.right = new FormAttachment(middle, -margin); fdlResultCode.top = new FormAttachment(wResult, margin); wlResultCode.setLayoutData(fdlResultCode); wResultCode = new TextVar(transMeta, gOutputFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wResultCode); wResultCode.addModifyListener(lsMod); fdResultCode = new FormData(); fdResultCode.left = new FormAttachment(middle, 0); fdResultCode.top = new FormAttachment(wResult, margin); fdResultCode.right = new FormAttachment(100, -margin); wResultCode.setLayoutData(fdResultCode); // Response time line... wlResponseTime = new Label(gOutputFields, SWT.RIGHT); wlResponseTime.setText( BaseMessages.getString(PKG, "RestDialog.ResponseTime.Label")); // $NON-NLS-1$ props.setLook(wlResponseTime); fdlResponseTime = new FormData(); fdlResponseTime.left = new FormAttachment(0, 0); fdlResponseTime.right = new FormAttachment(middle, -margin); fdlResponseTime.top = new FormAttachment(wResultCode, margin); wlResponseTime.setLayoutData(fdlResponseTime); wResponseTime = new TextVar(transMeta, gOutputFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wResponseTime); wResponseTime.addModifyListener(lsMod); fdResponseTime = new FormData(); fdResponseTime.left = new FormAttachment(middle, 0); fdResponseTime.top = new FormAttachment(wResultCode, margin); fdResponseTime.right = new FormAttachment(100, 0); wResponseTime.setLayoutData(fdResponseTime); FormData fdOutputFields = new FormData(); fdOutputFields.left = new FormAttachment(0, 0); fdOutputFields.right = new FormAttachment(100, 0); fdOutputFields.top = new FormAttachment(gSettings, margin); gOutputFields.setLayoutData(fdOutputFields); // END Output Fields 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 ///////////////////////////////////////////////////////////// // Auth tab... // wAuthTab = new CTabItem(wTabFolder, SWT.NONE); wAuthTab.setText(BaseMessages.getString(PKG, "RestDialog.Auth.Title")); FormLayout alayout = new FormLayout(); alayout.marginWidth = Const.FORM_MARGIN; alayout.marginHeight = Const.FORM_MARGIN; wAuthComp = new Composite(wTabFolder, SWT.NONE); wAuthComp.setLayout(alayout); props.setLook(wAuthComp); ////////////////////////// // START HTTP AUTH GROUP Group gHttpAuth = new Group(wAuthComp, SWT.SHADOW_ETCHED_IN); gHttpAuth.setText( BaseMessages.getString(PKG, "RestDialog.HttpAuthGroup.Label")); // $NON-NLS-1$; FormLayout httpAuthLayout = new FormLayout(); httpAuthLayout.marginWidth = 3; httpAuthLayout.marginHeight = 3; gHttpAuth.setLayout(httpAuthLayout); props.setLook(gHttpAuth); // HTTP Login wlHttpLogin = new Label(gHttpAuth, SWT.RIGHT); wlHttpLogin.setText(BaseMessages.getString(PKG, "RestDialog.HttpLogin.Label")); // $NON-NLS-1$ props.setLook(wlHttpLogin); FormData fdlHttpLogin = new FormData(); fdlHttpLogin.top = new FormAttachment(0, margin); fdlHttpLogin.left = new FormAttachment(0, 0); fdlHttpLogin.right = new FormAttachment(middle, -margin); wlHttpLogin.setLayoutData(fdlHttpLogin); wHttpLogin = new TextVar(transMeta, gHttpAuth, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wHttpLogin.addModifyListener(lsMod); wHttpLogin.setToolTipText( BaseMessages.getString(PKG, "RestDialog.HttpLogin.Tooltip")); // $NON-NLS-1$ props.setLook(wHttpLogin); FormData fdHttpLogin = new FormData(); fdHttpLogin.top = new FormAttachment(0, margin); fdHttpLogin.left = new FormAttachment(middle, 0); fdHttpLogin.right = new FormAttachment(100, 0); wHttpLogin.setLayoutData(fdHttpLogin); // HTTP Password wlHttpPassword = new Label(gHttpAuth, SWT.RIGHT); wlHttpPassword.setText( BaseMessages.getString(PKG, "RestDialog.HttpPassword.Label")); // $NON-NLS-1$ props.setLook(wlHttpPassword); FormData fdlHttpPassword = new FormData(); fdlHttpPassword.top = new FormAttachment(wHttpLogin, margin); fdlHttpPassword.left = new FormAttachment(0, 0); fdlHttpPassword.right = new FormAttachment(middle, -margin); wlHttpPassword.setLayoutData(fdlHttpPassword); wHttpPassword = new TextVar(transMeta, gHttpAuth, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wHttpPassword.addModifyListener(lsMod); wHttpPassword.setToolTipText( BaseMessages.getString(PKG, "RestDialog.HttpPassword.Tooltip")); // $NON-NLS-1$ wHttpPassword.setEchoChar('*'); props.setLook(wHttpPassword); FormData fdHttpPassword = new FormData(); fdHttpPassword.top = new FormAttachment(wHttpLogin, margin); fdHttpPassword.left = new FormAttachment(middle, 0); fdHttpPassword.right = new FormAttachment(100, 0); wHttpPassword.setLayoutData(fdHttpPassword); // Preemptive line wlPreemptive = new Label(gHttpAuth, SWT.RIGHT); wlPreemptive.setText(BaseMessages.getString(PKG, "RestDialog.Preemptive.Label")); props.setLook(wlPreemptive); fdlPreemptive = new FormData(); fdlPreemptive.left = new FormAttachment(0, 0); fdlPreemptive.top = new FormAttachment(wHttpPassword, margin); fdlPreemptive.right = new FormAttachment(middle, -margin); wlPreemptive.setLayoutData(fdlPreemptive); wPreemptive = new Button(gHttpAuth, SWT.CHECK); props.setLook(wPreemptive); fdPreemptive = new FormData(); fdPreemptive.left = new FormAttachment(middle, 0); fdPreemptive.top = new FormAttachment(wHttpPassword, margin); fdPreemptive.right = new FormAttachment(100, 0); wPreemptive.setLayoutData(fdPreemptive); wPreemptive.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { input.setChanged(); } }); FormData fdHttpAuth = new FormData(); fdHttpAuth.left = new FormAttachment(0, 0); fdHttpAuth.right = new FormAttachment(100, 0); fdHttpAuth.top = new FormAttachment(gOutputFields, margin); gHttpAuth.setLayoutData(fdHttpAuth); // END HTTP AUTH GROUP ////////////////////////// ////////////////////////// // START PROXY GROUP Group gProxy = new Group(wAuthComp, SWT.SHADOW_ETCHED_IN); gProxy.setText(BaseMessages.getString(PKG, "RestDialog.ProxyGroup.Label")); // $NON-NLS-1$; FormLayout proxyLayout = new FormLayout(); proxyLayout.marginWidth = 3; proxyLayout.marginHeight = 3; gProxy.setLayout(proxyLayout); props.setLook(gProxy); // HTTP Login wlProxyHost = new Label(gProxy, SWT.RIGHT); wlProxyHost.setText(BaseMessages.getString(PKG, "RestDialog.ProxyHost.Label")); // $NON-NLS-1$ props.setLook(wlProxyHost); FormData fdlProxyHost = new FormData(); fdlProxyHost.top = new FormAttachment(0, margin); fdlProxyHost.left = new FormAttachment(0, 0); fdlProxyHost.right = new FormAttachment(middle, -margin); wlProxyHost.setLayoutData(fdlProxyHost); wProxyHost = new TextVar(transMeta, gProxy, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wProxyHost.addModifyListener(lsMod); wProxyHost.setToolTipText( BaseMessages.getString(PKG, "RestDialog.ProxyHost.Tooltip")); // $NON-NLS-1$ props.setLook(wProxyHost); FormData fdProxyHost = new FormData(); fdProxyHost.top = new FormAttachment(0, margin); fdProxyHost.left = new FormAttachment(middle, 0); fdProxyHost.right = new FormAttachment(100, 0); wProxyHost.setLayoutData(fdProxyHost); // HTTP Password wlProxyPort = new Label(gProxy, SWT.RIGHT); wlProxyPort.setText(BaseMessages.getString(PKG, "RestDialog.ProxyPort.Label")); // $NON-NLS-1$ props.setLook(wlProxyPort); FormData fdlProxyPort = new FormData(); fdlProxyPort.top = new FormAttachment(wProxyHost, margin); fdlProxyPort.left = new FormAttachment(0, 0); fdlProxyPort.right = new FormAttachment(middle, -margin); wlProxyPort.setLayoutData(fdlProxyPort); wProxyPort = new TextVar(transMeta, gProxy, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wProxyPort.addModifyListener(lsMod); wProxyPort.setToolTipText( BaseMessages.getString(PKG, "RestDialog.ProxyPort.Tooltip")); // $NON-NLS-1$ props.setLook(wProxyPort); FormData fdProxyPort = new FormData(); fdProxyPort.top = new FormAttachment(wProxyHost, margin); fdProxyPort.left = new FormAttachment(middle, 0); fdProxyPort.right = new FormAttachment(100, 0); wProxyPort.setLayoutData(fdProxyPort); FormData fdProxy = new FormData(); fdProxy.left = new FormAttachment(0, 0); fdProxy.right = new FormAttachment(100, 0); fdProxy.top = new FormAttachment(gHttpAuth, margin); gProxy.setLayoutData(fdProxy); // END HTTP AUTH GROUP ////////////////////////// fdAuthComp = new FormData(); fdAuthComp.left = new FormAttachment(0, 0); fdAuthComp.top = new FormAttachment(wStepname, margin); fdAuthComp.right = new FormAttachment(100, 0); fdAuthComp.bottom = new FormAttachment(100, 0); wAuthComp.setLayoutData(fdAuthComp); wAuthComp.layout(); wAuthTab.setControl(wAuthComp); //////// END of Auth Tab // SSL tab... // wSSLTab = new CTabItem(wTabFolder, SWT.NONE); wSSLTab.setText(BaseMessages.getString(PKG, "RestDialog.SSL.Title")); FormLayout ssll = new FormLayout(); ssll.marginWidth = Const.FORM_MARGIN; ssll.marginHeight = Const.FORM_MARGIN; wSSLComp = new Composite(wTabFolder, SWT.NONE); wSSLComp.setLayout(ssll); props.setLook(wSSLComp); ////////////////////////// // START SSLTrustStore GROUP Group gSSLTrustStore = new Group(wSSLComp, SWT.SHADOW_ETCHED_IN); gSSLTrustStore.setText( BaseMessages.getString(PKG, "RestDialog.SSLTrustStoreGroup.Label")); // $NON-NLS-1$; FormLayout SSLTrustStoreLayout = new FormLayout(); SSLTrustStoreLayout.marginWidth = 3; SSLTrustStoreLayout.marginHeight = 3; gSSLTrustStore.setLayout(SSLTrustStoreLayout); props.setLook(gSSLTrustStore); // TrustStoreFile line wlTrustStoreFile = new Label(gSSLTrustStore, SWT.RIGHT); wlTrustStoreFile.setText(BaseMessages.getString(PKG, "RestDialog.TrustStoreFile.Label")); props.setLook(wlTrustStoreFile); fdlTrustStoreFile = new FormData(); fdlTrustStoreFile.left = new FormAttachment(0, 0); fdlTrustStoreFile.top = new FormAttachment(0, margin); fdlTrustStoreFile.right = new FormAttachment(middle, -margin); wlTrustStoreFile.setLayoutData(fdlTrustStoreFile); wbTrustStoreFile = new Button(gSSLTrustStore, SWT.PUSH | SWT.CENTER); props.setLook(wbTrustStoreFile); wbTrustStoreFile.setText(BaseMessages.getString(PKG, "System.Button.Browse")); fdbTrustStoreFile = new FormData(); fdbTrustStoreFile.right = new FormAttachment(100, 0); fdbTrustStoreFile.top = new FormAttachment(0, 0); wbTrustStoreFile.setLayoutData(fdbTrustStoreFile); wbTrustStoreFile.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(shell, SWT.SAVE); dialog.setFilterExtensions(new String[] {"*.*"}); if (wTrustStoreFile.getText() != null) { dialog.setFileName(transMeta.environmentSubstitute(wTrustStoreFile.getText())); } dialog.setFilterNames( new String[] {BaseMessages.getString(PKG, "System.FileType.AllFiles")}); if (dialog.open() != null) { wTrustStoreFile.setText( dialog.getFilterPath() + System.getProperty("file.separator") + dialog.getFileName()); } } }); wTrustStoreFile = new TextVar(transMeta, gSSLTrustStore, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wTrustStoreFile); wTrustStoreFile.addModifyListener(lsMod); fdTrustStoreFile = new FormData(); fdTrustStoreFile.left = new FormAttachment(middle, 0); fdTrustStoreFile.top = new FormAttachment(0, margin); fdTrustStoreFile.right = new FormAttachment(wbTrustStoreFile, -margin); wTrustStoreFile.setLayoutData(fdTrustStoreFile); // TrustStorePassword line wlTrustStorePassword = new Label(gSSLTrustStore, SWT.RIGHT); wlTrustStorePassword.setText( BaseMessages.getString(PKG, "RestDialog.TrustStorePassword.Label")); props.setLook(wlTrustStorePassword); fdlTrustStorePassword = new FormData(); fdlTrustStorePassword.left = new FormAttachment(0, 0); fdlTrustStorePassword.top = new FormAttachment(wbTrustStoreFile, margin); fdlTrustStorePassword.right = new FormAttachment(middle, -margin); wlTrustStorePassword.setLayoutData(fdlTrustStorePassword); wTrustStorePassword = new TextVar(transMeta, gSSLTrustStore, SWT.SINGLE | SWT.LEFT | SWT.BORDER | SWT.PASSWORD); props.setLook(wTrustStorePassword); wTrustStorePassword.setEchoChar('*'); wTrustStorePassword.addModifyListener(lsMod); fdTrustStorePassword = new FormData(); fdTrustStorePassword.left = new FormAttachment(middle, 0); fdTrustStorePassword.top = new FormAttachment(wbTrustStoreFile, margin); fdTrustStorePassword.right = new FormAttachment(100, 0); wTrustStorePassword.setLayoutData(fdTrustStorePassword); FormData fdSSLTrustStore = new FormData(); fdSSLTrustStore.left = new FormAttachment(0, 0); fdSSLTrustStore.right = new FormAttachment(100, 0); fdSSLTrustStore.top = new FormAttachment(gHttpAuth, margin); gSSLTrustStore.setLayoutData(fdSSLTrustStore); // END HTTP AUTH GROUP ////////////////////////// fdSSLComp = new FormData(); fdSSLComp.left = new FormAttachment(0, 0); fdSSLComp.top = new FormAttachment(wStepname, margin); fdSSLComp.right = new FormAttachment(100, 0); fdSSLComp.bottom = new FormAttachment(100, 0); wSSLComp.setLayoutData(fdSSLComp); wSSLComp.layout(); wSSLTab.setControl(wSSLComp); //////// END of SSL Tab // Additional tab... // wAdditionalTab = new CTabItem(wTabFolder, SWT.NONE); wAdditionalTab.setText(BaseMessages.getString(PKG, "RestDialog.Headers.Title")); FormLayout addLayout = new FormLayout(); addLayout.marginWidth = Const.FORM_MARGIN; addLayout.marginHeight = Const.FORM_MARGIN; wAdditionalComp = new Composite(wTabFolder, SWT.NONE); wAdditionalComp.setLayout(addLayout); props.setLook(wAdditionalComp); wlFields = new Label(wAdditionalComp, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "RestDialog.Headers.Label")); // $NON-NLS-1$ props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.top = new FormAttachment(wStepname, margin); wlFields.setLayoutData(fdlFields); wGetHeaders = new Button(wAdditionalComp, SWT.PUSH); wGetHeaders.setText(BaseMessages.getString(PKG, "RestDialog.GetHeaders.Button")); // $NON-NLS-1$ FormData fdGetHeaders = new FormData(); fdGetHeaders.top = new FormAttachment(wlFields, margin); fdGetHeaders.right = new FormAttachment(100, 0); wGetHeaders.setLayoutData(fdGetHeaders); final int FieldsRows = input.getHeaderName().length; colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "RestDialog.ColumnInfo.Field"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), //$NON-NLS-1$ new ColumnInfo( BaseMessages.getString(PKG, "RestDialog.ColumnInfo.Name"), ColumnInfo.COLUMN_TYPE_TEXT, false) //$NON-NLS-1$ }; colinf[1].setUsingVariables(true); wFields = new TableView( transMeta, wAdditionalComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(wGetHeaders, -margin); fdFields.bottom = new FormAttachment(100, -margin); wFields.setLayoutData(fdFields); fdAdditionalComp = new FormData(); fdAdditionalComp.left = new FormAttachment(0, 0); fdAdditionalComp.top = new FormAttachment(wStepname, margin); fdAdditionalComp.right = new FormAttachment(100, -margin); fdAdditionalComp.bottom = new FormAttachment(100, 0); wAdditionalComp.setLayoutData(fdAdditionalComp); wAdditionalComp.layout(); wAdditionalTab.setControl(wAdditionalComp); //////// END of Additional Tab // Parameters tab... // wParametersTab = new CTabItem(wTabFolder, SWT.NONE); wParametersTab.setText(BaseMessages.getString(PKG, "RestDialog.Parameters.Title")); FormLayout playout = new FormLayout(); playout.marginWidth = Const.FORM_MARGIN; playout.marginHeight = Const.FORM_MARGIN; wParametersComp = new Composite(wTabFolder, SWT.NONE); wParametersComp.setLayout(playout); props.setLook(wParametersComp); wlParameters = new Label(wParametersComp, SWT.NONE); wlParameters.setText(BaseMessages.getString(PKG, "RestDialog.Parameters.Label")); // $NON-NLS-1$ props.setLook(wlParameters); fdlParameters = new FormData(); fdlParameters.left = new FormAttachment(0, 0); fdlParameters.top = new FormAttachment(wStepname, margin); wlParameters.setLayoutData(fdlParameters); wGet = new Button(wParametersComp, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "RestDialog.GetParameters.Button")); // $NON-NLS-1$ FormData fdGet = new FormData(); fdGet.top = new FormAttachment(wlParameters, margin); fdGet.right = new FormAttachment(100, 0); wGet.setLayoutData(fdGet); final int ParametersRows = input.getParameterField().length; colinfoparams = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "RestDialog.ColumnInfo.ParameterField"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), new ColumnInfo( BaseMessages.getString(PKG, "RestDialog.ColumnInfo.ParameterName"), ColumnInfo.COLUMN_TYPE_TEXT, false), //$NON-NLS-1$ }; wParameters = new TableView( transMeta, wParametersComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinfoparams, ParametersRows, lsMod, props); fdParameters = new FormData(); fdParameters.left = new FormAttachment(0, 0); fdParameters.top = new FormAttachment(wlParameters, margin); fdParameters.right = new FormAttachment(wGet, -margin); fdParameters.bottom = new FormAttachment(100, -margin); wParameters.setLayoutData(fdParameters); fdParametersComp = new FormData(); fdParametersComp.left = new FormAttachment(0, 0); fdParametersComp.top = new FormAttachment(wStepname, margin); fdParametersComp.right = new FormAttachment(100, 0); fdParametersComp.bottom = new FormAttachment(100, 0); wParametersComp.setLayoutData(fdParametersComp); wParametersComp.layout(); wParametersTab.setControl(wParametersComp); //////// END of Parameters Tab 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); // // 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) { log.logError( toString(), BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message")); } } } }; new Thread(runnable).start(); // THE BUTTONS wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); // $NON-NLS-1$ wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); // $NON-NLS-1$ setButtonPositions(new Button[] {wOK, wCancel}, margin, wTabFolder); // Add listeners lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsGet = new Listener() { public void handleEvent(Event e) { getParametersFields(); } }; Listener lsGetHeaders = new Listener() { public void handleEvent(Event e) { getHeaders(); } }; wOK.addListener(SWT.Selection, lsOK); wGet.addListener(SWT.Selection, lsGet); wGetHeaders.addListener(SWT.Selection, lsGetHeaders); wCancel.addListener(SWT.Selection, lsCancel); lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wStepname.addSelectionListener(lsDef); wUrl.addSelectionListener(lsDef); wResult.addSelectionListener(lsDef); wResultCode.addSelectionListener(lsDef); wResponseTime.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); // Set the shell size, based upon previous time... setSize(); wTabFolder.setSelection(0); getData(); activeUrlInfield(); activeMethodInfield(); setMethod(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return stepname; }
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(); } }; SelectionListener lsSelection = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { input.setChanged(); setComboBoxesLookup(); } }; 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, "FuzzyMatchDialog.Shell.Title")); int middle = props.getMiddlePct(); int margin = Const.MARGIN; // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.Stepname.Label")); props.setLook(wlStepname); fdlStepname = new FormData(); fdlStepname.left = new FormAttachment(0, 0); fdlStepname.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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, "FuzzyMatchDialog.General.Tab")); wGeneralComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wGeneralComp); FormLayout GeneralLayout = new FormLayout(); GeneralLayout.marginWidth = 3; GeneralLayout.marginHeight = 3; wGeneralComp.setLayout(GeneralLayout); // ///////////////////////////////// // START OF Lookup Fields GROUP // ///////////////////////////////// wLookupGroup = new Group(wGeneralComp, SWT.SHADOW_NONE); props.setLook(wLookupGroup); wLookupGroup.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.Group.Lookup.Label")); FormLayout LookupgroupLayout = new FormLayout(); LookupgroupLayout.marginWidth = 10; LookupgroupLayout.marginHeight = 10; wLookupGroup.setLayout(LookupgroupLayout); // Source step line... wlStep = new Label(wLookupGroup, SWT.RIGHT); wlStep.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.SourceStep.Label")); props.setLook(wlStep); fdlStep = new FormData(); fdlStep.left = new FormAttachment(0, 0); fdlStep.right = new FormAttachment(middle, -margin); fdlStep.top = new FormAttachment(wStepname, margin); wlStep.setLayoutData(fdlStep); wStep = new CCombo(wLookupGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wStep); List<StepMeta> steps = transMeta.findPreviousSteps(transMeta.findStep(stepname), true); for (StepMeta stepMeta : steps) { wStep.add(stepMeta.getName()); } wStep.addModifyListener(lsMod); wStep.addSelectionListener(lsSelection); fdStep = new FormData(); fdStep.left = new FormAttachment(middle, 0); fdStep.top = new FormAttachment(wStepname, margin); fdStep.right = new FormAttachment(100, 0); wStep.setLayoutData(fdStep); // LookupField wlLookupField = new Label(wLookupGroup, SWT.RIGHT); wlLookupField.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.wlLookupField.Label")); props.setLook(wlLookupField); fdlLookupField = new FormData(); fdlLookupField.left = new FormAttachment(0, 0); fdlLookupField.top = new FormAttachment(wStep, margin); fdlLookupField.right = new FormAttachment(middle, -2 * margin); wlLookupField.setLayoutData(fdlLookupField); wLookupField = new ComboVar(transMeta, wLookupGroup, SWT.BORDER | SWT.READ_ONLY); wLookupField.setEditable(true); props.setLook(wLookupField); wLookupField.addModifyListener(lsMod); fdLookupField = new FormData(); fdLookupField.left = new FormAttachment(middle, 0); fdLookupField.top = new FormAttachment(wStep, margin); fdLookupField.right = new FormAttachment(100, -margin); wLookupField.setLayoutData(fdLookupField); wLookupField.addFocusListener( new FocusListener() { public void focusLost(org.eclipse.swt.events.FocusEvent e) {} public void focusGained(org.eclipse.swt.events.FocusEvent e) { setLookupField(); } }); fdLookupGroup = new FormData(); fdLookupGroup.left = new FormAttachment(0, margin); fdLookupGroup.top = new FormAttachment(wStepname, margin); fdLookupGroup.right = new FormAttachment(100, -margin); wLookupGroup.setLayoutData(fdLookupGroup); // /////////////////////////////////////////////////////////// // / END OF Lookup GROUP // /////////////////////////////////////////////////////////// // ///////////////////////////////// // START OF MainStream Fields GROUP // ///////////////////////////////// wMainStreamGroup = new Group(wGeneralComp, SWT.SHADOW_NONE); props.setLook(wMainStreamGroup); wMainStreamGroup.setText( BaseMessages.getString(PKG, "FuzzyMatchDialog.Group.MainStreamGroup.Label")); FormLayout MainStreamgroupLayout = new FormLayout(); MainStreamgroupLayout.marginWidth = 10; MainStreamgroupLayout.marginHeight = 10; wMainStreamGroup.setLayout(MainStreamgroupLayout); // MainStreamFieldname field wlMainStreamField = new Label(wMainStreamGroup, SWT.RIGHT); wlMainStreamField.setText( BaseMessages.getString(PKG, "FuzzyMatchDialog.wlMainStreamField.Label")); props.setLook(wlMainStreamField); fdlMainStreamField = new FormData(); fdlMainStreamField.left = new FormAttachment(0, 0); fdlMainStreamField.top = new FormAttachment(wLookupGroup, margin); fdlMainStreamField.right = new FormAttachment(middle, -2 * margin); wlMainStreamField.setLayoutData(fdlMainStreamField); wMainStreamField = new ComboVar(transMeta, wMainStreamGroup, SWT.BORDER | SWT.READ_ONLY); wMainStreamField.setEditable(true); props.setLook(wMainStreamField); wMainStreamField.addModifyListener(lsMod); fdMainStreamField = new FormData(); fdMainStreamField.left = new FormAttachment(middle, 0); fdMainStreamField.top = new FormAttachment(wLookupGroup, margin); fdMainStreamField.right = new FormAttachment(100, -margin); wMainStreamField.setLayoutData(fdMainStreamField); wMainStreamField.addFocusListener( new FocusListener() { public void focusLost(org.eclipse.swt.events.FocusEvent e) {} public void focusGained(org.eclipse.swt.events.FocusEvent e) { setMainStreamField(); } }); fdMainStreamGroup = new FormData(); fdMainStreamGroup.left = new FormAttachment(0, margin); fdMainStreamGroup.top = new FormAttachment(wLookupGroup, margin); fdMainStreamGroup.right = new FormAttachment(100, -margin); wMainStreamGroup.setLayoutData(fdMainStreamGroup); // /////////////////////////////////////////////////////////// // / END OF MainStream GROUP // /////////////////////////////////////////////////////////// // ///////////////////////////////// // START OF Settings Fields GROUP // ///////////////////////////////// wSettingsGroup = new Group(wGeneralComp, SWT.SHADOW_NONE); props.setLook(wSettingsGroup); wSettingsGroup.setText( BaseMessages.getString(PKG, "FuzzyMatchDialog.Group.SettingsGroup.Label")); FormLayout SettingsgroupLayout = new FormLayout(); SettingsgroupLayout.marginWidth = 10; SettingsgroupLayout.marginHeight = 10; wSettingsGroup.setLayout(SettingsgroupLayout); // Algorithm wlAlgorithm = new Label(wSettingsGroup, SWT.RIGHT); wlAlgorithm.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.Algorithm.Label")); props.setLook(wlAlgorithm); fdlAlgorithm = new FormData(); fdlAlgorithm.left = new FormAttachment(0, 0); fdlAlgorithm.right = new FormAttachment(middle, -margin); fdlAlgorithm.top = new FormAttachment(wMainStreamGroup, margin); wlAlgorithm.setLayoutData(fdlAlgorithm); wAlgorithm = new CCombo(wSettingsGroup, SWT.BORDER | SWT.READ_ONLY); props.setLook(wAlgorithm); wAlgorithm.addModifyListener(lsMod); fdAlgorithm = new FormData(); fdAlgorithm.left = new FormAttachment(middle, 0); fdAlgorithm.top = new FormAttachment(wMainStreamGroup, margin); fdAlgorithm.right = new FormAttachment(100, -margin); wAlgorithm.setLayoutData(fdAlgorithm); wAlgorithm.setItems(FuzzyMatchMeta.algorithmDesc); wAlgorithm.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { activeAlgorithm(); } }); // Is case sensitive wlcaseSensitive = new Label(wSettingsGroup, SWT.RIGHT); wlcaseSensitive.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.caseSensitive.Label")); props.setLook(wlcaseSensitive); fdlcaseSensitive = new FormData(); fdlcaseSensitive.left = new FormAttachment(0, 0); fdlcaseSensitive.top = new FormAttachment(wAlgorithm, margin); fdlcaseSensitive.right = new FormAttachment(middle, -2 * margin); wlcaseSensitive.setLayoutData(fdlcaseSensitive); wcaseSensitive = new Button(wSettingsGroup, SWT.CHECK); props.setLook(wcaseSensitive); wcaseSensitive.setToolTipText( BaseMessages.getString(PKG, "FuzzyMatchDialog.caseSensitive.Tooltip")); fdcaseSensitive = new FormData(); fdcaseSensitive.left = new FormAttachment(middle, 0); fdcaseSensitive.top = new FormAttachment(wAlgorithm, margin); wcaseSensitive.setLayoutData(fdcaseSensitive); SelectionAdapter lcaseSensitive = new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { input.setChanged(); } }; wcaseSensitive.addSelectionListener(lcaseSensitive); // Is get closer value wlgetCloserValue = new Label(wSettingsGroup, SWT.RIGHT); wlgetCloserValue.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.getCloserValue.Label")); props.setLook(wlgetCloserValue); fdlgetCloserValue = new FormData(); fdlgetCloserValue.left = new FormAttachment(0, 0); fdlgetCloserValue.top = new FormAttachment(wcaseSensitive, margin); fdlgetCloserValue.right = new FormAttachment(middle, -2 * margin); wlgetCloserValue.setLayoutData(fdlgetCloserValue); wgetCloserValue = new Button(wSettingsGroup, SWT.CHECK); props.setLook(wgetCloserValue); wgetCloserValue.setToolTipText( BaseMessages.getString(PKG, "FuzzyMatchDialog.getCloserValue.Tooltip")); fdgetCloserValue = new FormData(); fdgetCloserValue.left = new FormAttachment(middle, 0); fdgetCloserValue.top = new FormAttachment(wcaseSensitive, margin); wgetCloserValue.setLayoutData(fdgetCloserValue); SelectionAdapter lgetCloserValue = new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { activegetCloserValue(); input.setChanged(); } }; wgetCloserValue.addSelectionListener(lgetCloserValue); wlminValue = new Label(wSettingsGroup, SWT.RIGHT); wlminValue.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.minValue.Label")); props.setLook(wlminValue); fdlminValue = new FormData(); fdlminValue.left = new FormAttachment(0, 0); fdlminValue.top = new FormAttachment(wgetCloserValue, margin); fdlminValue.right = new FormAttachment(middle, -margin); wlminValue.setLayoutData(fdlminValue); wminValue = new TextVar(transMeta, wSettingsGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wminValue); wminValue.setToolTipText(BaseMessages.getString(PKG, "FuzzyMatchDialog.minValue.Tooltip")); wminValue.addModifyListener(lsMod); fdminValue = new FormData(); fdminValue.left = new FormAttachment(middle, 0); fdminValue.top = new FormAttachment(wgetCloserValue, margin); fdminValue.right = new FormAttachment(100, 0); wminValue.setLayoutData(fdminValue); wlmaxValue = new Label(wSettingsGroup, SWT.RIGHT); wlmaxValue.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.maxValue.Label")); props.setLook(wlmaxValue); fdlmaxValue = new FormData(); fdlmaxValue.left = new FormAttachment(0, 0); fdlmaxValue.top = new FormAttachment(wminValue, margin); fdlmaxValue.right = new FormAttachment(middle, -margin); wlmaxValue.setLayoutData(fdlmaxValue); wmaxValue = new TextVar(transMeta, wSettingsGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wmaxValue); wmaxValue.setToolTipText(BaseMessages.getString(PKG, "FuzzyMatchDialog.maxValue.Tooltip")); wmaxValue.addModifyListener(lsMod); fdmaxValue = new FormData(); fdmaxValue.left = new FormAttachment(middle, 0); fdmaxValue.top = new FormAttachment(wminValue, margin); fdmaxValue.right = new FormAttachment(100, 0); wmaxValue.setLayoutData(fdmaxValue); wlseparator = new Label(wSettingsGroup, SWT.RIGHT); wlseparator.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.separator.Label")); props.setLook(wlseparator); fdlseparator = new FormData(); fdlseparator.left = new FormAttachment(0, 0); fdlseparator.top = new FormAttachment(wmaxValue, margin); fdlseparator.right = new FormAttachment(middle, -margin); wlseparator.setLayoutData(fdlseparator); wseparator = new TextVar(transMeta, wSettingsGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wseparator); wseparator.addModifyListener(lsMod); fdseparator = new FormData(); fdseparator.left = new FormAttachment(middle, 0); fdseparator.top = new FormAttachment(wmaxValue, margin); fdseparator.right = new FormAttachment(100, 0); wseparator.setLayoutData(fdseparator); fdSettingsGroup = new FormData(); fdSettingsGroup.left = new FormAttachment(0, margin); fdSettingsGroup.top = new FormAttachment(wMainStreamGroup, margin); fdSettingsGroup.right = new FormAttachment(100, -margin); wSettingsGroup.setLayoutData(fdSettingsGroup); // /////////////////////////////////////////////////////////// // / END OF Settings GROUP // /////////////////////////////////////////////////////////// fdGeneralComp = new FormData(); fdGeneralComp.left = new FormAttachment(0, 0); fdGeneralComp.top = new FormAttachment(0, 0); fdGeneralComp.right = new FormAttachment(100, 0); fdGeneralComp.bottom = new FormAttachment(100, 0); wGeneralComp.setLayoutData(fdGeneralComp); wGeneralComp.layout(); wGeneralTab.setControl(wGeneralComp); // /////////////////////////////////////////////////////////// // / END OF General TAB // /////////////////////////////////////////////////////////// // THE BUTTONS 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, null); // //////////////////////// // START OF Fields TAB /// // //////////////////////// wFieldsTab = new CTabItem(wTabFolder, SWT.NONE); wFieldsTab.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.Fields.Tab")); wFieldsComp = new Composite(wTabFolder, SWT.NONE); props.setLook(wFieldsComp); FormLayout FieldsLayout = new FormLayout(); FieldsLayout.marginWidth = 3; FieldsLayout.marginHeight = 3; wFieldsComp.setLayout(FieldsLayout); // ///////////////////////////////// // START OF OutputFields Fields GROUP // ///////////////////////////////// wOutputFieldsGroup = new Group(wFieldsComp, SWT.SHADOW_NONE); props.setLook(wOutputFieldsGroup); wOutputFieldsGroup.setText( BaseMessages.getString(PKG, "FuzzyMatchDialog.Group.OutputFieldsGroup.Label")); FormLayout OutputFieldsgroupLayout = new FormLayout(); OutputFieldsgroupLayout.marginWidth = 10; OutputFieldsgroupLayout.marginHeight = 10; wOutputFieldsGroup.setLayout(OutputFieldsgroupLayout); wlmatchField = new Label(wOutputFieldsGroup, SWT.RIGHT); wlmatchField.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.MatchField.Label")); props.setLook(wlmatchField); fdlmatchField = new FormData(); fdlmatchField.left = new FormAttachment(0, 0); fdlmatchField.top = new FormAttachment(wSettingsGroup, margin); fdlmatchField.right = new FormAttachment(middle, -margin); wlmatchField.setLayoutData(fdlmatchField); wmatchField = new TextVar(transMeta, wOutputFieldsGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wmatchField); wmatchField.addModifyListener(lsMod); fdmatchField = new FormData(); fdmatchField.left = new FormAttachment(middle, 0); fdmatchField.top = new FormAttachment(wSettingsGroup, margin); fdmatchField.right = new FormAttachment(100, 0); wmatchField.setLayoutData(fdmatchField); wlvalueField = new Label(wOutputFieldsGroup, SWT.RIGHT); wlvalueField.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.valueField.Label")); props.setLook(wlvalueField); fdlvalueField = new FormData(); fdlvalueField.left = new FormAttachment(0, 0); fdlvalueField.top = new FormAttachment(wmatchField, margin); fdlvalueField.right = new FormAttachment(middle, -margin); wlvalueField.setLayoutData(fdlvalueField); wvalueField = new TextVar(transMeta, wOutputFieldsGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wvalueField); wvalueField.setToolTipText(BaseMessages.getString(PKG, "FuzzyMatchDialog.valueField.Tooltip")); wvalueField.addModifyListener(lsMod); fdvalueField = new FormData(); fdvalueField.left = new FormAttachment(middle, 0); fdvalueField.top = new FormAttachment(wmatchField, margin); fdvalueField.right = new FormAttachment(100, 0); wvalueField.setLayoutData(fdvalueField); fdOutputFieldsGroup = new FormData(); fdOutputFieldsGroup.left = new FormAttachment(0, margin); fdOutputFieldsGroup.top = new FormAttachment(wSettingsGroup, margin); fdOutputFieldsGroup.right = new FormAttachment(100, -margin); wOutputFieldsGroup.setLayoutData(fdOutputFieldsGroup); // /////////////////////////////////////////////////////////// // / END OF OutputFields GROUP // /////////////////////////////////////////////////////////// // THE UPDATE/INSERT TABLE wlReturn = new Label(wFieldsComp, SWT.NONE); wlReturn.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.ReturnFields.Label")); props.setLook(wlReturn); fdlReturn = new FormData(); fdlReturn.left = new FormAttachment(0, 0); fdlReturn.top = new FormAttachment(wOutputFieldsGroup, margin); wlReturn.setLayoutData(fdlReturn); wGetLU = new Button(wFieldsComp, SWT.PUSH); wGetLU.setText(BaseMessages.getString(PKG, "FuzzyMatchDialog.GetLookupFields.Button")); FormData fdlu = new FormData(); fdlu.top = new FormAttachment(wlReturn, margin); fdlu.right = new FormAttachment(100, 0); wGetLU.setLayoutData(fdlu); int UpInsCols = 2; int UpInsRows = (input.getValue() != null ? input.getValue().length : 1); ciReturn = new ColumnInfo[UpInsCols]; ciReturn[0] = new ColumnInfo( BaseMessages.getString(PKG, "FuzzyMatchDialog.ColumnInfo.FieldReturn"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); ciReturn[1] = new ColumnInfo( BaseMessages.getString(PKG, "FuzzyMatchDialog.ColumnInfo.NewName"), ColumnInfo.COLUMN_TYPE_TEXT, false); wReturn = new TableView( transMeta, wFieldsComp, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciReturn, UpInsRows, lsMod, props); fdReturn = new FormData(); fdReturn.left = new FormAttachment(0, 0); fdReturn.top = new FormAttachment(wlReturn, margin); fdReturn.right = new FormAttachment(wGetLU, -margin); fdReturn.bottom = new FormAttachment(100, -3 * margin); wReturn.setLayoutData(fdReturn); 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); // /////////////////////////////////////////////////////////// // / END OF Fields TAB // /////////////////////////////////////////////////////////// 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(wOK, -margin); wTabFolder.setLayoutData(fdTabFolder); // Add listeners lsOK = new Listener() { public void handleEvent(Event e) { ok(); } }; lsCancel = new Listener() { public void handleEvent(Event e) { cancel(); } }; lsGetLU = new Listener() { public void handleEvent(Event e) { getlookup(); } }; wOK.addListener(SWT.Selection, lsOK); wCancel.addListener(SWT.Selection, lsCancel); wGetLU.addListener(SWT.Selection, lsGetLU); 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(); } }); wTabFolder.setSelection(0); // Set the shell size, based upon previous time... setSize(); getData(); setComboBoxesLookup(); activeAlgorithm(); activegetCloserValue(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
/** * Create the composite. * * @param parent * @param style */ public ArgumentsDialog( final Shell parent, ExecutionConfiguration configuration, AbstractMeta abstractMeta) { super(parent); this.configuration = configuration; display = parent.getDisplay(); shell = new Shell(parent, SWT.DIALOG_TRIM | SWT.MIN | SWT.APPLICATION_MODAL); props = PropsUI.getInstance(); props.setLook(shell); shell.setImage(parent.getImage()); shell.setLayout(new FormLayout()); shell.setText(BaseMessages.getString(PKG, "ArgumentsDialog.Arguments.Label")); ColumnInfo[] cArguments = { new ColumnInfo( BaseMessages.getString(PKG, "ArgumentsDialog.ArgumentsColumn.Argument"), ColumnInfo.COLUMN_TYPE_TEXT, false, true, 180), // Argument name new ColumnInfo( BaseMessages.getString(PKG, "ArgumentsDialog.ArgumentsColumn.Value"), ColumnInfo.COLUMN_TYPE_TEXT, false, false, 172), // Actual value }; int nrArguments = configuration.getArguments() != null ? configuration.getArguments().size() : 0; wArguments = new TableView( abstractMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, cArguments, nrArguments, false, null, props, false); FormData fd_argumentsTable = new FormData(); fd_argumentsTable.top = new FormAttachment(0, 15); fd_argumentsTable.left = new FormAttachment(0, 15); fd_argumentsTable.bottom = new FormAttachment(0, 221); fd_argumentsTable.right = new FormAttachment(0, 371); wArguments.setLayoutData(fd_argumentsTable); Label separator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL); FormData fd_separator = new FormData(); fd_separator.top = new FormAttachment(wArguments, 15); fd_separator.right = new FormAttachment(wArguments, 0, SWT.RIGHT); fd_separator.left = new FormAttachment(0, 15); separator.setLayoutData(fd_separator); Button okButton = new Button(shell, SWT.NONE); okButton.setText("OK"); FormData fd_okButton = new FormData(); fd_okButton.left = new FormAttachment(0, 269); okButton.setLayoutData(fd_okButton); okButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ok(); } }); Button cancelButton = new Button(shell, SWT.NONE); fd_okButton.top = new FormAttachment(cancelButton, 0, SWT.TOP); fd_okButton.right = new FormAttachment(cancelButton, -4); cancelButton.setText("Cancel"); FormData fd_cancelButton = new FormData(); fd_cancelButton.top = new FormAttachment(separator, 13); fd_cancelButton.right = new FormAttachment(wArguments, 0, SWT.RIGHT); cancelButton.setLayoutData(fd_cancelButton); cancelButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { dispose(); } }); Button btnHelp = new Button(shell, SWT.NONE); btnHelp.setImage(GUIResource.getInstance().getImageHelpWeb()); btnHelp.setText(BaseMessages.getString(PKG, "System.Button.Help")); btnHelp.setToolTipText(BaseMessages.getString(PKG, "System.Tooltip.Help")); FormData fd_btnHelp = new FormData(); fd_btnHelp.top = new FormAttachment(separator, 13); fd_btnHelp.left = new FormAttachment(separator, 0, SWT.LEFT); btnHelp.setLayoutData(fd_btnHelp); btnHelp.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent evt) { String docUrl = BaseMessages.getString(Spoon.class, "Spoon.ArgumentsDialog.Help"); String docTitle = BaseMessages.getString(PKG, "ArgumentsDialog.docTitle"); String docHeader = BaseMessages.getString(PKG, "ArgumentsDialog.docHeader"); HelpUtils.openHelpDialog(parent.getShell(), docTitle, docUrl, docHeader); } }); shell.setSize(394, 319); getArgumentsData(); shell.open(); Rectangle shellBounds = getParent().getBounds(); Point dialogSize = shell.getSize(); shell.setLocation( shellBounds.x + (shellBounds.width - dialogSize.x) / 2, shellBounds.y + (shellBounds.height - dialogSize.y) / 2); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } }
/** * "Configure join key" shell * * @param keyValTextBox * @param lsMod */ private void configureKeys( final Text keyValTextBox, final int inputStreamIndex, ModifyListener lsMod) { inputFields = new HashMap<String, Integer>(); final Shell subShell = new Shell(shell, SWT.DIALOG_TRIM | SWT.RESIZE | SWT.MIN | SWT.MAX); final FormLayout formLayout = new FormLayout(); formLayout.marginWidth = 5; formLayout.marginHeight = 5; subShell.setLayout(formLayout); subShell.setSize(200, 150); subShell.setText(BaseMessages.getString(PKG, "MultiMergeJoinMeta.JoinKeys")); subShell.setImage(GUIResource.getInstance().getImageTransGraph()); Label wlKeys = new Label(subShell, SWT.NONE); wlKeys.setText(BaseMessages.getString(PKG, "MultiMergeJoinDialog.Keys")); FormData fdlKeys = new FormData(); fdlKeys.left = new FormAttachment(0, 0); fdlKeys.right = new FormAttachment(50, -margin); fdlKeys.top = new FormAttachment(0, margin); wlKeys.setLayoutData(fdlKeys); String[] keys = keyValTextBox.getText().split(","); int nrKeyRows = (keys != null ? keys.length : 1); ciKeys = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "MultiMergeJoinDialog.ColumnInfo.KeyField"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false), }; final TableView wKeys = new TableView( transMeta, subShell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciKeys, nrKeyRows, lsMod, props); FormData fdKeys = new FormData(); fdKeys.top = new FormAttachment(wlKeys, margin); fdKeys.left = new FormAttachment(0, 0); fdKeys.bottom = new FormAttachment(100, -70); fdKeys.right = new FormAttachment(100, -margin); wKeys.setLayoutData(fdKeys); // // Search the fields in the background final Runnable runnable = new Runnable() { public void run() { try { CCombo wInputStep = wInputStepArray[inputStreamIndex]; String stepName = wInputStep.getText(); StepMeta stepMeta = transMeta.findStep(stepName); if (stepMeta != null) { prev = transMeta.getStepFields(stepMeta); if (prev != null) { // Remember these fields... for (int i = 0; i < prev.size(); i++) { inputFields.put(prev.getValueMeta(i).getName(), Integer.valueOf(i)); } setComboBoxes(); } } } catch (KettleException e) { logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message")); } } }; Display.getDefault().asyncExec(runnable); Button getKeyButton = new Button(subShell, SWT.PUSH); getKeyButton.setText(BaseMessages.getString(PKG, "MultiMergeJoinDialog.KeyFields.Button")); FormData fdbKeys = new FormData(); fdbKeys.top = new FormAttachment(wKeys, margin); fdbKeys.left = new FormAttachment(0, 0); fdbKeys.right = new FormAttachment(100, -margin); getKeyButton.setLayoutData(fdbKeys); getKeyButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { BaseStepDialog.getFieldsFromPrevious( prev, wKeys, 1, new int[] {1}, new int[] {}, -1, -1, null); } }); // Some buttons Button okButton = new Button(subShell, SWT.PUSH); okButton.setText(BaseMessages.getString(PKG, "System.Button.OK")); setButtonPositions(new Button[] {okButton}, margin, getKeyButton); okButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int nrKeys = wKeys.nrNonEmpty(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < nrKeys; i++) { TableItem item = wKeys.getNonEmpty(i); sb.append(item.getText(1)); if (nrKeys > 1 && i != nrKeys - 1) { sb.append(","); } } keyValTextBox.setText(sb.toString()); subShell.close(); } }); /* * SelectionAdapter lsDef=new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; * * wStepname.addSelectionListener( lsDef ); */ // Detect X or ALT-F4 or something that kills this window... subShell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) {} }); for (int i = 0; i < keys.length; i++) { TableItem item = wKeys.table.getItem(i); if (keys[i] != null) { item.setText(1, keys[i]); } } subShell.pack(); subShell.open(); }
/* * Constructing all Dialog widgets Return the (possibly new) name of the * step. If it returns null, Kettle assumes that the dialog was cancelled * (done by Cancel handler). */ public String open() { String t = super.open(); shell.setText(BaseMessages.getString(PKG, "LoadSatDialog.Shell.Title")); // Stepname line wlStepname.setText(BaseMessages.getString(PKG, "LoadDialog.Stepname.Label")); // Connection line wConnection.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { // We have new content: change ci connection: dbMeta = transMeta.findDatabase(wConnection.getText()); inputMeta.setChanged(); resetColumnsCache(); } }); // Schema line... wlSchema.setText(BaseMessages.getString(PKG, "LoadDialog.TargetSchema.Label")); // Sat Table line... wlTargetTable.setText(BaseMessages.getString(PKG, "LoadSatDialog.Target.Label")); // Batch size ... // Idempotent ? wlIsIdempotentSat = new Label(shell, SWT.RIGHT); wlIsIdempotentSat.setText(BaseMessages.getString(PKG, "LoadSatDialog.IdempotentTransf.Label")); props.setLook(wlIsIdempotentSat); FormData fdlIdempotent = new FormData(); fdlIdempotent.left = new FormAttachment(0, 0); fdlIdempotent.right = new FormAttachment(middle, -margin); fdlIdempotent.top = new FormAttachment(wBatchSize, margin); wlIsIdempotentSat.setLayoutData(fdlIdempotent); wbIsIdempotentSat = new Button(shell, SWT.CHECK); props.setLook(wbIsIdempotentSat); FormData fdbExtNatkeyTable = new FormData(); fdbExtNatkeyTable.left = new FormAttachment(middle, 0); fdbExtNatkeyTable.right = new FormAttachment(middle + (100 - middle) / 3, -margin); fdbExtNatkeyTable.top = new FormAttachment(wBatchSize, margin); wbIsIdempotentSat.setLayoutData(fdbExtNatkeyTable); wbIsIdempotentSat.setToolTipText( BaseMessages.getString(PKG, "LoadSatDialog.IdempotentTransf.Tooltip")); // // The fields mapping // wlKey = new Label(shell, SWT.NONE); wlKey.setText(BaseMessages.getString(PKG, "LoadSatDialog.Attfields.Label")); props.setLook(wlKey); FormData fdlKey = new FormData(); fdlKey.left = new FormAttachment(0, 0); fdlKey.top = new FormAttachment(wbIsIdempotentSat, margin * 3); fdlKey.right = new FormAttachment(100, 0); wlKey.setLayoutData(fdlKey); int nrKeyCols = 3; int nrRows = (inputMeta.getFields() != null ? inputMeta.getFields().length : 1); ciKey = new ColumnInfo[nrKeyCols]; ciKey[0] = new ColumnInfo( BaseMessages.getString(PKG, "LoadSatDialog.ColumnInfo.TableColumn"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); ciKey[1] = new ColumnInfo( BaseMessages.getString(PKG, "LoadSatDialog.ColumnInfo.FieldInStream"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] {""}, false); ciKey[2] = new ColumnInfo( BaseMessages.getString(PKG, "LoadSatDialog.ColumnInfo.Type"), ColumnInfo.COLUMN_TYPE_CCOMBO, new String[] { LoadSatMeta.ATTRIBUTE_NORMAL, LoadSatMeta.ATTRIBUTE_FK, LoadSatMeta.ATTRIBUTE_TEMPORAL, LoadSatMeta.ATTRIBUTE_META }); // attach the tableFieldColumns List to the widget tableFieldColumns.add(ciKey[0]); wKey = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL, ciKey, nrRows, lsMod, props); ciKey[2].setSelectionAdapter( new SelectionAdapter() { public void widgetSelected(SelectionEvent arg0) { hasOneTemporalField = false; // iterate mapping list and "activate" temporal or not... for (int i = 0; i < wKey.nrNonEmpty(); i++) { TableItem item = wKey.getNonEmpty(i); if (item.getText(3).equals(LoadSatMeta.ATTRIBUTE_TEMPORAL)) { hasOneTemporalField = true; break; } } enableFields(); } }); // The optional Group for closing "ToDate" Group wClosingDateFields = new Group(shell, SWT.SHADOW_ETCHED_IN); wClosingDateFields.setText(BaseMessages.getString(PKG, "LoadSatDialog.UsingOptToDate.Label")); FormLayout closingDateGroupLayout = new FormLayout(); closingDateGroupLayout.marginWidth = 3; closingDateGroupLayout.marginHeight = 3; wClosingDateFields.setLayout(closingDateGroupLayout); props.setLook(wClosingDateFields); // ToDate Expire Column name... wlToDateCol = new Label(wClosingDateFields, SWT.RIGHT); wlToDateCol.setText(BaseMessages.getString(PKG, "LoadSatDialog.ToDateExpCol.Label")); props.setLook(wlToDateCol); FormData fdlNatTable = new FormData(); fdlNatTable.left = new FormAttachment(0, 0); fdlNatTable.right = new FormAttachment(middle, -margin); fdlNatTable.top = new FormAttachment(wClosingDateFields, margin); wlToDateCol.setLayoutData(fdlNatTable); wcbToDateCol = new CCombo(wClosingDateFields, SWT.BORDER); props.setLook(wcbToDateCol); wcbToDateCol.addModifyListener(lsMod); FormData fdToDate = new FormData(); fdToDate.left = new FormAttachment(middle, 0); fdToDate.right = new FormAttachment(middle + (100 - middle) / 2, -margin); fdToDate.top = new FormAttachment(wClosingDateFields, margin); wcbToDateCol.setLayoutData(fdToDate); wcbToDateCol.addFocusListener( new FocusListener() { public void focusLost(FocusEvent arg0) {} public void focusGained(FocusEvent arg0) { Cursor busy = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT); shell.setCursor(busy); setToDateColumns(); shell.setCursor(null); busy.dispose(); } }); // Expire toDate MAX flag value wlToDateMax = new Label(wClosingDateFields, SWT.RIGHT); String flagText = BaseMessages.getString(PKG, "LoadSatDialog.ExpRecFlag.Label"); wlToDateMax.setText(flagText); props.setLook(wlToDateMax); FormData fdlToDateMax = new FormData(); fdlToDateMax.left = new FormAttachment(0, 0); fdlToDateMax.right = new FormAttachment(middle, -margin); fdlToDateMax.top = new FormAttachment(wcbToDateCol, margin); wlToDateMax.setLayoutData(fdlToDateMax); wToDateMax = new Text(wClosingDateFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); props.setLook(wToDateMax); wToDateMax.addModifyListener(lsMod); FormData fdToDateMax = new FormData(); fdToDateMax.left = new FormAttachment(middle, 0); fdToDateMax.right = new FormAttachment(middle + (100 - middle) / 2, -margin); fdToDateMax.top = new FormAttachment(wcbToDateCol, margin); wToDateMax.setLayoutData(fdToDateMax); Label wlToDateFlag = new Label(wClosingDateFields, SWT.RIGHT); wlToDateFlag.setText("(" + LoadSatMeta.DATE_FORMAT + ")"); props.setLook(wlToDateFlag); FormData fdlToDateFlag = new FormData(); fdlToDateFlag.left = new FormAttachment(wToDateMax, margin); fdlToDateFlag.top = new FormAttachment(wcbToDateCol, 2 * margin); wlToDateFlag.setLayoutData(fdlToDateFlag); // Fixing the "ClosingDate" group FormData fdOptGroup = new FormData(); fdOptGroup.left = new FormAttachment(0, 0); fdOptGroup.right = new FormAttachment(100, 0); fdOptGroup.bottom = new FormAttachment(wAuditFields, -2 * margin); wClosingDateFields.setLayoutData(fdOptGroup); wClosingDateFields.setTabList(new Control[] {wcbToDateCol, wToDateMax}); // to fix the Mapping Grid FormData fdKey = new FormData(); fdKey.left = new FormAttachment(0, 0); fdKey.top = new FormAttachment(wlKey, margin); fdKey.right = new FormAttachment(100, 0); fdKey.bottom = new FormAttachment(wClosingDateFields, -2 * margin); wKey.setLayoutData(fdKey); // 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(), i); } setComboBoxes(); } catch (KettleException e) { logError(BaseMessages.getString(PKG, "System.Dialog.GetFieldsFailed.Message")); } } } }; new Thread(runnable).start(); wbIsIdempotentSat.addSelectionListener(lsDef); wcbToDateCol.addSelectionListener(lsDef); wToDateMax.addSelectionListener(lsDef); getData(); setTableFieldCombo(); inputMeta.setChanged(backupChanged); // Set the shell size, based upon previous time... setSize(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
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, "RandomCCNumberGeneratorDialog.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.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); // /////////////////////////////// // START OF OutputFields GROUP // ///////////////////////////////// wOutputFields = new Group(shell, SWT.SHADOW_NONE); props.setLook(wOutputFields); wOutputFields.setText( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.wOutputFields.Label")); FormLayout OutputFieldsgroupLayout = new FormLayout(); OutputFieldsgroupLayout.marginWidth = 10; OutputFieldsgroupLayout.marginHeight = 10; wOutputFields.setLayout(OutputFieldsgroupLayout); // CCNumberField fieldname ... wlCCNumberField = new Label(wOutputFields, SWT.RIGHT); wlCCNumberField.setText( BaseMessages.getString( PKG, "RandomCCNumberGeneratorDialog.CCNumberFieldName.Label")); // $NON-NLS-1$ props.setLook(wlCCNumberField); fdlCCNumberField = new FormData(); fdlCCNumberField.left = new FormAttachment(0, 0); fdlCCNumberField.right = new FormAttachment(middle, -margin); fdlCCNumberField.top = new FormAttachment(wStepname, margin * 2); wlCCNumberField.setLayoutData(fdlCCNumberField); wCCNumberField = new Text(wOutputFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wCCNumberField.setToolTipText( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCNumberFieldName.Tooltip")); props.setLook(wCCNumberField); wCCNumberField.addModifyListener(lsMod); fdCCNumberField = new FormData(); fdCCNumberField.left = new FormAttachment(middle, 0); fdCCNumberField.top = new FormAttachment(wStepname, margin * 2); fdCCNumberField.right = new FormAttachment(100, 0); wCCNumberField.setLayoutData(fdCCNumberField); // CCTypeField fieldname ... wlCCTypeField = new Label(wOutputFields, SWT.RIGHT); wlCCTypeField.setText( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCType.Label")); // $NON-NLS-1$ props.setLook(wlCCTypeField); fdlCCTypeField = new FormData(); fdlCCTypeField.left = new FormAttachment(0, 0); fdlCCTypeField.right = new FormAttachment(middle, -margin); fdlCCTypeField.top = new FormAttachment(wCCNumberField, margin); wlCCTypeField.setLayoutData(fdlCCTypeField); wCCTypeField = new Text(wOutputFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wCCTypeField.setToolTipText( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCType.Tooltip")); props.setLook(wCCTypeField); wCCTypeField.addModifyListener(lsMod); fdCCTypeField = new FormData(); fdCCTypeField.left = new FormAttachment(middle, 0); fdCCTypeField.top = new FormAttachment(wCCNumberField, margin); fdCCTypeField.right = new FormAttachment(100, 0); wCCTypeField.setLayoutData(fdCCTypeField); // CCLengthField fieldname ... wlCCLengthField = new Label(wOutputFields, SWT.RIGHT); wlCCLengthField.setText( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCLength.Label")); // $NON-NLS-1$ props.setLook(wlCCLengthField); fdlCCLengthField = new FormData(); fdlCCLengthField.left = new FormAttachment(0, 0); fdlCCLengthField.right = new FormAttachment(middle, -margin); fdlCCLengthField.top = new FormAttachment(wCCTypeField, margin); wlCCLengthField.setLayoutData(fdlCCLengthField); wCCLengthField = new Text(wOutputFields, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wCCLengthField.setToolTipText( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCLength.Tooltip")); props.setLook(wCCLengthField); wCCLengthField.addModifyListener(lsMod); fdCCLengthField = new FormData(); fdCCLengthField.left = new FormAttachment(middle, 0); fdCCLengthField.top = new FormAttachment(wCCTypeField, margin); fdCCLengthField.right = new FormAttachment(100, 0); wCCLengthField.setLayoutData(fdCCLengthField); FormData fdOutputFields = new FormData(); fdOutputFields.left = new FormAttachment(0, margin); fdOutputFields.top = new FormAttachment(wStepname, 2 * margin); fdOutputFields.right = new FormAttachment(100, -margin); wOutputFields.setLayoutData(fdOutputFields); // /////////////////////////////////////////////////////////// // / END OF OutputFields GROUP // /////////////////////////////////////////////////////////// wlFields = new Label(shell, SWT.NONE); wlFields.setText(BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.Fields.Label")); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.top = new FormAttachment(wOutputFields, margin); wlFields.setLayoutData(fdlFields); final int FieldsCols = 3; final int FieldsRows = input.getFieldCCType().length; ColumnInfo[] colinf = new ColumnInfo[FieldsCols]; colinf[0] = new ColumnInfo( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCTypeColumn.Column"), ColumnInfo.COLUMN_TYPE_CCOMBO, RandomCreditCardNumberGenerator.cardTypes); colinf[0].setReadOnly(true); colinf[1] = new ColumnInfo( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCLengthColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinf[1].setUsingVariables(true); colinf[2] = new ColumnInfo( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.CCSizeColumn.Column"), ColumnInfo.COLUMN_TYPE_TEXT, false); colinf[2].setUsingVariables(true); wFields = new TableView( transMeta, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, FieldsRows, lsMod, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(100, 0); fdFields.bottom = new FormAttachment(100, -50); wFields.setLayoutData(fdFields); // Some buttons 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")); wPreview = new Button(shell, SWT.PUSH); wPreview.setText( BaseMessages.getString(PKG, "RandomCCNumberGeneratorDialog.Button.PreviewRows")); setButtonPositions(new Button[] {wOK, wPreview, wCancel}, margin, wFields); // 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); lsPreview = new Listener() { public void handleEvent(Event e) { preview(); } }; lsDef = new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { ok(); } }; wPreview.addListener(SWT.Selection, lsPreview); wStepname.addSelectionListener(lsDef); // Detect X or ALT-F4 or something that kills this window... shell.addShellListener( new ShellAdapter() { public void shellClosed(ShellEvent e) { cancel(); } }); // Set the shell size, based upon previous time... setSize(); getData(); input.setChanged(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return stepname; }
private boolean addFields() { // int middle = props.getMiddlePct(); int margin = Const.MARGIN; if (wlFields == null) { wlFields = new Label(shell, SWT.LEFT); wlFields.setText(message); props.setLook(wlFields); fdlFields = new FormData(); fdlFields.left = new FormAttachment(0, 0); fdlFields.right = new FormAttachment(100, 0); fdlFields.top = new FormAttachment(0, margin); wlFields.setLayoutData(fdlFields); } else { wFields.dispose(); } if (dynamic && rowMeta == null) { rowMeta = new RowMeta(); rowMeta.addValueMeta(new ValueMeta("<waiting for rows>", ValueMetaInterface.TYPE_STRING)); waitingForRows = true; } if (!dynamic) { // Mmm, if we don't get any rows in the buffer: show a dialog box. if (buffer == null || buffer.size() == 0) { ShowMessageDialog dialog = new ShowMessageDialog( shell, SWT.OK | SWT.ICON_WARNING, BaseMessages.getString(PKG, "PreviewRowsDialog.NoRows.Text"), BaseMessages.getString(PKG, "PreviewRowsDialog.NoRows.Message")); dialog.open(); shell.dispose(); return true; } } // ColumnInfo[] colinf = new ColumnInfo[rowMeta==null ? 0 : rowMeta.size()]; ColumnInfo[] colinf = new ColumnInfo[rowMeta.size()]; for (int i = 0; i < rowMeta.size(); i++) { ValueMetaInterface v = rowMeta.getValueMeta(i); colinf[i] = new ColumnInfo(v.getName(), ColumnInfo.COLUMN_TYPE_TEXT, v.isNumeric()); colinf[i].setToolTip(v.toStringMeta()); colinf[i].setValueMeta(v); } wFields = new TableView( variables, shell, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI, colinf, 0, null, props); fdFields = new FormData(); fdFields.left = new FormAttachment(0, 0); fdFields.top = new FormAttachment(wlFields, margin); fdFields.right = new FormAttachment(100, 0); fdFields.bottom = new FormAttachment(100, -50); wFields.setLayoutData(fdFields); if (dynamic) { shell.layout(true, true); } return false; }
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(); } }; backupChanged = input.hasChanged(); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "SASInputDialog.Dialog.Title")); 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.right = new FormAttachment(middle, -margin); fdlStepname.top = new FormAttachment(0, 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); Control lastControl = wStepname; // Which field do we read from? // Label wlAccField = new Label(shell, SWT.RIGHT); wlAccField.setText(BaseMessages.getString(PKG, "SASInputDialog.AcceptField.Label")); props.setLook(wlAccField); FormData fdlAccField = new FormData(); fdlAccField.top = new FormAttachment(lastControl, margin); fdlAccField.left = new FormAttachment(0, 0); fdlAccField.right = new FormAttachment(middle, -margin); wlAccField.setLayoutData(fdlAccField); wAccField = new CCombo(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); wAccField.setToolTipText(BaseMessages.getString(PKG, "SASInputDialog.AcceptField.Tooltip")); props.setLook(wAccField); FormData fdAccField = new FormData(); fdAccField.top = new FormAttachment(lastControl, margin); fdAccField.left = new FormAttachment(middle, 0); fdAccField.right = new FormAttachment(100, 0); wAccField.setLayoutData(fdAccField); lastControl = wAccField; // Fill in the source fields... // try { RowMetaInterface fields = transMeta.getPrevStepFields(stepMeta); wAccField.setItems(fields.getFieldNames()); } catch (Exception e) { LogChannel.GENERAL.logError("Couldn't get input fields for step '" + stepMeta + "'", e); } // Some buttons wOK = new Button(shell, SWT.PUSH); wOK.setText(BaseMessages.getString(PKG, "System.Button.OK")); wOK.addListener( SWT.Selection, new Listener() { public void handleEvent(Event e) { ok(); } }); wGet = new Button(shell, SWT.PUSH); wGet.setText(BaseMessages.getString(PKG, "System.Button.GetFields")); wGet.addListener( SWT.Selection, new Listener() { public void handleEvent(Event e) { get(); } }); wCancel = new Button(shell, SWT.PUSH); wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel")); wCancel.addListener( SWT.Selection, new Listener() { public void handleEvent(Event e) { cancel(); } }); setButtonPositions(new Button[] {wOK, wGet, wCancel}, margin, null); Label wlFields = new Label(shell, SWT.LEFT); wlFields.setText(BaseMessages.getString(PKG, "SASInputDialog.Fields.Label")); props.setLook(wlFields); FormData fdlFields = new FormData(); fdlFields.top = new FormAttachment(lastControl, margin); fdlFields.left = new FormAttachment(0, 0); fdlFields.right = new FormAttachment(100, 0); wlFields.setLayoutData(fdlFields); lastControl = wlFields; // Fields ColumnInfo[] colinf = new ColumnInfo[] { new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Name"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Rename"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Type"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMeta.getTypes(), true), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Mask"), ColumnInfo.COLUMN_TYPE_FORMAT, 2), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Length"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Precision"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Decimal"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.Group"), ColumnInfo.COLUMN_TYPE_TEXT, false), new ColumnInfo( BaseMessages.getString(PKG, "SASInputDialog.OutputFieldColumn.TrimType"), ColumnInfo.COLUMN_TYPE_CCOMBO, ValueMeta.trimTypeDesc), }; colinf[3].setComboValuesSelectionListener( new ComboValuesSelectionListener() { public String[] getComboValues(TableItem tableItem, int rowNr, int colNr) { String[] comboValues = new String[] {}; int type = ValueMeta.getType(tableItem.getText(colNr - 1)); switch (type) { case ValueMetaInterface.TYPE_DATE: comboValues = Const.getDateFormats(); break; case ValueMetaInterface.TYPE_INTEGER: case ValueMetaInterface.TYPE_BIGNUMBER: case ValueMetaInterface.TYPE_NUMBER: comboValues = Const.getNumberFormats(); break; default: break; } return comboValues; } }); wFields = new TableView(transMeta, shell, SWT.FULL_SELECTION | SWT.MULTI, colinf, 1, lsMod, props); FormData fdFields = new FormData(); fdFields.top = new FormAttachment(lastControl, margin * 2); fdFields.bottom = new FormAttachment(wOK, -margin * 2); fdFields.left = new FormAttachment(0, 0); fdFields.right = new FormAttachment(100, 0); wFields.setLayoutData(fdFields); 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(); } }); getData(); input.setChanged(changed); // Set the shell size, based upon previous time... setSize(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }