X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJalviewFileFilter.java;h=e2692e2977a06450d6ae4917154ce663d90dba0d;hb=588042b69abf8e60bcc950b24c283933c7dd422f;hp=d6c6d4b6873d8c08cbad63661ce1a1ca60d14118;hpb=5cd8e373c75fb348ecda4d94d8a46468fb92756d;p=jalview.git diff --git a/src/jalview/io/JalviewFileFilter.java b/src/jalview/io/JalviewFileFilter.java index d6c6d4b..e2692e2 100755 --- a/src/jalview/io/JalviewFileFilter.java +++ b/src/jalview/io/JalviewFileFilter.java @@ -16,123 +16,139 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ - package jalview.io; -import javax.swing.filechooser.*; import java.io.File; + import java.util.*; -public class JalviewFileFilter extends FileFilter -{ - private static String TYPE_UNKNOWN = "Type Unknown"; - private static String HIDDEN_FILE = "Hidden File"; - public static Hashtable suffixHash = new Hashtable(); +import javax.swing.filechooser.*; + + +public class JalviewFileFilter extends FileFilter { + private static String TYPE_UNKNOWN = "Type Unknown"; + private static String HIDDEN_FILE = "Hidden File"; + public static Hashtable suffixHash = new Hashtable(); + private Hashtable filters = null; + private String description = "no description"; + private String fullDescription = "full description"; + private boolean useExtensionsInDescription = true; - private Hashtable filters = null; - private String description = "no description"; - private String fullDescription = "full description"; - private boolean useExtensionsInDescription = true; + public JalviewFileFilter(String extension, String description) { + StringTokenizer st = new StringTokenizer(extension, ","); + while (st.hasMoreElements()) { + addExtension(st.nextToken().trim()); + } - public JalviewFileFilter(String extension, String description) { + setDescription(description); + } - StringTokenizer st = new StringTokenizer(extension, ","); - while(st.hasMoreElements()) - { - addExtension(st.nextToken().trim()); - } - setDescription(description); - } + public JalviewFileFilter(String[] filts) { + this(filts, null); + } - public JalviewFileFilter(String[] filts) { - this(filts, null); - } + public JalviewFileFilter(String[] filts, String description) { + for (int i = 0; i < filts.length; i++) { + // add filters one by one + addExtension(filts[i]); + } - public String getAcceptableExtension() - { + if (description != null) { + setDescription(description); + } + } + + public String getAcceptableExtension() { return filters.keys().nextElement().toString(); - } - - public JalviewFileFilter(String[] filts, String description) { - for (int i = 0; i < filts.length; i++) { - // add filters one by one - addExtension(filts[i]); - } - if(description!=null) setDescription(description); - } - - // takes account of the fact that database is a directory - public boolean accept(File f) { - if(f != null) { - String extension = getExtension(f); - if(f.isDirectory()) { - if(extension == null || extension.equals("")) { + } + + // takes account of the fact that database is a directory + public boolean accept(File f) { + if (f != null) { + String extension = getExtension(f); + + if (f.isDirectory()) { + if ((extension == null) || extension.equals("")) { return true; - } else { - if(filters.get(getExtension(f)) != null) { - return true; + } else { + if (filters.get(getExtension(f)) != null) { + return true; + } + } + } + + if ((extension != null) && (filters.get(getExtension(f)) != null)) { + return true; + } + } + + return false; + } + + public String getExtension(File f) { + if (f != null) { + String filename = f.getName(); + int i = filename.lastIndexOf('.'); + + if ((i > 0) && (i < (filename.length() - 1))) { + return filename.substring(i + 1).toLowerCase(); + } + + ; + } + + return ""; + } + + public void addExtension(String extension) { + if (filters == null) { + filters = new Hashtable(5); + } + + filters.put(extension.toLowerCase(), this); + fullDescription = null; + } + + public String getDescription() { + if (fullDescription == null) { + if ((description == null) || isExtensionListInDescription()) { + fullDescription = (description == null) ? "(" : (description + + " ("); + + // build the description from the extension list + Enumeration extensions = filters.keys(); + + if (extensions != null) { + fullDescription += ("." + + (String) extensions.nextElement()); + + while (extensions.hasMoreElements()) { + fullDescription += (", " + + (String) extensions.nextElement()); } - } - } - if(extension != null && filters.get(getExtension(f)) != null) { - return true; - } - } - return false; - } - - public String getExtension(File f) { - if(f != null) { - String filename = f.getName(); - int i = filename.lastIndexOf('.'); - if(i>0 && i