--- /dev/null
+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;
+ }
+
+}