package org.limewire.ui.swing.dnd; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.File; import java.io.IOException; import java.util.Arrays; import org.limewire.ui.swing.util.DNDUtils; public class LocalFileTransferable implements Transferable { private File[] files; public LocalFileTransferable(File[] files){ this.files = files; } @Override public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if( flavor.equals(DNDUtils.URIFlavor)) { String seperator = System.getProperty("line.separator"); StringBuffer lines = new StringBuffer(); for(File file : files) { lines.append(file.toURI().toString()); lines.append(seperator); } lines.append(seperator); return lines.toString(); } else if(flavor.equals(DataFlavor.javaFileListFlavor)) { return Arrays.asList(files); } throw new UnsupportedFlavorException(flavor); } @Override public DataFlavor[] getTransferDataFlavors() { return DNDUtils.getFileFlavors(); } @Override public boolean isDataFlavorSupported(DataFlavor flavor) { return DNDUtils.isFileFlavor(flavor); } }