diff options
author | Tor Norbye <tnorbye@google.com> | 2014-09-04 13:24:04 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-09-04 13:24:04 -0700 |
commit | c3d3a90f6b4ead083d63e28e6b9fcea93d675678 (patch) | |
tree | fc0dcd722b6d445468dbe7dad13b4c11781b1cbe /platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java | |
parent | 1aa2e09bdbd413eacb677e9fa4b50630530d0656 (diff) | |
download | idea-c3d3a90f6b4ead083d63e28e6b9fcea93d675678.tar.gz |
Snapshot idea/138.1980 from git://git.jetbrains.org/idea/community.git
Change-Id: Ib567c9c152d770212a7a3db20fbf591c210920bd
Diffstat (limited to 'platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java')
-rw-r--r-- | platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java | 89 |
1 files changed, 43 insertions, 46 deletions
diff --git a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java index c958dbca878e..2eee60aa3061 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java +++ b/platform/platform-api/src/com/intellij/openapi/fileChooser/FileChooserDescriptorFactory.java @@ -16,14 +16,13 @@ package com.intellij.openapi.fileChooser; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.util.Comparing; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.ui.UIBundle; -import org.jetbrains.annotations.NotNull; public class FileChooserDescriptorFactory { - private FileChooserDescriptorFactory() { - } + private FileChooserDescriptorFactory() { } public static FileChooserDescriptor createAllButJarContentsDescriptor() { return new FileChooserDescriptor(true, true, true, true, false, true); @@ -45,13 +44,7 @@ public class FileChooserDescriptorFactory { return new FileChooserDescriptor(true, false, false, false, false, false) { @Override public boolean isFileSelectable(VirtualFile file) { - if (super.isFileSelectable(file)) return true; - - if (SystemInfo.isMac && file.isDirectory() && "app".equals(file.getExtension())) { - return true; - } - - return false; + return super.isFileSelectable(file) || SystemInfo.isMac && file.isDirectory() && "app".equals(file.getExtension()); } }; } @@ -60,6 +53,24 @@ public class FileChooserDescriptorFactory { return new FileChooserDescriptor(true, true, true, true, false, false); } + public static FileChooserDescriptor createSingleFileDescriptor(final FileType fileType) { + return new FileChooserDescriptor(true, false, false, false, false, false).withFileFilter(new Condition<VirtualFile>() { + @Override + public boolean value(VirtualFile file) { + return file.getFileType() == fileType; + } + }); + } + + public static FileChooserDescriptor createSingleFileDescriptor(final String extension) { + return new FileChooserDescriptor(true, false, false, false, false, false).withFileFilter(new Condition<VirtualFile>() { + @Override + public boolean value(VirtualFile file) { + return Comparing.equal(file.getExtension(), extension, SystemInfo.isFileSystemCaseSensitive); + } + }); + } + public static FileChooserDescriptor createSingleFolderDescriptor() { return new FileChooserDescriptor(false, true, false, false, false, false); } @@ -72,54 +83,40 @@ public class FileChooserDescriptorFactory { return new FileChooserDescriptor(true, true, false, false, false, false); } - public static FileChooserDescriptor getDirectoryChooserDescriptor(String aSearchedObjectName) { - final FileChooserDescriptor singleFolderDescriptor = createSingleFolderDescriptor(); - singleFolderDescriptor.setTitle(UIBundle.message("file.chooser.select.object.title", aSearchedObjectName)); - return singleFolderDescriptor; + public static FileChooserDescriptor createSingleFileOrFolderDescriptor(final FileType fileType) { + return new FileChooserDescriptor(true, true, false, false, false, false).withFileFilter(new Condition<VirtualFile>() { + @Override + public boolean value(VirtualFile file) { + return file.getFileType() == fileType; + } + }); } - public static FileChooserDescriptor getFileChooserDescriptor(String aSearchedObjectName) { - final FileChooserDescriptor fileChooserDescriptor = createSingleFileNoJarsDescriptor(); - fileChooserDescriptor.setTitle(UIBundle.message("file.chooser.select.object.title", aSearchedObjectName)); - return fileChooserDescriptor; + /** @deprecated use {@link #createSingleFileDescriptor(FileType)} or {@link #createSingleFileOrFolderDescriptor(FileType)} (to be removed in IDEA 14) */ + @SuppressWarnings("UnusedDeclaration") + public static FileChooserDescriptor createSingleFileDescriptor(final FileType fileType, final boolean supportDirectories) { + return supportDirectories ? createSingleFileOrFolderDescriptor(fileType) : createSingleFileDescriptor(fileType); } - public static FileChooserDescriptor createSingleFileDescriptor(final FileType fileType) { - return createSingleFileDescriptor(fileType, false); + /** @deprecated not very useful (to be removed in IDEA 15) */ + @SuppressWarnings("UnusedDeclaration") + public static FileChooserDescriptor getDirectoryChooserDescriptor(String objectName) { + return createSingleFolderDescriptor().withTitle("Select " + objectName); } - /** - * Creates file descriptor with certain type and (possible) folders. - * @param fileType supported type - * @param supportDirectories support directories or not - * @return descriptor - */ - @NotNull - public static FileChooserDescriptor createSingleFileDescriptor(final FileType fileType, final boolean supportDirectories) { - return new FileChooserDescriptor(true, supportDirectories, false, false, false, false) { - @Override - public boolean isFileVisible(final VirtualFile file, final boolean showHiddenFiles) { - return file.isDirectory() || file.getFileType() == fileType; - } - - @Override - public boolean isFileSelectable(final VirtualFile file) { - return super.isFileSelectable(file) && (file.getFileType() == fileType || ((file.isDirectory() && supportDirectories))); - } - }; + /** @deprecated not very useful (to be removed in IDEA 15) */ + @SuppressWarnings("UnusedDeclaration") + public static FileChooserDescriptor getFileChooserDescriptor(String objectName) { + return createSingleFileNoJarsDescriptor().withTitle("Select " + objectName); } - /** - * @deprecated use {@link #createSingleFileNoJarsDescriptor()} (to be removed in IDEA 15) - */ + /** @deprecated use {@link #createSingleFileNoJarsDescriptor()} (to be removed in IDEA 15) */ @SuppressWarnings({"UnusedDeclaration", "deprecation"}) public static FileChooserDescriptorBuilder onlyFiles() { return FileChooserDescriptorBuilder.onlyFiles(); } - /** - * @deprecated use {@link #createSingleFileOrFolderDescriptor()} ()} (to be removed in IDEA 15) - */ + /** @deprecated use {@link #createSingleFileOrFolderDescriptor()} ()} (to be removed in IDEA 15) */ @SuppressWarnings({"UnusedDeclaration", "deprecation"}) public static FileChooserDescriptorBuilder filesAndFolders() { return FileChooserDescriptorBuilder.filesAndFolders(); |