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}