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.Main; 013import org.openstreetmap.josm.actions.OpenFileAction; 014import org.openstreetmap.josm.data.coor.EastNorth; 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 Main.worker.submit(task); 038 return true; 039 } 040}