001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.io.session; 003 004import static org.openstreetmap.josm.tools.I18n.tr; 005 006import java.io.File; 007import java.io.IOException; 008 009import org.openstreetmap.josm.Main; 010import org.openstreetmap.josm.actions.ExtensionFileFilter; 011import org.openstreetmap.josm.actions.SessionLoadAction.Loader; 012import org.openstreetmap.josm.gui.progress.ProgressMonitor; 013import org.openstreetmap.josm.io.FileImporter; 014import org.openstreetmap.josm.io.IllegalDataException; 015import org.openstreetmap.josm.tools.Utils; 016 017/** 018 * File importer allowing to import session files (*.jos/joz files). 019 * @since 6245 020 */ 021public class SessionImporter extends FileImporter { 022 023 /** 024 * The file filter used to load JOSM session files 025 */ 026 public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter( 027 "jos,joz", "jos", tr("Session file (*.jos, *.joz)")); 028 029 /** 030 * Constructs a new {@code SessionImporter}. 031 */ 032 public SessionImporter() { 033 super(FILE_FILTER); 034 } 035 036 @Override 037 public void importData(File file, ProgressMonitor progressMonitor) throws IOException, IllegalDataException { 038 boolean zip = Utils.hasExtension(file, "joz"); 039 Main.worker.submit(new Loader(file, zip)); 040 } 041}