X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJalviewFileFilter.java;h=bc20342411989ab165db672f9462cfd5a7e77b9a;hb=b53d89acfa678df63d6870176b4c7ec9285f52ee;hp=21f5b0fe36fddd092fc5cbed9af6993ae04fdae8;hpb=ede7927272c6b59e01466d3120e834b26e021003;p=jalview.git diff --git a/src/jalview/io/JalviewFileFilter.java b/src/jalview/io/JalviewFileFilter.java index 21f5b0f..bc20342 100755 --- a/src/jalview/io/JalviewFileFilter.java +++ b/src/jalview/io/JalviewFileFilter.java @@ -41,6 +41,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 +83,7 @@ public class JalviewFileFilter extends FileFilter @Override public boolean accept(File f) { + if (f != null) { String extension = getExtension(f); @@ -94,8 +97,31 @@ 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; } @@ -178,4 +204,10 @@ public class JalviewFileFilter extends FileFilter { return useExtensionsInDescription; } + + protected void setParentJFC(JalviewFileChooser p) + { + this.parentJFC = p; + } + }