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; 015 016/** 017 * File importer allowing to import session files (*.jos/joz files). 018 * @since 6245 019 */ 020public class SessionImporter extends FileImporter { 021 022 /** 023 * The file filter used to load JOSM session files 024 */ 025 public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter( 026 "jos,joz", "jos", tr("Session file (*.jos, *.joz)")); 027 028 /** 029 * Constructs a new {@code SessionImporter}. 030 */ 031 public SessionImporter() { 032 super(FILE_FILTER); 033 } 034 035 @Override 036 public void importData(File file, ProgressMonitor progressMonitor) throws IOException, IllegalDataException { 037 boolean zip = file.getName().toLowerCase().endsWith(".joz"); 038 Main.worker.submit(new Loader(file, zip)); 039 } 040}