package java.awt.dnd;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.GraphicsEnvironment;
import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.datatransfer.FlavorMap;
import java.awt.datatransfer.SystemFlavorMap;
import java.awt.datatransfer.Transferable;
import java.awt.dnd.peer.DragSourceContextPeer;
import java.io.Serializable;
import java.util.EventListener;
public class DragSource implements Serializable
{
private static final long serialVersionUID = 6236096958971414066L;
public static final Cursor DefaultCopyDrop = null;
public static final Cursor DefaultMoveDrop = null;
public static final Cursor DefaultLinkDrop = null;
public static final Cursor DefaultCopyNoDrop = null;
public static final Cursor DefaultMoveNoDrop = null;
public static final Cursor DefaultLinkNoDrop = null;
private transient FlavorMap flavorMap = SystemFlavorMap.getDefaultFlavorMap ();
private transient DragSourceListener dragSourceListener;
private transient DragSourceMotionListener dragSourceMotionListener;
public DragSource()
{
if (GraphicsEnvironment.isHeadless())
throw new HeadlessException ();
}
public static DragSource getDefaultDragSource()
{
return null;
}
public static boolean isDragImageSupported()
{
return false;
}
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Image dragImage, Point imageOffset,
Transferable trans, DragSourceListener dsl,
FlavorMap map)
{
}
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Transferable trans, DragSourceListener dsl,
FlavorMap map)
{
startDrag(trigger, dragCursor, null, null, trans, dsl, map);
}
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Image dragImage, Point imageOffset,
Transferable trans, DragSourceListener dsl)
{
startDrag(trigger, dragCursor, dragImage, imageOffset, trans, dsl, null);
}
public void startDrag(DragGestureEvent trigger, Cursor dragCursor,
Transferable trans, DragSourceListener dsl)
{
startDrag(trigger, dragCursor, null, null, trans, dsl, null);
}
protected DragSourceContext
createDragSourceContext(DragSourceContextPeer peer, DragGestureEvent dge,
Cursor cursor, Image image, Point offset,
Transferable t, DragSourceListener dsl)
{
return null;
}
public FlavorMap getFlavorMap()
{
return flavorMap;
}
public DragGestureRecognizer
createDragGestureRecognizer(Class recognizer, Component c, int actions,
DragGestureListener dgl)
{
return Toolkit.getDefaultToolkit ()
.createDragGestureRecognizer (recognizer, this, c, actions,
dgl);
}
public DragGestureRecognizer
createDefaultDragGestureRecognizer(Component c, int actions,
DragGestureListener dgl)
{
return createDragGestureRecognizer (MouseDragGestureRecognizer.class, c,
actions, dgl);
}
public void addDragSourceListener(DragSourceListener l)
{
DnDEventMulticaster.add (dragSourceListener, l);
}
public void removeDragSourceListener(DragSourceListener l)
{
DnDEventMulticaster.remove (dragSourceListener, l);
}
public DragSourceListener[] getDragSourceListeners()
{
return (DragSourceListener[]) getListeners (DragSourceListener.class);
}
public void addDragSourceMotionListener(DragSourceMotionListener l)
{
DnDEventMulticaster.add (dragSourceMotionListener, l);
}
public void removeDragSourceMotionListener(DragSourceMotionListener l)
{
DnDEventMulticaster.remove (dragSourceMotionListener, l);
}
public DragSourceMotionListener[] getDragSourceMotionListeners ()
{
return (DragSourceMotionListener[]) getListeners
(DragSourceMotionListener.class);
}
public EventListener[] getListeners (Class listenerType)
{
if (listenerType == DragSourceListener.class)
return DnDEventMulticaster.getListeners (dragSourceListener,
listenerType);
if (listenerType == DragSourceMotionListener.class)
return DnDEventMulticaster.getListeners (dragSourceMotionListener,
listenerType);
return new EventListener [0];
}
}