X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fio%2FJalviewFileFilter.java;h=10dc9ea939b2d22d600be98037bfb66028acb005;hb=refs%2Fheads%2Ffeatures%2FJAL-3417_sdppred_calcs;hp=21f5b0fe36fddd092fc5cbed9af6993ae04fdae8;hpb=ede7927272c6b59e01466d3120e834b26e021003;p=jalview.git diff --git a/src/jalview/io/JalviewFileFilter.java b/src/jalview/io/JalviewFileFilter.java index 21f5b0f..10dc9ea 100755 --- a/src/jalview/io/JalviewFileFilter.java +++ b/src/jalview/io/JalviewFileFilter.java @@ -20,6 +20,8 @@ */ package jalview.io; +import java.util.Locale; + import java.io.File; import java.util.Hashtable; import java.util.Iterator; @@ -41,6 +43,8 @@ public class JalviewFileFilter extends FileFilter private boolean useExtensionsInDescription = true; + private JalviewFileChooser parentJFC = null; + public JalviewFileFilter(String extension, String description) { StringTokenizer st = new StringTokenizer(extension, ","); @@ -81,6 +85,7 @@ public class JalviewFileFilter extends FileFilter @Override public boolean accept(File f) { + if (f != null) { String extension = getExtension(f); @@ -94,6 +99,29 @@ public class JalviewFileFilter extends FileFilter { return true; } + + } + + if (parentJFC != null && parentJFC.includeBackupFiles) + { + Iterator it = filters.keySet().iterator(); + EXTENSION: while (it.hasNext()) + { + String ext = it.next(); + + // quick negative test + if (!f.getName().contains(ext)) + { + continue EXTENSION; + } + + BackupFilenameParts bfp = BackupFilenameParts + .currentBackupFilenameParts(f.getName(), ext, true); + if (bfp.isBackupFile()) + { + return true; + } + } } return false; @@ -108,7 +136,7 @@ public class JalviewFileFilter extends FileFilter if ((i > 0) && (i < (filename.length() - 1))) { - return filename.substring(i + 1).toLowerCase(); + return filename.substring(i + 1).toLowerCase(Locale.ROOT); } ; @@ -124,7 +152,7 @@ public class JalviewFileFilter extends FileFilter filters = new LinkedHashMap<>(5); } - filters.put(extension.toLowerCase(), this); + filters.put(extension.toLowerCase(Locale.ROOT), this); fullDescription = null; } @@ -178,4 +206,10 @@ public class JalviewFileFilter extends FileFilter { return useExtensionsInDescription; } + + protected void setParentJFC(JalviewFileChooser p) + { + this.parentJFC = p; + } + }