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 }