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;
}
}