001 /*
002 * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004 *
005 * This code is free software; you can redistribute it and/or modify it
006 * under the terms of the GNU General Public License version 2 only, as
007 * published by the Free Software Foundation. Sun designates this
008 * particular file as subject to the "Classpath" exception as provided
009 * by Sun in the LICENSE file that accompanied this code.
010 *
011 * This code is distributed in the hope that it will be useful, but WITHOUT
012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014 * version 2 for more details (a copy is included in the LICENSE file that
015 * accompanied this code).
016 *
017 * You should have received a copy of the GNU General Public License version
018 * 2 along with this work; if not, write to the Free Software Foundation,
019 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020 *
021 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022 * CA 95054 USA or visit www.sun.com if you need additional information or
023 * have any questions.
024 */
025
026 package java.awt.dnd;
027
028 /**
029 * An abstract adapter class for receiving drag source events. The methods in
030 * this class are empty. This class exists only as a convenience for creating
031 * listener objects.
032 * <p>
033 * Extend this class to create a <code>DragSourceEvent</code> listener
034 * and override the methods for the events of interest. (If you implement the
035 * <code>DragSourceListener</code> interface, you have to define all of
036 * the methods in it. This abstract class defines null methods for them
037 * all, so you only have to define methods for events you care about.)
038 * <p>
039 * Create a listener object using the extended class and then register it with
040 * a <code>DragSource</code>. When the drag enters, moves over, or exits
041 * a drop site, when the drop action changes, and when the drag ends, the
042 * relevant method in the listener object is invoked, and the
043 * <code>DragSourceEvent</code> is passed to it.
044 * <p>
045 * The drop site is <i>associated with the previous <code>dragEnter()</code>
046 * invocation</i> if the latest invocation of <code>dragEnter()</code> on this
047 * adapter corresponds to that drop site and is not followed by a
048 * <code>dragExit()</code> invocation on this adapter.
049 *
050 * @see DragSourceEvent
051 * @see DragSourceListener
052 * @see DragSourceMotionListener
053 *
054 * @author David Mendenhall
055 * @version 1.13, 05/05/07
056 * @since 1.4
057 */
058 public abstract class DragSourceAdapter implements DragSourceListener,
059 DragSourceMotionListener {
060
061 /**
062 * Called as the cursor's hotspot enters a platform-dependent drop site.
063 * This method is invoked when all the following conditions are true:
064 * <UL>
065 * <LI>The cursor's hotspot enters the operable part of
066 * a platform-dependent drop site.
067 * <LI>The drop site is active.
068 * <LI>The drop site accepts the drag.
069 * </UL>
070 *
071 * @param dsde the <code>DragSourceDragEvent</code>
072 */
073 public void dragEnter(DragSourceDragEvent dsde) {
074 }
075
076 /**
077 * Called as the cursor's hotspot moves over a platform-dependent drop site.
078 * This method is invoked when all the following conditions are true:
079 * <UL>
080 * <LI>The cursor's hotspot has moved, but still intersects the
081 * operable part of the drop site associated with the previous
082 * dragEnter() invocation.
083 * <LI>The drop site is still active.
084 * <LI>The drop site accepts the drag.
085 * </UL>
086 *
087 * @param dsde the <code>DragSourceDragEvent</code>
088 */
089 public void dragOver(DragSourceDragEvent dsde) {
090 }
091
092 /**
093 * Called whenever the mouse is moved during a drag operation.
094 *
095 * @param dsde the <code>DragSourceDragEvent</code>
096 */
097 public void dragMouseMoved(DragSourceDragEvent dsde) {
098 }
099
100 /**
101 * Called when the user has modified the drop gesture.
102 * This method is invoked when the state of the input
103 * device(s) that the user is interacting with changes.
104 * Such devices are typically the mouse buttons or keyboard
105 * modifiers that the user is interacting with.
106 *
107 * @param dsde the <code>DragSourceDragEvent</code>
108 */
109 public void dropActionChanged(DragSourceDragEvent dsde) {
110 }
111
112 /**
113 * Called as the cursor's hotspot exits a platform-dependent drop site.
114 * This method is invoked when any of the following conditions are true:
115 * <UL>
116 * <LI>The cursor's hotspot no longer intersects the operable part
117 * of the drop site associated with the previous dragEnter() invocation.
118 * </UL>
119 * OR
120 * <UL>
121 * <LI>The drop site associated with the previous dragEnter() invocation
122 * is no longer active.
123 * </UL>
124 * OR
125 * <UL>
126 * <LI> The drop site associated with the previous dragEnter() invocation
127 * has rejected the drag.
128 * </UL>
129 *
130 * @param dse the <code>DragSourceEvent</code>
131 */
132 public void dragExit(DragSourceEvent dse) {
133 }
134
135 /**
136 * This method is invoked to signify that the Drag and Drop
137 * operation is complete. The getDropSuccess() method of
138 * the <code>DragSourceDropEvent</code> can be used to
139 * determine the termination state. The getDropAction() method
140 * returns the operation that the drop site selected
141 * to apply to the Drop operation. Once this method is complete, the
142 * current <code>DragSourceContext</code> and
143 * associated resources become invalid.
144 *
145 * @param dsde the <code>DragSourceDropEvent</code>
146 */
147 public void dragDropEnd(DragSourceDropEvent dsde) {
148 }
149 }
|