mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-159369 Mac Native File Chooser doesn't open on pressing Browse [...] button; IAE at MacPathChooserDialog.findOwnerByComponent
This commit is contained in:
@@ -256,7 +256,7 @@ public class ComponentWithBrowseButton<Comp extends JComponent> extends JPanel i
|
||||
}
|
||||
}
|
||||
|
||||
FileChooser.chooseFile(fileChooserDescriptor, getProject(), getInitialFile(), file -> onFileChosen(file));
|
||||
FileChooser.chooseFile(fileChooserDescriptor, getProject(), myTextComponent, getInitialFile(), this::onFileChosen);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.Consumer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -63,10 +64,14 @@ public class MacPathChooserDialog implements PathChooserDialog {
|
||||
|
||||
@Override
|
||||
public void choose(@Nullable VirtualFile toSelect, @NotNull Consumer<List<VirtualFile>> callback) {
|
||||
myFileDialog.setFile(toSelect.getCanonicalPath());
|
||||
String path = toSelect != null ? toSelect.getCanonicalPath() : null;
|
||||
myFileDialog.setFile(path);
|
||||
myFileDialog.setVisible(true);
|
||||
|
||||
callback.consume(getChosenFiles(Stream.of(myFileDialog.getFiles())));
|
||||
File[] files = myFileDialog.getFiles();
|
||||
if (!ArrayUtil.isEmpty(files)) {
|
||||
callback.consume(getChosenFiles(Stream.of(files)));
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user