package com.revolsys.swing.dnd;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import com.revolsys.logging.Logs;
public class ClipboardUtil {
public static Clipboard getClipboard() {
final Toolkit toolkit = Toolkit.getDefaultToolkit();
final Clipboard clipboard = toolkit.getSystemClipboard();
return clipboard;
}
public static Transferable getContents() {
final Clipboard clipboard = getClipboard();
return clipboard.getContents(null);
}
@SuppressWarnings("unchecked")
public static <V> V getContents(final DataFlavor dataFlavor) {
if (dataFlavor != null) {
if (isDataFlavorAvailable(dataFlavor)) {
final Clipboard clipboard = getClipboard();
try {
return (V)clipboard.getData(dataFlavor);
} catch (final UnsupportedFlavorException e) {
return null;
} catch (final IOException e) {
Logs.warn(ClipboardUtil.class,
"Unable to be clipboard data for flavor=" + dataFlavor.getHumanPresentableName(), e);
}
}
}
return null;
}
public static boolean isDataFlavorAvailable(final DataFlavor dataFlavor) {
final Clipboard clipboard = getClipboard();
return clipboard.isDataFlavorAvailable(dataFlavor);
}
public static void setContents(final Transferable transferable) {
final Clipboard clipboard = getClipboard();
clipboard.setContents(transferable, null);
}
}