1
0
mirror of https://github.com/mitb-archive/filebot synced 2024-08-13 17:03:45 -04:00

* fix FileChooser issues

@see https://www.filebot.net/forums/viewtopic.php?f=6&t=2165&p=12432#p12432
This commit is contained in:
Reinhard Pointner 2014-11-07 16:05:56 +00:00
parent 8f5bf9f49f
commit 2676762686
2 changed files with 20 additions and 10 deletions

View File

@ -75,11 +75,11 @@ public class UserFiles {
private static final String KEY_OPEN_FOLDER = "open.folder";
private static final String KEY_SAVE = "save.file";
protected static File getFileChooserDefaultFile(String name, File userValue) {
protected static File getFileChooserDefaultFile(String key, File userValue) {
if (userValue != null && userValue.getParentFile() != null)
return userValue;
String path = Settings.forPackage(UserFiles.class).get(PREF_KEY_PREFIX + name);
String path = Settings.forPackage(UserFiles.class).get(PREF_KEY_PREFIX + key);
if (path == null || path.isEmpty())
return userValue;
@ -103,7 +103,15 @@ public class UserFiles {
chooser.setDialogTitle(title);
chooser.setMultiSelectionEnabled(multiSelection);
chooser.setFileSelectionMode(folderMode && filter == null ? JFileChooser.DIRECTORIES_ONLY : JFileChooser.FILES_AND_DIRECTORIES);
chooser.setSelectedFile(defaultFile);
if (defaultFile != null) {
if (defaultFile.exists()) {
chooser.setSelectedFile(defaultFile);
} else if (defaultFile.getParentFile().exists()) {
chooser.setCurrentDirectory(defaultFile.getParentFile());
}
}
if (filter != null) {
chooser.setFileFilter(new javax.swing.filechooser.FileNameExtensionFilter(filter.toString(), filter.extensions()));
}
@ -139,9 +147,7 @@ public class UserFiles {
FileDialog fileDialog = createFileDialog(parent, title, FileDialog.LOAD, folderMode);
fileDialog.setTitle(title);
fileDialog.setMultipleMode(multiSelection);
if (filter != null) {
fileDialog.setFilenameFilter(filter);
}
if (defaultFile != null) {
if (folderMode && defaultFile.isDirectory()) {
fileDialog.setDirectory(defaultFile.getPath());
@ -153,6 +159,10 @@ public class UserFiles {
}
}
if (filter != null) {
fileDialog.setFilenameFilter(filter);
}
fileDialog.setVisible(true);
return asList(fileDialog.getFiles());
}

View File

@ -724,7 +724,7 @@ public final class FileUtilities {
private final String[] extensions;
public ExtensionFileFilter(String... extensions) {
this.extensions = extensions;
this.extensions = extensions.clone();
}
public ExtensionFileFilter(Collection<String> extensions) {
@ -733,16 +733,16 @@ public final class FileUtilities {
@Override
public boolean accept(File dir, String name) {
return hasExtension(name, extensions);
return accept(name);
}
@Override
public boolean accept(File file) {
return hasExtension(file, extensions);
return accept(file.getName());
}
public boolean accept(String name) {
return hasExtension(name, extensions);
return acceptAny() || hasExtension(name, extensions);
}
public boolean acceptAny() {