package edu.harvard.wcfia.yoshikoder.ui;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import javax.swing.tree.TreePath;
/**
* Slightly augmented drag and drop code from O'Reilly's Swing book.
* @author will
*/
public class TransferableTreeNode implements Transferable {
public static DataFlavor TREE_PATH_FLAVOR =
new DataFlavor(TreePath.class, "Tree Path"); //$NON-NLS-1$
DataFlavor flavors[] = {TREE_PATH_FLAVOR};
TreePath path;
public TransferableTreeNode(TreePath tp) {
path = tp;
}
public synchronized DataFlavor[] getTransferDataFlavors() {
return flavors;
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
return (flavor.getRepresentationClass() == TreePath.class);
}
public synchronized Object getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException, IOException {
if (isDataFlavorSupported(flavor)) {
return path;
} else {
throw new UnsupportedFlavorException(flavor);
}
}
}