package tk.amberide.ide.swing.misc;
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.List;
import javax.swing.JComponent;
import javax.swing.TransferHandler;
public abstract class FileDropHandler extends TransferHandler {
@Override
public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) {
for (int i = 0; i < transferFlavors.length; i++) {
if (transferFlavors[i].equals(DataFlavor.javaFileListFlavor)) {
return true;
}
}
return false;
}
@Override
public boolean importData(JComponent comp, Transferable t) {
try {
filesDropped(((List<File>) t.getTransferData(DataFlavor.javaFileListFlavor)).toArray(new File[0]));
} catch (UnsupportedFlavorException e) {
throw new IllegalStateException("unsupported content dropped", e);
} catch (IOException e) {
throw new IllegalStateException("IO exception while importing files", e);
}
return true;
}
public abstract void filesDropped(File[] files);
}