X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FJalviewFileFilter.java;h=3252a988269c7b1aa9370d5f3a1a0c42c91a7042;hb=8d3d3b4edf47e543b8b352c1b2c247cfc59122a4;hp=d6c6d4b6873d8c08cbad63661ce1a1ca60d14118;hpb=99c58ee0ae2a848f982552e53feaf6d5cb9925e5;p=jalview.git diff --git a/src/jalview/io/JalviewFileFilter.java b/src/jalview/io/JalviewFileFilter.java index d6c6d4b..3252a98 100755 --- a/src/jalview/io/JalviewFileFilter.java +++ b/src/jalview/io/JalviewFileFilter.java @@ -1,138 +1,172 @@ /* -* Jalview - A Sequence Alignment Editor and Viewer -* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -*/ - + * Jalview - A Sequence Alignment Editor and Viewer + * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * 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.io.*; import java.util.*; -public class JalviewFileFilter extends FileFilter +import javax.swing.filechooser.FileFilter; + +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(); + public static Hashtable suffixHash = new Hashtable(); + 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()); + } + + setDescription(description); + } - private Hashtable filters = null; - private String description = "no description"; - private String fullDescription = "full description"; - private boolean useExtensionsInDescription = true; + 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]); + } + + if (description != null) + { + setDescription(description); + } + } - public JalviewFileFilter(String extension, String description) { + public String getAcceptableExtension() + { + return filters.keys().nextElement().toString(); + } - StringTokenizer st = new StringTokenizer(extension, ","); - while(st.hasMoreElements()) - { - addExtension(st.nextToken().trim()); - } - setDescription(description); - } + // takes account of the fact that database is a directory + public boolean accept(File f) + { + if (f != null) + { + String extension = getExtension(f); - public JalviewFileFilter(String[] filts) { - this(filts, null); + if (f.isDirectory()) + { + return true; } - public String getAcceptableExtension() + if ( (extension != null) && (filters.get(getExtension(f)) != null)) { - return filters.keys().nextElement().toString(); + return true; } + } - 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); - } + return false; + } - // 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; - } - } - } - 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('.'); - public String getExtension(File f) { - if(f != null) { - String filename = f.getName(); - int i = filename.lastIndexOf('.'); - if(i>0 && i 0) && (i < (filename.length() - 1))) + { + return filename.substring(i + 1).toLowerCase(); } - public void addExtension(String extension) { - if(filters == null) { - filters = new Hashtable(5); - } - filters.put(extension.toLowerCase(), this); - fullDescription = null; - } + ; + } + return ""; + } - 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(); - } - } - fullDescription += ")"; - } else { - fullDescription = description; - } + 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()); } - return fullDescription; - } + } - public void setDescription(String description) { - this.description = description; - fullDescription = null; + fullDescription += ")"; } - - public void setExtensionListInDescription(boolean b) { - useExtensionsInDescription = b; - fullDescription = null; + else + { + fullDescription = description; } + } - public boolean isExtensionListInDescription() { - return useExtensionsInDescription; - } + return fullDescription; + } + + public void setDescription(String description) + { + this.description = description; + fullDescription = null; + } + + public void setExtensionListInDescription(boolean b) + { + useExtensionsInDescription = b; + fullDescription = null; + } + + public boolean isExtensionListInDescription() + { + return useExtensionsInDescription; } +}