* 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
-\r
package jalview.io;\r
\r
-import javax.swing.filechooser.*;\r
import java.io.File;\r
+\r
import java.util.*;\r
\r
-public class JalviewFileFilter 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
+import javax.swing.filechooser.*;\r
+\r
+\r
+public class JalviewFileFilter extends FileFilter {\r
+ private static String TYPE_UNKNOWN = "Type Unknown";\r
+ private static String HIDDEN_FILE = "Hidden File";\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
- 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 extension, String description) {\r
+ StringTokenizer st = new StringTokenizer(extension, ",");\r
\r
+ while (st.hasMoreElements()) {\r
+ addExtension(st.nextToken().trim());\r
+ }\r
\r
- public JalviewFileFilter(String extension, String description) {\r
+ setDescription(description);\r
+ }\r
\r
- StringTokenizer st = new StringTokenizer(extension, ",");\r
- while(st.hasMoreElements())\r
- {\r
- addExtension(st.nextToken().trim());\r
- }\r
- setDescription(description);\r
- }\r
+ public JalviewFileFilter(String[] filts) {\r
+ this(filts, null);\r
+ }\r
\r
- public JalviewFileFilter(String[] filts) {\r
- this(filts, null);\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
\r
- public String getAcceptableExtension()\r
- {\r
+ if (description != null) {\r
+ setDescription(description);\r
+ }\r
+ }\r
+\r
+ public String getAcceptableExtension() {\r
return filters.keys().nextElement().toString();\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
-\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
+ }\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
+\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
+ } else {\r
+ if (filters.get(getExtension(f)) != null) {\r
+ return true;\r
+ }\r
+ }\r
+ }\r
+\r
+ if ((extension != null) && (filters.get(getExtension(f)) != null)) {\r
+ return true;\r
+ }\r
+ }\r
+\r
+ return false;\r
+ }\r
+\r
+ public String getExtension(File f) {\r
+ if (f != null) {\r
+ String filename = f.getName();\r
+ int i = filename.lastIndexOf('.');\r
+\r
+ if ((i > 0) && (i < (filename.length() - 1))) {\r
+ return filename.substring(i + 1).toLowerCase();\r
+ }\r
+\r
+ ;\r
+ }\r
+\r
+ return "";\r
+ }\r
+\r
+ public void addExtension(String extension) {\r
+ if (filters == null) {\r
+ filters = new Hashtable(5);\r
+ }\r
+\r
+ filters.put(extension.toLowerCase(), this);\r
+ fullDescription = null;\r
+ }\r
+\r
+ public String getDescription() {\r
+ if (fullDescription == null) {\r
+ if ((description == null) || isExtensionListInDescription()) {\r
+ fullDescription = (description == null) ? "(" : (description +\r
+ " (");\r
+\r
+ // build the description from the extension list\r
+ Enumeration extensions = filters.keys();\r
+\r
+ if (extensions != null) {\r
+ fullDescription += ("." +\r
+ (String) extensions.nextElement());\r
+\r
+ while (extensions.hasMoreElements()) {\r
+ fullDescription += (", " +\r
+ (String) extensions.nextElement());\r
}\r
- }\r
- }\r
- if(extension != null && filters.get(getExtension(f)) != null) {\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\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
- }\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
- 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
- }\r
- return fullDescription;\r
- }\r
-\r
- public void setDescription(String description) {\r
- this.description = description;\r
- fullDescription = null;\r
- }\r
-\r
- public void setExtensionListInDescription(boolean b) {\r
- useExtensionsInDescription = b;\r
- fullDescription = null;\r
- }\r
-\r
- public boolean isExtensionListInDescription() {\r
- return useExtensionsInDescription;\r
- }\r
- }\r
+ }\r
+\r
+ fullDescription += ")";\r
+ } else {\r
+ fullDescription = description;\r
+ }\r
+ }\r
+\r
+ return fullDescription;\r
+ }\r
+\r
+ public void setDescription(String description) {\r
+ this.description = description;\r
+ fullDescription = null;\r
+ }\r
+\r
+ public void setExtensionListInDescription(boolean b) {\r
+ useExtensionsInDescription = b;\r
+ fullDescription = null;\r
+ }\r
+\r
+ public boolean isExtensionListInDescription() {\r
+ return useExtensionsInDescription;\r
+ }\r
+}\r