private void ok() { if (Const.isEmpty(wName.getText())) { MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR); mb.setText(Messages.getString("System.StepJobEntryNameMissing.Title")); mb.setMessage(Messages.getString("System.JobEntryNameMissing.Msg")); mb.open(); return; } jobEntry.setName(wName.getText()); jobEntry.setIncludeSubfolders(wIncludeSubfolders.getSelection()); jobEntry.setArgFromPrevious(wPrevious.getSelection()); jobEntry.setNrErrorsLessThan(wNrErrorsLessThan.getText()); if (wSuccessCondition.getSelectionIndex() == 1) jobEntry.setSuccessCondition(jobEntry.SUCCESS_IF_AT_LEAST_X_FILES_WELL_FORMED); else if (wSuccessCondition.getSelectionIndex() == 2) jobEntry.setSuccessCondition(jobEntry.SUCCESS_IF_BAD_FORMED_FILES_LESS); else jobEntry.setSuccessCondition(jobEntry.SUCCESS_IF_NO_ERRORS); if (wAddFilenameToResult.getSelectionIndex() == 1) jobEntry.setResultFilenames(jobEntry.ADD_WELL_FORMED_FILES_ONLY); else if (wAddFilenameToResult.getSelectionIndex() == 2) jobEntry.setResultFilenames(jobEntry.ADD_BAD_FORMED_FILES_ONLY); else jobEntry.setResultFilenames(jobEntry.ADD_ALL_FILENAMES); int nritems = wFields.nrNonEmpty(); int nr = 0; for (int i = 0; i < nritems; i++) { String arg = wFields.getNonEmpty(i).getText(1); if (arg != null && arg.length() != 0) nr++; } jobEntry.source_filefolder = new String[nr]; jobEntry.wildcard = new String[nr]; nr = 0; for (int i = 0; i < nritems; i++) { String source = wFields.getNonEmpty(i).getText(1); String wild = wFields.getNonEmpty(i).getText(2); if (source != null && source.length() != 0) { jobEntry.source_filefolder[nr] = source; jobEntry.wildcard[nr] = wild; nr++; } } dispose(); }
public JobEntryXMLWellFormedDialog( Shell parent, JobEntryInterface jobEntryInt, Repository rep, JobMeta jobMeta) { super(parent, jobEntryInt, rep, jobMeta); jobEntry = (JobEntryXMLWellFormed) jobEntryInt; if (this.jobEntry.getName() == null) this.jobEntry.setName(Messages.getString("JobXMLWellFormed.Name.Default")); }
/** * This dialog allows you to edit the XML valid job entry settings. * * @author Samatar Hassan * @since 26-03-2008 */ public class JobEntryXMLWellFormedDialog extends JobEntryDialog implements JobEntryDialogInterface { private static final String[] FILETYPES = new String[] { Messages.getString("JobXMLWellFormed.Filetype.Xml"), Messages.getString("JobXMLWellFormed.Filetype.All") }; private Label wlName; private Text wName; private FormData fdlName, fdName; private Label wlSourceFileFolder; private Button wbSourceFileFolder, wbSourceDirectory; private TextVar wSourceFileFolder; private FormData fdlSourceFileFolder, fdbSourceFileFolder, fdSourceFileFolder, fdbSourceDirectory; private Label wlIncludeSubfolders; private Button wIncludeSubfolders; private FormData fdlIncludeSubfolders, fdIncludeSubfolders; private Button wOK, wCancel; private Listener lsOK, lsCancel; private JobEntryXMLWellFormed jobEntry; private Shell shell; private SelectionAdapter lsDef; private boolean changed; private Label wlPrevious; private Button wPrevious; private FormData fdlPrevious, fdPrevious; private Label wlFields; private TableView wFields; private FormData fdlFields, fdFields; private Group wSettings; private FormData fdSettings; private Label wlWildcard; private TextVar wWildcard; private FormData fdlWildcard, fdWildcard; private Button wbdSourceFileFolder; // Delete private Button wbeSourceFileFolder; // Edit private Button wbaSourceFileFolder; // Add or change private CTabFolder wTabFolder; private Composite wGeneralComp, wAdvancedComp; private CTabItem wGeneralTab, wAdvancedTab; private FormData fdGeneralComp, fdAdvancedComp; private FormData fdTabFolder; // Add File to result private Group wFileResult; private FormData fdFileResult; private Group wSuccessOn; private FormData fdSuccessOn; private FormData fdbeSourceFileFolder, fdbaSourceFileFolder, fdbdSourceFileFolder; private Label wlSuccessCondition, wlAddFilenameToResult; private CCombo wSuccessCondition, wAddFilenameToResult; private FormData fdlSuccessCondition, fdSuccessCondition, fdlAddFilenameToResult, fdAddFilenameToResult; private Label wlNrErrorsLessThan; private TextVar wNrErrorsLessThan; private FormData fdlNrErrorsLessThan, fdNrErrorsLessThan; public JobEntryXMLWellFormedDialog( Shell parent, JobEntryInterface jobEntryInt, Repository rep, JobMeta jobMeta) { super(parent, jobEntryInt, rep, jobMeta); jobEntry = (JobEntryXMLWellFormed) jobEntryInt; if (this.jobEntry.getName() == null) this.jobEntry.setName(Messages.getString("JobXMLWellFormed.Name.Default")); } 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; } private void activeSuccessCondition() { wlNrErrorsLessThan.setEnabled(wSuccessCondition.getSelectionIndex() != 0); wNrErrorsLessThan.setEnabled(wSuccessCondition.getSelectionIndex() != 0); } private void RefreshArgFromPrevious() { wlFields.setEnabled(!wPrevious.getSelection()); wFields.setEnabled(!wPrevious.getSelection()); wbdSourceFileFolder.setEnabled(!wPrevious.getSelection()); wbeSourceFileFolder.setEnabled(!wPrevious.getSelection()); wbSourceFileFolder.setEnabled(!wPrevious.getSelection()); wbaSourceFileFolder.setEnabled(!wPrevious.getSelection()); wlSourceFileFolder.setEnabled(!wPrevious.getSelection()); wSourceFileFolder.setEnabled(!wPrevious.getSelection()); wlWildcard.setEnabled(!wPrevious.getSelection()); wWildcard.setEnabled(!wPrevious.getSelection()); wbSourceDirectory.setEnabled(!wPrevious.getSelection()); } public void dispose() { WindowProperty winprop = new WindowProperty(shell); props.setScreen(winprop); shell.dispose(); } /** Copy information from the meta-data input to the dialog fields. */ public void getData() { if (jobEntry.getName() != null) wName.setText(jobEntry.getName()); wName.selectAll(); if (jobEntry.source_filefolder != null) { for (int i = 0; i < jobEntry.source_filefolder.length; i++) { TableItem ti = wFields.table.getItem(i); if (jobEntry.source_filefolder[i] != null) ti.setText(1, jobEntry.source_filefolder[i]); if (jobEntry.wildcard[i] != null) ti.setText(3, jobEntry.wildcard[i]); } wFields.setRowNums(); wFields.optWidth(true); } wPrevious.setSelection(jobEntry.arg_from_previous); wIncludeSubfolders.setSelection(jobEntry.include_subfolders); if (jobEntry.getNrErrorsLessThan() != null) wNrErrorsLessThan.setText(jobEntry.getNrErrorsLessThan()); else wNrErrorsLessThan.setText("10"); if (jobEntry.getSuccessCondition() != null) { if (jobEntry.getSuccessCondition().equals(jobEntry.SUCCESS_IF_AT_LEAST_X_FILES_WELL_FORMED)) wSuccessCondition.select(1); else if (jobEntry.getSuccessCondition().equals(jobEntry.SUCCESS_IF_BAD_FORMED_FILES_LESS)) wSuccessCondition.select(2); else wSuccessCondition.select(0); } else wSuccessCondition.select(0); if (jobEntry.getResultFilenames() != null) { if (jobEntry.getResultFilenames().equals(jobEntry.ADD_WELL_FORMED_FILES_ONLY)) wAddFilenameToResult.select(1); else if (jobEntry.getResultFilenames().equals(jobEntry.ADD_BAD_FORMED_FILES_ONLY)) wAddFilenameToResult.select(2); else wAddFilenameToResult.select(0); } else wAddFilenameToResult.select(0); } private void cancel() { jobEntry.setChanged(changed); jobEntry = null; dispose(); } private void ok() { if (Const.isEmpty(wName.getText())) { MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR); mb.setText(Messages.getString("System.StepJobEntryNameMissing.Title")); mb.setMessage(Messages.getString("System.JobEntryNameMissing.Msg")); mb.open(); return; } jobEntry.setName(wName.getText()); jobEntry.setIncludeSubfolders(wIncludeSubfolders.getSelection()); jobEntry.setArgFromPrevious(wPrevious.getSelection()); jobEntry.setNrErrorsLessThan(wNrErrorsLessThan.getText()); if (wSuccessCondition.getSelectionIndex() == 1) jobEntry.setSuccessCondition(jobEntry.SUCCESS_IF_AT_LEAST_X_FILES_WELL_FORMED); else if (wSuccessCondition.getSelectionIndex() == 2) jobEntry.setSuccessCondition(jobEntry.SUCCESS_IF_BAD_FORMED_FILES_LESS); else jobEntry.setSuccessCondition(jobEntry.SUCCESS_IF_NO_ERRORS); if (wAddFilenameToResult.getSelectionIndex() == 1) jobEntry.setResultFilenames(jobEntry.ADD_WELL_FORMED_FILES_ONLY); else if (wAddFilenameToResult.getSelectionIndex() == 2) jobEntry.setResultFilenames(jobEntry.ADD_BAD_FORMED_FILES_ONLY); else jobEntry.setResultFilenames(jobEntry.ADD_ALL_FILENAMES); int nritems = wFields.nrNonEmpty(); int nr = 0; for (int i = 0; i < nritems; i++) { String arg = wFields.getNonEmpty(i).getText(1); if (arg != null && arg.length() != 0) nr++; } jobEntry.source_filefolder = new String[nr]; jobEntry.wildcard = new String[nr]; nr = 0; for (int i = 0; i < nritems; i++) { String source = wFields.getNonEmpty(i).getText(1); String wild = wFields.getNonEmpty(i).getText(2); if (source != null && source.length() != 0) { jobEntry.source_filefolder[nr] = source; jobEntry.wildcard[nr] = wild; nr++; } } dispose(); } public String toString() { return this.getClass().getName(); } public boolean evaluates() { return true; } public boolean isUnconditional() { return false; } }
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; }