From b4822ade387234e8ee361ed9b69ab399f12afa04 Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Sun, 2 Mar 2003 14:24:48 +0000 Subject: DnDEventMulticaster.java: New file. 2003-03-02 Michael Koch * java/awt/dnd/DnDEventMulticaster.java: New file. * java/awt/dnd/DragSource.java (flavorMap): New member variable. (dragSourceListener): New member variable. (dragSourceMotionListener): New member variable. (getFlavorMap): Implemented. (createDragGestureRecognizer): Implemented. (addDragSourceListener): Implemented. (removeDragSourceListener): Implemented. (getDragSourceListeners): Implemented. (addDragSourceMotionListener): Implemented. (removeDragSourceMotionListener): Implemented. (getDragSourceMotionListeners): Implemented. (getListeners): Implemented. * java/awt/dnd/DragSourceContext.java (peer): New member variable. (cursor): New member variable. (transferable): New member variable. (trigger): New member variable. (dragSourceListener): New member variable. (image): New member variable. (offset): New member variable. (DragSourceContext): Implemented. (getDragSource): Implemented. (getComponent): Implemented. (getTrigger): Implemented. (getSourceActions): Implemented. (setCursor): Implemented. (getCursor): Implemented. (addDragSourceListener): Implemented. (removeDragSourceListener): Implemented. (getTransferable): Implemented. * java/awt/dnd/DropTarget.java (DropTargetAutoScroller.component): New member variable. (DropTargetAutoScroller.point): New member variable. (DropTargetAutoScroller.DropTargetAutoScroller): Implemented. (DropTargetAutoScroller.updateLocation): Implemented. (active): Renamed from isActive, defaults to true now. (component): New member variable. (flavorMap): New member variable. (actions): New member variable. (dropTargetContext): New member variable. (dropTargetListener): New member variable. (DropTarget): Implemented. (getComponent): Implemented. (setComponent): Implemented. (setDefaultActions): Implemented. (getDefaultActions): Implemented. (setActive): Use active instead of isActive. (isActive): Use active instead of isActive. (addDropTargetListener): Implemented. (removeDropTargetListener): Implemented. (getFlavorMap): Implemented. (setFlavorMap): Implemented. (getDropTargetContext): Implemented. (createDropTargetContext): Implemented. (createDropTargetAutoScroller): Implemented. * java/awt/dnd/DropTargetContext.java (TransferableProxy.getTransferDataFlavors): Implemented. (TransferableProxy.isDataFlavorSupported): Implemented. (TransferableProxy.getTransferData): Implemented. (dropTarget): New member variable. (dtcp): New member variable. (DropTargetContext): New package private constructor. (getDropTarget): Implemented. (getComponent): Implemented. (addNotify): Implemented. (removeNotify): Implemented. (getCurrentDataFlavorsAsList): Implemented. (isDataFlavorSupported): Implemented. * java/awt/dnd/MouseDragGestureRecognizer.java (registerListeners): Implemented. (unregisterListeners): Implemented. * Makefile.am (awt_java_source_files): Added java/awt/dnd/DnDEventMulticaster.java. * Makefile.in: Regenerated. From-SVN: r63665 --- libjava/java/awt/dnd/DragSource.java | 67 +++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 8 deletions(-) (limited to 'libjava/java/awt/dnd/DragSource.java') diff --git a/libjava/java/awt/dnd/DragSource.java b/libjava/java/awt/dnd/DragSource.java index 740235ac83c..f6083f674f6 100644 --- a/libjava/java/awt/dnd/DragSource.java +++ b/libjava/java/awt/dnd/DragSource.java @@ -44,12 +44,20 @@ 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.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.EventListener; +/** + * @since 1.2 + */ public class DragSource implements Serializable { /** @@ -64,6 +72,11 @@ public class DragSource implements Serializable 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; + /** * Initializes the drag source. * @@ -159,51 +172,89 @@ public class DragSource implements Serializable public FlavorMap getFlavorMap() { - return null; + return flavorMap; } public DragGestureRecognizer createDragGestureRecognizer(Class recognizer, Component c, int actions, DragGestureListener dgl) { - return null; + return Toolkit.getDefaultToolkit () + .createDragGestureRecognizer (recognizer, this, c, actions, + dgl); } public DragGestureRecognizer createDefaultDragGestureRecognizer(Component c, int actions, DragGestureListener dgl) { - return null; + return createDragGestureRecognizer (MouseDragGestureRecognizer.class, c, + actions, dgl); } + /** + * @since 1.4 + */ public void addDragSourceListener(DragSourceListener l) { + DnDEventMulticaster.add (dragSourceListener, l); } + /** + * @since 1.4 + */ public void removeDragSourceListener(DragSourceListener l) { + DnDEventMulticaster.remove (dragSourceListener, l); } + /** + * @since 1.4 + */ public DragSourceListener[] getDragSourceListeners() { - return null; + return (DragSourceListener[]) getListeners (DragSourceListener.class); } + /** + * @since 1.4 + */ public void addDragSourceMotionListener(DragSourceMotionListener l) { + DnDEventMulticaster.add (dragSourceMotionListener, l); } + /** + * @since 1.4 + */ public void removeDragSourceMotionListener(DragSourceMotionListener l) { + DnDEventMulticaster.remove (dragSourceMotionListener, l); } - public DragSourceMotionListener[] getDragSourceMotionListeners() + /** + * @since 1.4 + */ + public DragSourceMotionListener[] getDragSourceMotionListeners () { - return null; + return (DragSourceMotionListener[]) getListeners + (DragSourceMotionListener.class); } - public EventListener[] getListeners(Class type) + /** + * @since 1.4 + */ + public EventListener[] getListeners (Class listenerType) { - return null; + if (listenerType == DragSourceListener.class) + return DnDEventMulticaster.getListeners (dragSourceListener, + listenerType); + + if (listenerType == DragSourceMotionListener.class) + return DnDEventMulticaster.getListeners (dragSourceMotionListener, + listenerType); + + // Return an empty EventListener array. + return new EventListener [0]; } } // class DragSource -- cgit v1.2.3