FileChooserDialog now supports several files
[idea/community.git] / platform / platform-impl / src / com / intellij / openapi / fileChooser / ex / FileChooserDialogImpl.java
index d585ec5a7b7df963e8d0c4afd9837967cca8145c..d2ea19bc403def31eac23ab2258196ccd8d8069d 100644 (file)
@@ -114,16 +114,29 @@ 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 {
+      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 +176,6 @@ public class FileChooserDialogImpl extends DialogWrapper implements FileChooserD
     if (file != null && file.getFileSystem() instanceof LocalFileSystem) {
       saveRecent(file.getPath());
     }
-
   }
 
   protected void saveRecent(String path) {