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    }