+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\r
+ */\r
package jalview.io;\r
\r
-import javax.swing.filechooser.*;\r
-import java.io.File;\r
+import java.io.*;\r
import java.util.*;\r
\r
-public class JalviewFileFilter extends FileFilter\r
+import javax.swing.filechooser.FileFilter;\r
+\r
+public class JalviewFileFilter\r
+ extends FileFilter\r
{\r
- private static String TYPE_UNKNOWN = "Type Unknown";\r
- private static String HIDDEN_FILE = "Hidden File";\r
- public static Hashtable suffixHash = new Hashtable();\r
+ public static Hashtable suffixHash = new Hashtable();\r
+ private Hashtable filters = null;\r
+ private String description = "no description";\r
+ private String fullDescription = "full description";\r
+ private boolean useExtensionsInDescription = true;\r
+\r
+ public JalviewFileFilter(String extension, String description)\r
+ {\r
+ StringTokenizer st = new StringTokenizer(extension, ",");\r
+\r
+ while (st.hasMoreElements())\r
+ {\r
+ addExtension(st.nextToken().trim());\r
+ }\r
+\r
+ setDescription(description);\r
+ }\r
\r
- private Hashtable filters = null;\r
- private String description = "no description";\r
- private String fullDescription = "full description";\r
- private boolean useExtensionsInDescription = true;\r
+ public JalviewFileFilter(String[] filts)\r
+ {\r
+ this(filts, null);\r
+ }\r
\r
+ public JalviewFileFilter(String[] filts, String description)\r
+ {\r
+ for (int i = 0; i < filts.length; i++)\r
+ {\r
+ // add filters one by one\r
+ addExtension(filts[i]);\r
+ }\r
+\r
+ if (description != null)\r
+ {\r
+ setDescription(description);\r
+ }\r
+ }\r
\r
- public JalviewFileFilter(String extension, String description) {\r
+ public String getAcceptableExtension()\r
+ {\r
+ return filters.keys().nextElement().toString();\r
+ }\r
\r
- StringTokenizer st = new StringTokenizer(extension, ",");\r
- while(st.hasMoreElements())\r
- {\r
- addExtension(st.nextToken().trim());\r
- }\r
- setDescription(description);\r
- }\r
+ // takes account of the fact that database is a directory\r
+ public boolean accept(File f)\r
+ {\r
+ if (f != null)\r
+ {\r
+ String extension = getExtension(f);\r
\r
- public JalviewFileFilter(String[] filts) {\r
- this(filts, null);\r
+ if (f.isDirectory())\r
+ {\r
+ return true;\r
}\r
\r
- public String getAcceptableExtension()\r
+ if ( (extension != null) && (filters.get(getExtension(f)) != null))\r
{\r
- return filters.keys().nextElement().toString();\r
+ return true;\r
}\r
+ }\r
\r
- public JalviewFileFilter(String[] filts, String description) {\r
- for (int i = 0; i < filts.length; i++) {\r
- // add filters one by one\r
- addExtension(filts[i]);\r
- }\r
- if(description!=null) setDescription(description);\r
- }\r
+ return false;\r
+ }\r
\r
- // takes account of the fact that database is a directory\r
- public boolean accept(File f) {\r
- if(f != null) {\r
- String extension = getExtension(f);\r
- if(f.isDirectory()) {\r
- if(extension == null || extension.equals("")) {\r
- return true;\r
- } else {\r
- if(filters.get(getExtension(f)) != null) {\r
- return true;\r
- }\r
- }\r
- }\r
- if(extension != null && filters.get(getExtension(f)) != null) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
+ public String getExtension(File f)\r
+ {\r
+ if (f != null)\r
+ {\r
+ String filename = f.getName();\r
+ int i = filename.lastIndexOf('.');\r
\r
- public String getExtension(File f) {\r
- if(f != null) {\r
- String filename = f.getName();\r
- int i = filename.lastIndexOf('.');\r
- if(i>0 && i<filename.length()-1) {\r
- return filename.substring(i+1).toLowerCase();\r
- };\r
- }\r
- return "";\r
+ if ( (i > 0) && (i < (filename.length() - 1)))\r
+ {\r
+ return filename.substring(i + 1).toLowerCase();\r
}\r
\r
- public void addExtension(String extension) {\r
- if(filters == null) {\r
- filters = new Hashtable(5);\r
- }\r
- filters.put(extension.toLowerCase(), this);\r
- fullDescription = null;\r
- }\r
+ ;\r
+ }\r
+\r
+ return "";\r
+ }\r
+\r
+ public void addExtension(String extension)\r
+ {\r
+ if (filters == null)\r
+ {\r
+ filters = new Hashtable(5);\r
+ }\r
\r
+ filters.put(extension.toLowerCase(), this);\r
+ fullDescription = null;\r
+ }\r
+\r
+ public String getDescription()\r
+ {\r
+ if (fullDescription == null)\r
+ {\r
+ if ( (description == null) || isExtensionListInDescription())\r
+ {\r
+ fullDescription = (description == null) ? "(" : (description +\r
+ " (");\r
\r
- public String getDescription() {\r
- if(fullDescription == null) {\r
- if(description == null || isExtensionListInDescription()) {\r
- fullDescription = description==null ? "(" : description + " (";\r
- // build the description from the extension list\r
- Enumeration extensions = filters.keys();\r
- if(extensions != null) {\r
- fullDescription += "." + (String) extensions.nextElement();\r
- while (extensions.hasMoreElements()) {\r
- fullDescription += ", " + (String) extensions.nextElement();\r
- }\r
- }\r
- fullDescription += ")";\r
- } else {\r
- fullDescription = description;\r
- }\r
+ // build the description from the extension list\r
+ Enumeration extensions = filters.keys();\r
+\r
+ if (extensions != null)\r
+ {\r
+ fullDescription += ("." +\r
+ (String) extensions.nextElement());\r
+\r
+ while (extensions.hasMoreElements())\r
+ {\r
+ fullDescription += (", " +\r
+ (String) extensions.nextElement());\r
}\r
- return fullDescription;\r
- }\r
+ }\r
\r
- public void setDescription(String description) {\r
- this.description = description;\r
- fullDescription = null;\r
+ fullDescription += ")";\r
}\r
-\r
- public void setExtensionListInDescription(boolean b) {\r
- useExtensionsInDescription = b;\r
- fullDescription = null;\r
+ else\r
+ {\r
+ fullDescription = description;\r
}\r
+ }\r
\r
- public boolean isExtensionListInDescription() {\r
- return useExtensionsInDescription;\r
- }\r
+ return fullDescription;\r
+ }\r
+\r
+ public void setDescription(String description)\r
+ {\r
+ this.description = description;\r
+ fullDescription = null;\r
+ }\r
+\r
+ public void setExtensionListInDescription(boolean b)\r
+ {\r
+ useExtensionsInDescription = b;\r
+ fullDescription = null;\r
+ }\r
+\r
+ public boolean isExtensionListInDescription()\r
+ {\r
+ return useExtensionsInDescription;\r
}\r
+}\r