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(); FormLayout formLayout = new FormLayout(); formLayout.marginWidth = Const.FORM_MARGIN; formLayout.marginHeight = Const.FORM_MARGIN; middle = props.getMiddlePct(); margin = Const.MARGIN; shell.setLayout(formLayout); shell.setText(BaseMessages.getString(PKG, "TableCompareDialog.Shell.Title")); // Stepname line wlStepname = new Label(shell, SWT.RIGHT); wlStepname.setText(BaseMessages.getString(PKG, "TableCompareDialog.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; // Reference DB + schema + table // wReferenceDB = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.ReferenceDB.Label"), BaseMessages.getString(PKG, "TableCompareDialog.ReferenceDB.Tooltip")); props.setLook(wReferenceDB); FormData fdReferenceDB = new FormData(); fdReferenceDB.left = new FormAttachment(0, 0); fdReferenceDB.top = new FormAttachment(lastControl, margin); fdReferenceDB.right = new FormAttachment(100, 0); wReferenceDB.setLayoutData(fdReferenceDB); lastControl = wReferenceDB; wReferenceSchema = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.ReferenceSchemaField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.ReferenceSchemaField.Tooltip")); props.setLook(wReferenceSchema); FormData fdReferenceSchema = new FormData(); fdReferenceSchema.left = new FormAttachment(0, 0); fdReferenceSchema.top = new FormAttachment(lastControl, margin); fdReferenceSchema.right = new FormAttachment(100, 0); wReferenceSchema.setLayoutData(fdReferenceSchema); lastControl = wReferenceSchema; wReferenceTable = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.ReferenceTableField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.ReferenceTableField.Tooltip")); props.setLook(wReferenceTable); FormData fdReferenceTable = new FormData(); fdReferenceTable.left = new FormAttachment(0, 0); fdReferenceTable.top = new FormAttachment(lastControl, margin); fdReferenceTable.right = new FormAttachment(100, 0); wReferenceTable.setLayoutData(fdReferenceTable); lastControl = wReferenceTable; // Reference DB + schema + table // wCompareDB = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.CompareDB.Label"), BaseMessages.getString(PKG, "TableCompareDialog.CompareDB.Tooltip")); props.setLook(wCompareDB); FormData fdCompareDB = new FormData(); fdCompareDB.left = new FormAttachment(0, 0); fdCompareDB.top = new FormAttachment(lastControl, margin); fdCompareDB.right = new FormAttachment(100, 0); wCompareDB.setLayoutData(fdCompareDB); lastControl = wCompareDB; wCompareSchema = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.CompareSchemaField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.CompareSchemaField.Tooltip")); props.setLook(wCompareSchema); FormData fdCompareSchema = new FormData(); fdCompareSchema.left = new FormAttachment(0, 0); fdCompareSchema.top = new FormAttachment(lastControl, margin); fdCompareSchema.right = new FormAttachment(100, 0); wCompareSchema.setLayoutData(fdCompareSchema); lastControl = wCompareSchema; wCompareTable = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.CompareTableField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.CompareTableField.Tooltip")); props.setLook(wCompareTable); FormData fdCompareTable = new FormData(); fdCompareTable.left = new FormAttachment(0, 0); fdCompareTable.top = new FormAttachment(lastControl, margin); fdCompareTable.right = new FormAttachment(100, 0); wCompareTable.setLayoutData(fdCompareTable); lastControl = wCompareTable; wKeyFields = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.KeyFieldsField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.KeyFieldsField.Tooltip")); props.setLook(wKeyFields); FormData fdKeyFields = new FormData(); fdKeyFields.left = new FormAttachment(0, 0); fdKeyFields.top = new FormAttachment(lastControl, margin); fdKeyFields.right = new FormAttachment(100, 0); wKeyFields.setLayoutData(fdKeyFields); lastControl = wKeyFields; wExcludeFields = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.ExcludeFieldsField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.ExcludeFieldsField.Tooltip")); props.setLook(wExcludeFields); FormData fdExcludeFields = new FormData(); fdExcludeFields.left = new FormAttachment(0, 0); fdExcludeFields.top = new FormAttachment(lastControl, margin); fdExcludeFields.right = new FormAttachment(100, 0); wExcludeFields.setLayoutData(fdExcludeFields); lastControl = wExcludeFields; // The nr of errors field // wNrErrors = new LabelText( shell, BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsField.Tooltip")); props.setLook(wNrErrors); FormData fdNrErrors = new FormData(); fdNrErrors.left = new FormAttachment(0, 0); fdNrErrors.top = new FormAttachment(lastControl, margin * 3); fdNrErrors.right = new FormAttachment(100, 0); wNrErrors.setLayoutData(fdNrErrors); lastControl = wNrErrors; // The nr of records in the reference table // wNrRecordsReference = new LabelText( shell, BaseMessages.getString(PKG, "TableCompareDialog.NrRecordsReferenceField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.NrRecordsReferenceField.Tooltip")); props.setLook(wNrRecordsReference); FormData fdNrRecordsReference = new FormData(); fdNrRecordsReference.left = new FormAttachment(0, 0); fdNrRecordsReference.top = new FormAttachment(lastControl, margin); fdNrRecordsReference.right = new FormAttachment(100, 0); wNrRecordsReference.setLayoutData(fdNrRecordsReference); lastControl = wNrRecordsReference; // The nr of records in the Compare table // wNrRecordsCompare = new LabelText( shell, BaseMessages.getString(PKG, "TableCompareDialog.NrRecordsCompareField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.NrRecordsCompareField.Tooltip")); props.setLook(wNrRecordsCompare); FormData fdNrRecordsCompare = new FormData(); fdNrRecordsCompare.left = new FormAttachment(0, 0); fdNrRecordsCompare.top = new FormAttachment(lastControl, margin); fdNrRecordsCompare.right = new FormAttachment(100, 0); wNrRecordsCompare.setLayoutData(fdNrRecordsCompare); lastControl = wNrRecordsCompare; // The nr of errors in the left join // wNrErrorsLeftJoin = new LabelText( shell, BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsLeftJoinField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsLeftJoinField.Tooltip")); props.setLook(wNrErrorsLeftJoin); FormData fdNrErrorsLeftJoin = new FormData(); fdNrErrorsLeftJoin.left = new FormAttachment(0, 0); fdNrErrorsLeftJoin.top = new FormAttachment(lastControl, margin); fdNrErrorsLeftJoin.right = new FormAttachment(100, 0); wNrErrorsLeftJoin.setLayoutData(fdNrErrorsLeftJoin); lastControl = wNrErrorsLeftJoin; // The nr of errors in the Inner join // wNrErrorsInnerJoin = new LabelText( shell, BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsInnerJoinField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsInnerJoinField.Tooltip")); props.setLook(wNrErrorsInnerJoin); FormData fdNrErrorsInnerJoin = new FormData(); fdNrErrorsInnerJoin.left = new FormAttachment(0, 0); fdNrErrorsInnerJoin.top = new FormAttachment(lastControl, margin); fdNrErrorsInnerJoin.right = new FormAttachment(100, 0); wNrErrorsInnerJoin.setLayoutData(fdNrErrorsInnerJoin); lastControl = wNrErrorsInnerJoin; // The nr of errors in the Right join // wNrErrorsRightJoin = new LabelText( shell, BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsRightJoinField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.NrErrorsRightJoinField.Tooltip")); props.setLook(wNrErrorsRightJoin); FormData fdNrErrorsRightJoin = new FormData(); fdNrErrorsRightJoin.left = new FormAttachment(0, 0); fdNrErrorsRightJoin.top = new FormAttachment(lastControl, margin); fdNrErrorsRightJoin.right = new FormAttachment(100, 0); wNrErrorsRightJoin.setLayoutData(fdNrErrorsRightJoin); lastControl = wNrErrorsRightJoin; wKeyDesc = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.KeyDescField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.KeyDescField.Tooltip")); props.setLook(wKeyDesc); FormData fdKeyDesc = new FormData(); fdKeyDesc.left = new FormAttachment(0, 0); fdKeyDesc.top = new FormAttachment(lastControl, margin * 3); fdKeyDesc.right = new FormAttachment(100, 0); wKeyDesc.setLayoutData(fdKeyDesc); lastControl = wKeyDesc; wReferenceValue = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.ReferenceValueField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.ReferenceValueField.Tooltip")); props.setLook(wReferenceValue); FormData fdReferenceValue = new FormData(); fdReferenceValue.left = new FormAttachment(0, 0); fdReferenceValue.top = new FormAttachment(lastControl, margin); fdReferenceValue.right = new FormAttachment(100, 0); wReferenceValue.setLayoutData(fdReferenceValue); lastControl = wReferenceValue; wCompareValue = new LabelCombo( shell, BaseMessages.getString(PKG, "TableCompareDialog.CompareValueField.Label"), BaseMessages.getString(PKG, "TableCompareDialog.CompareValueField.Tooltip")); props.setLook(wCompareValue); FormData fdCompareValue = new FormData(); fdCompareValue.left = new FormAttachment(0, 0); fdCompareValue.top = new FormAttachment(lastControl, margin); fdCompareValue.right = new FormAttachment(100, 0); wCompareValue.setLayoutData(fdCompareValue); lastControl = wCompareValue; 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, lastControl); // 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); wNrErrors.addSelectionListener(lsDef); wNrRecordsReference.addSelectionListener(lsDef); wNrRecordsCompare.addSelectionListener(lsDef); wNrErrorsLeftJoin.addSelectionListener(lsDef); wNrErrorsInnerJoin.addSelectionListener(lsDef); wNrErrorsRightJoin.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(changed); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return stepname; }
private void cancel() { stepname = null; input.setChanged(changed); dispose(); }
private void ok() { if (Const.isEmpty(wStepname.getText())) { return; } stepname = wStepname.getText(); // return value input.setReferenceConnection(transMeta.findDatabase(wReferenceDB.getText())); input.setReferenceSchemaField(wReferenceSchema.getText()); input.setReferenceTableField(wReferenceTable.getText()); input.setCompareConnection(transMeta.findDatabase(wCompareDB.getText())); input.setCompareSchemaField(wCompareSchema.getText()); input.setCompareTableField(wCompareTable.getText()); input.setKeyFieldsField(wKeyFields.getText()); input.setExcludeFieldsField(wExcludeFields.getText()); input.setNrErrorsField(wNrErrors.getText()); input.setNrRecordsReferenceField(wNrRecordsReference.getText()); input.setNrRecordsCompareField(wNrRecordsCompare.getText()); input.setNrErrorsLeftJoinField(wNrErrorsLeftJoin.getText()); input.setNrErrorsInnerJoinField(wNrErrorsInnerJoin.getText()); input.setNrErrorsRightJoinField(wNrErrorsRightJoin.getText()); input.setKeyDescriptionField(wKeyDesc.getText()); input.setValueReferenceField(wReferenceValue.getText()); input.setValueCompareField(wCompareValue.getText()); dispose(); }
/** Copy information from the meta-data input to the dialog fields. */ public void getData() { for (DatabaseMeta dbMeta : transMeta.getDatabases()) { wReferenceDB.add(dbMeta.getName()); wCompareDB.add(dbMeta.getName()); } wReferenceDB.setText( input.getReferenceConnection() != null ? input.getReferenceConnection().getName() : ""); wReferenceSchema.setText(Const.NVL(input.getReferenceSchemaField(), "")); wReferenceTable.setText(Const.NVL(input.getReferenceTableField(), "")); wCompareDB.setText( input.getCompareConnection() != null ? input.getCompareConnection().getName() : ""); wCompareSchema.setText(Const.NVL(input.getCompareSchemaField(), "")); wCompareTable.setText(Const.NVL(input.getCompareTableField(), "")); wKeyFields.setText(Const.NVL(input.getKeyFieldsField(), "")); wExcludeFields.setText(Const.NVL(input.getExcludeFieldsField(), "")); wNrErrors.setText(Const.NVL(input.getNrErrorsField(), "")); wNrRecordsReference.setText(Const.NVL(input.getNrRecordsReferenceField(), "")); wNrRecordsCompare.setText(Const.NVL(input.getNrRecordsCompareField(), "")); wNrErrorsLeftJoin.setText(Const.NVL(input.getNrErrorsLeftJoinField(), "")); wNrErrorsInnerJoin.setText(Const.NVL(input.getNrErrorsInnerJoinField(), "")); wNrErrorsRightJoin.setText(Const.NVL(input.getNrErrorsRightJoinField(), "")); wKeyDesc.setText(Const.NVL(input.getKeyDescriptionField(), "")); wReferenceValue.setText(Const.NVL(input.getValueReferenceField(), "")); wCompareValue.setText(Const.NVL(input.getValueCompareField(), "")); setComboValues(); wStepname.selectAll(); wStepname.setFocus(); }