protected static void initFilters(boolean loader, Vector<String> classnames) {
    int				i;
    int				n;
    String 			classname;
    Class 			cls;
    String[] 			ext;
    String 			desc;
    FileSourcedConverter 	converter;
    ExtensionFileFilter 	filter;
    
    if (loader)
      m_LoaderFileFilters = new Vector<ExtensionFileFilter>();
    else
      m_SaverFileFilters  = new Vector<ExtensionFileFilter>();

    for (i = 0; i < classnames.size(); i++) {
      classname = (String) classnames.get(i);
      
      // get data from converter
      try {
	cls       = Class.forName(classname);
	converter = (FileSourcedConverter) cls.newInstance();
	ext       = converter.getFileExtensions();
	desc      = converter.getFileDescription();
      }
      catch (Exception e) {
	cls       = null;
	converter = null;
	ext       = new String[0];
	desc      = "";
      }
      
      if (converter == null)
	continue;

      // loader?
      if (loader) {
	for (n = 0; n < ext.length; n++) {
	  filter = new ExtensionFileFilter(ext[n], desc + " (*" + ext[n] + ")");
	  m_LoaderFileFilters.add(filter);
	}
      }
      else {
	for (n = 0; n < ext.length; n++) {
	  filter = new ExtensionFileFilter(ext[n], desc + " (*" + ext[n] + ")");
	  m_SaverFileFilters.add(filter);
	}
      }
    }
  }