001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.datatransfer.importers;
003
004import java.awt.datatransfer.DataFlavor;
005import java.awt.datatransfer.UnsupportedFlavorException;
006import java.io.File;
007import java.io.IOException;
008import java.util.List;
009
010import javax.swing.TransferHandler.TransferSupport;
011
012import org.openstreetmap.josm.actions.OpenFileAction;
013import org.openstreetmap.josm.data.coor.EastNorth;
014import org.openstreetmap.josm.gui.MainApplication;
015import org.openstreetmap.josm.gui.layer.OsmDataLayer;
016
017/**
018 * This transfer support allows us to import a file that is dropped / copied on to the map.
019 * @author Michael Zangl
020 * @since 10604
021 */
022public final class FilePaster extends AbstractOsmDataPaster {
023    /**
024     * Create a new {@link FilePaster}
025     */
026    public FilePaster() {
027        super(DataFlavor.javaFileListFlavor);
028    }
029
030    @Override
031    public boolean importData(TransferSupport support, OsmDataLayer layer, EastNorth pasteAt)
032            throws UnsupportedFlavorException, IOException {
033        @SuppressWarnings("unchecked")
034        List<File> files = (List<File>) support.getTransferable().getTransferData(df);
035        OpenFileAction.OpenFileTask task = new OpenFileAction.OpenFileTask(files, null);
036        task.setRecordHistory(true);
037        MainApplication.worker.submit(task);
038        return true;
039    }
040}