diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FileEditorFactory.java b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FileEditorFactory.java index 6b7a7aba5c..80650e7ff9 100644 --- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FileEditorFactory.java +++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FileEditorFactory.java @@ -76,7 +76,7 @@ public class FileEditorFactory extends AbstractEditorFactory { final FileProperty fp = filePropertyFrom(desc); // TODO - really necessary? - picker.addListener(SWT.FocusOut, new Listener() { + picker.addFocusOutListener(new Listener() { public void handleEvent(Event event) { File newValue = picker.getFile(); File existingValue = (File)valueFor(source, fp); diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FilePicker.java b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FilePicker.java index 8f4a545f1a..5058e4f9f2 100644 --- a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FilePicker.java +++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/ui/preferences/editors/FilePicker.java @@ -68,6 +68,10 @@ public class FilePicker extends Composite { fileField.setLayoutData(data); } + public void addFocusOutListener(Listener listener) { + fileField.addListener(SWT.FocusOut, listener); + } + private void openFileDialog(Shell shell) { FileDialog fd = new FileDialog(shell, SWT.OPEN); @@ -79,6 +83,7 @@ public class FilePicker extends Composite { String selected = fd.open(); fileField.setText(selected == null ? "" : selected); + fileField.setFocus(); } public void setBackground(Color clr) { @@ -102,10 +107,7 @@ public class FilePicker extends Composite { public File getFile() { String name = fileField.getText(); - if (StringUtil.isEmpty(name)) return null; - - File file = new File(name); - return file.exists() ? file : null; + return StringUtil.isEmpty(name) ? null : new File(name); } }