/*
* Copyright (c) 2014 tabletoptool.com team.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* rptools.com team - initial implementation
* tabletoptool.com team - further development
*/
package com.t3.transferable;
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.net.URL;
import java.util.List;
public class FileTransferableHandler extends TransferableHandler {
private enum Flavor {
fileList(new DataFlavor("application/x-java-file-list;class=java.util.List", null));
DataFlavor flavor;
private Flavor(DataFlavor flavor) {
this.flavor = flavor;
}
public DataFlavor getFlavor() {
return flavor;
}
}
@Override
public List<File> getTransferObject(Transferable transferable)
throws IOException, UnsupportedFlavorException {
if (transferable.isDataFlavorSupported(Flavor.fileList.getFlavor())) {
// THIS IS AN INVALID CAST!
// return (List<URL>)transferable.getTransferData(Flavor.fileList.getFlavor());
return (List<File>)transferable.getTransferData(Flavor.fileList.getFlavor());
}
throw new UnsupportedFlavorException(null);
}
}