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.io.importexport.Options; 016import org.openstreetmap.josm.gui.layer.OsmDataLayer; 017 018/** 019 * This transfer support allows us to import a file that is dropped / copied on to the map. 020 * @author Michael Zangl 021 * @since 10604 022 */ 023public final class FilePaster extends AbstractOsmDataPaster { 024 /** 025 * Create a new {@link FilePaster} 026 */ 027 public FilePaster() { 028 super(DataFlavor.javaFileListFlavor); 029 } 030 031 @Override 032 public boolean importData(TransferSupport support, OsmDataLayer layer, EastNorth pasteAt) 033 throws UnsupportedFlavorException, IOException { 034 @SuppressWarnings("unchecked") 035 List<File> files = (List<File>) support.getTransferable().getTransferData(df); 036 OpenFileAction.OpenFileTask task = new OpenFileAction.OpenFileTask(files, null); 037 task.setOptions(Options.RECORD_HISTORY); 038 MainApplication.worker.submit(task); 039 return true; 040 } 041}