001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.io;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.io.File;
007import java.util.Iterator;
008
009import org.openstreetmap.josm.actions.ExtensionFileFilter;
010
011/**
012 * Dummy importer that adds the "All Formats"-Filter when opening files
013 */
014public 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}