import java.awt.datatransfer.*;
import java.io.*;

public class FigureSelection implements Transferable, ClipboardOwner
{
    FigureSelection(Figure f)
    {
	myFigure = (Figure) f.clone();
    }

    public synchronized DataFlavor[] getTransferDataFlavors()
    {
	return myFlavors;
    }

    public synchronized Object getTransferData(DataFlavor flavor)
	throws UnsupportedFlavorException, IOException
    {
	if (flavor.equals(ComponentFlavor))
	{
	    return myFigure;
	}
	else
	{
	    throw new UnsupportedFlavorException(flavor);
	}
    }

    public boolean isDataFlavorSupported(DataFlavor flavor)
    {
	return flavor.equals(ComponentFlavor);
    }

    public void lostOwnership(Clipboard c, Transferable t)
    {
	// nothing to do
    }

    private DataFlavor[] myFlavors = {ComponentFlavor};
    private Figure myFigure;
	
    static public DataFlavor ComponentFlavor;
    static
    {
	try{
	    ComponentFlavor = new DataFlavor(
		Class.forName("java.awt.Component"), "AWT Component");
	}
	catch(ClassNotFoundException e){
	    System.err.println("error in constructing ComponentFlavor");
	    e.printStackTrace();
	}
    }
}
