Merge branch 'Jalview-JS/develop' into develop
[jalview.git] / srcjar / fr / orsay / lri / varna / applications / FileNameExtensionFilter.java
diff --git a/srcjar/fr/orsay/lri/varna/applications/FileNameExtensionFilter.java b/srcjar/fr/orsay/lri/varna/applications/FileNameExtensionFilter.java
new file mode 100644 (file)
index 0000000..377a4f1
--- /dev/null
@@ -0,0 +1,71 @@
+package fr.orsay.lri.varna.applications;
+
+import java.io.File;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+import javax.swing.filechooser.FileFilter;
+
+public class FileNameExtensionFilter extends FileFilter {
+
+    Hashtable<String,Integer> _exts = new Hashtable<String,Integer>();
+    String _desc = "";
+       
+       public FileNameExtensionFilter(String desc,String ext1)
+       {
+               _desc = desc;
+               _exts.put(ext1,0);
+       }
+
+       public FileNameExtensionFilter(String desc,String ext1,String ext2)
+       {
+               this(desc,ext1);
+               _exts.put(ext2,1);
+       }
+       
+       public FileNameExtensionFilter(String desc,String ext1,String ext2,String ext3)
+       {
+               this(desc,ext1,ext2);
+               _exts.put(ext3,2);
+       }
+
+       public FileNameExtensionFilter(String desc,String ext1,String ext2,String ext3,String ext4)
+       {
+               this(desc,ext1,ext2,ext3);
+               _exts.put(ext4,3);
+       }
+       
+       
+       public boolean accept(File path) {
+               String name = path.getName();
+               if (path.isDirectory())
+                       return true;
+               int index = name.lastIndexOf(".");
+               if (index != -1)
+               {
+                 String suffix = name.substring(index+1);
+                 if (_exts.containsKey(suffix))
+                 {return true;}
+               }
+               return false;
+       }
+
+       @Override
+       public String getDescription() {
+               return _desc;
+       }
+       
+       public String[] getExtensions()
+       {
+               String[] exts = new String[_exts.size()];
+               Enumeration<String> k = _exts.keys();
+               int n = 0;
+               while(k.hasMoreElements())
+               {
+                       exts[n] = k.nextElement();
+                       n++;
+               }
+               return exts;
+       }       
+
+}