diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java index d585ec5a7b7d..2938f419909c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileChooser/ex/FileChooserDialogImpl.java @@ -114,16 +114,32 @@ public class FileChooserDialogImpl extends DialogWrapper implements FileChooserD @Override @NotNull - public VirtualFile[] choose(@Nullable VirtualFile toSelect, Project project) { + public VirtualFile[] choose(@Nullable final Project project, @NotNull final VirtualFile... toSelect) { init(); - if (myProject == null && project != null) { + if ((myProject == null) && (project != null)) { myProject = project; } - restoreSelection(toSelect); + if (toSelect.length == 1) { + restoreSelection(toSelect[0]); + } + else if (toSelect.length == 0) { + restoreSelection(null); // select last opened file + } + else { + selectInTree(toSelect, true); + } + show(); return myChosenFiles; } + + @NotNull + @Override + public VirtualFile[] choose(@Nullable final VirtualFile toSelect, @Nullable final Project project) { + return choose(project, toSelect); + } + @Override public void choose(@Nullable VirtualFile toSelect, @NotNull Consumer<List<VirtualFile>> callback) { init(); @@ -163,7 +179,6 @@ public class FileChooserDialogImpl extends DialogWrapper implements FileChooserD if (file != null && file.getFileSystem() instanceof LocalFileSystem) { saveRecent(file.getPath()); } - } protected void saveRecent(String path) { |