package open.dolphin.client; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; import open.dolphin.stampbox.StampTreeNode; /** * Tranferable class of the StampTreeNode. * * @author Kazushi Minagawa */ public class LocalStampTreeNodeTransferable implements Transferable { /** Data Flavor of this class */ public static DataFlavor localStampTreeNodeFlavor; static { try { //localStampTreeNodeFlavor = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType + ";class=open.dolphin.stampbox.StampTreeNode"); localStampTreeNodeFlavor = new DataFlavor(open.dolphin.client.LocalStampTreeNodeTransferable.class,"stampTreeNode"); } catch (Exception e) { e.printStackTrace(System.err); } }; public static final DataFlavor[] flavors = {LocalStampTreeNodeTransferable.localStampTreeNodeFlavor}; private final StampTreeNode node; /** Creates new StampTreeTransferable * @param node */ public LocalStampTreeNodeTransferable(StampTreeNode node) { this.node = node; } @Override public synchronized DataFlavor[] getTransferDataFlavors() { return flavors; } @Override public boolean isDataFlavorSupported(DataFlavor flavor) { return flavor.equals(localStampTreeNodeFlavor); } @Override public synchronized Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if (flavor.equals(localStampTreeNodeFlavor)) { return node; } else { throw new UnsupportedFlavorException(flavor); } } }