JAL-4260 encapsulate logic for resolving nearest column and do better using it in...
[jalview.git] / src / jalview / io / JalviewFileFilter.java
index 8c6b802..5e9a242 100755 (executable)
@@ -24,6 +24,7 @@ import java.io.File;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.Locale;
 import java.util.Map;
 import java.util.StringTokenizer;
 
@@ -103,10 +104,16 @@ public class JalviewFileFilter extends FileFilter
     if (parentJFC != null && parentJFC.includeBackupFiles)
     {
       Iterator<String> it = filters.keySet().iterator();
-      while (it.hasNext())
+      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())
@@ -115,7 +122,7 @@ public class JalviewFileFilter extends FileFilter
         }
       }
     }
-    
+
     return false;
   }
 
@@ -128,7 +135,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);
       }
 
       ;
@@ -144,7 +151,7 @@ public class JalviewFileFilter extends FileFilter
       filters = new LinkedHashMap<>(5);
     }
 
-    filters.put(extension.toLowerCase(), this);
+    filters.put(extension.toLowerCase(Locale.ROOT), this);
     fullDescription = null;
   }
 
@@ -167,7 +174,7 @@ public class JalviewFileFilter extends FileFilter
 
           while (extensions.hasNext())
           {
-            fullDescription += (", " + extensions.next());
+            fullDescription += (", ." + extensions.next());
           }
         }