001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.io; 003 004 import static org.openstreetmap.josm.tools.I18n.tr; 005 006 import java.io.File; 007 import java.util.Iterator; 008 009 import org.openstreetmap.josm.actions.ExtensionFileFilter; 010 011 /** 012 * Dummy importer that adds the "All Formats"-Filter when opening files 013 */ 014 public class AllFormatsImporter extends FileImporter { 015 public AllFormatsImporter() { 016 super(new ExtensionFileFilter(getAllExtensions(), "", tr("All Formats") 017 + " (*.gpx *.osm *.nmea *.jpg ...)")); 018 } 019 020 @Override public boolean acceptFile(File pathname) { 021 return false; 022 } 023 024 /** 025 * Builds list of all supported extensions by the registered FileImporters. 026 * @return String comma separated list of supported file extensions 027 */ 028 private static String getAllExtensions() { 029 Iterator<FileImporter> imp = ExtensionFileFilter.importers.iterator(); 030 StringBuilder ext = new StringBuilder(); 031 while(imp.hasNext()) { 032 FileImporter fi = imp.next(); 033 if(fi instanceof AllFormatsImporter) { 034 continue; 035 } 036 ext.append(fi.filter.getExtensions()); 037 ext.append(","); 038 } 039 // remove last comma 040 return ext.substring(0, ext.length()-1).toString(); 041 } 042 }