X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJalviewFileView.java;h=a9fc7ed9de804bb4edab771f0d03afea5357c98f;hb=77a64be30e2b21de5688ce37a63648ad3fb1bec8;hp=34611100b523098776ae93af56e11664f62c3930;hpb=6a2cb2371d69d60b9b607cc6d2fdae16bc19f61e;p=jalview.git diff --git a/src/jalview/io/JalviewFileView.java b/src/jalview/io/JalviewFileView.java index 3461110..a9fc7ed 100755 --- a/src/jalview/io/JalviewFileView.java +++ b/src/jalview/io/JalviewFileView.java @@ -20,9 +20,14 @@ */ package jalview.io; +import java.util.Locale; + +import jalview.util.MessageManager; + import java.io.File; import java.net.URL; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import javax.swing.Icon; @@ -37,15 +42,15 @@ public class JalviewFileView extends FileView private void loadExtensions() { - extensions = new HashMap(); - for (FileFormatI ff : FileFormat.values()) + extensions = new HashMap<>(); + for (FileFormatI ff : FileFormats.getInstance().getFormats()) { - String desc = ff.toString() + " file"; + String desc = ff.getName() + " file"; String exts = ff.getExtensions(); for (String ext : exts.split(",")) { - extensions.put(ext.trim().toLowerCase(), desc - + ("jar".equals(ext) ? " (old)" : "")); + ext = ext.trim().toLowerCase(Locale.ROOT); + extensions.put(ext, desc + ("jar".equals(ext) ? " (old)" : "")); } } } @@ -54,7 +59,9 @@ public class JalviewFileView extends FileView public String getTypeDescription(File f) { String extension = getExtension(f); + String type = getDescriptionForExtension(extension); + if (extension != null) { if (extensions.containsKey(extension)) @@ -83,8 +90,34 @@ public class JalviewFileView extends FileView { String extension = getExtension(f); Icon icon = null; + String type = getDescriptionForExtension(extension); + + if (type == null) + { + Iterator it = extensions.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()) + { + extension = ext; + type = getDescriptionForExtension(extension) + + MessageManager.getString("label.backup"); + break; + } + } + } - if (getDescriptionForExtension(extension) != null) + if (type != null) { icon = getImageIcon("/images/file.png"); } @@ -104,7 +137,7 @@ public class JalviewFileView extends FileView if ((i > 0) && (i < (s.length() - 1))) { - ext = s.substring(i + 1).toLowerCase(); + ext = s.substring(i + 1).toLowerCase(Locale.ROOT); } return ext; @@ -124,7 +157,7 @@ public class JalviewFileView extends FileView { if (icons == null) { - icons = new HashMap(); + icons = new HashMap<>(); } if (!icons.containsKey(filePath)) { @@ -136,8 +169,8 @@ public class JalviewFileView extends FileView } else { - System.err - .println("JalviewFileView.createImageIcon: Couldn't find file: " + System.err.println( + "JalviewFileView.createImageIcon: Couldn't find file: " + filePath); } icons.put(filePath, icon);