1 /* 2 * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package java.awt.dnd; 27 28 /** 29 * An abstract adapter class for receiving drag source events. The methods in 30 * this class are empty. This class exists only as a convenience for creating 31 * listener objects. 32 * <p> 33 * Extend this class to create a <code>DragSourceEvent</code> listener 34 * and override the methods for the events of interest. (If you implement the 35 * <code>DragSourceListener</code> interface, you have to define all of 36 * the methods in it. This abstract class defines null methods for them 37 * all, so you only have to define methods for events you care about.) 38 * <p> 39 * Create a listener object using the extended class and then register it with 40 * a <code>DragSource</code>. When the drag enters, moves over, or exits 41 * a drop site, when the drop action changes, and when the drag ends, the 42 * relevant method in the listener object is invoked, and the 43 * <code>DragSourceEvent</code> is passed to it. 44 * <p> 45 * The drop site is <i>associated with the previous <code>dragEnter()</code> 46 * invocation</i> if the latest invocation of <code>dragEnter()</code> on this 47 * adapter corresponds to that drop site and is not followed by a 48 * <code>dragExit()</code> invocation on this adapter. 49 * 50 * @see DragSourceEvent 51 * @see DragSourceListener 52 * @see DragSourceMotionListener 53 * 54 * @author David Mendenhall 55 * @since 1.4 56 */ 57 public abstract class DragSourceAdapter 58 implements DragSourceListener, DragSourceMotionListener { 59 60 /** 61 * Called as the cursor's hotspot enters a platform-dependent drop site. 62 * This method is invoked when all the following conditions are true: 63 * <UL> 64 * <LI>The cursor's hotspot enters the operable part of 65 * a platform-dependent drop site. 66 * <LI>The drop site is active. 67 * <LI>The drop site accepts the drag. 68 * </UL> 69 * 70 * @param dsde the <code>DragSourceDragEvent</code> 71 */ dragEnter(DragSourceDragEvent dsde)72 public void dragEnter(DragSourceDragEvent dsde) {} 73 74 /** 75 * Called as the cursor's hotspot moves over a platform-dependent drop site. 76 * This method is invoked when all the following conditions are true: 77 * <UL> 78 * <LI>The cursor's hotspot has moved, but still intersects the 79 * operable part of the drop site associated with the previous 80 * dragEnter() invocation. 81 * <LI>The drop site is still active. 82 * <LI>The drop site accepts the drag. 83 * </UL> 84 * 85 * @param dsde the <code>DragSourceDragEvent</code> 86 */ dragOver(DragSourceDragEvent dsde)87 public void dragOver(DragSourceDragEvent dsde) {} 88 89 /** 90 * Called whenever the mouse is moved during a drag operation. 91 * 92 * @param dsde the <code>DragSourceDragEvent</code> 93 */ dragMouseMoved(DragSourceDragEvent dsde)94 public void dragMouseMoved(DragSourceDragEvent dsde) {} 95 96 /** 97 * Called when the user has modified the drop gesture. 98 * This method is invoked when the state of the input 99 * device(s) that the user is interacting with changes. 100 * Such devices are typically the mouse buttons or keyboard 101 * modifiers that the user is interacting with. 102 * 103 * @param dsde the <code>DragSourceDragEvent</code> 104 */ dropActionChanged(DragSourceDragEvent dsde)105 public void dropActionChanged(DragSourceDragEvent dsde) {} 106 107 /** 108 * Called as the cursor's hotspot exits a platform-dependent drop site. 109 * This method is invoked when any of the following conditions are true: 110 * <UL> 111 * <LI>The cursor's hotspot no longer intersects the operable part 112 * of the drop site associated with the previous dragEnter() invocation. 113 * </UL> 114 * OR 115 * <UL> 116 * <LI>The drop site associated with the previous dragEnter() invocation 117 * is no longer active. 118 * </UL> 119 * OR 120 * <UL> 121 * <LI> The drop site associated with the previous dragEnter() invocation 122 * has rejected the drag. 123 * </UL> 124 * 125 * @param dse the <code>DragSourceEvent</code> 126 */ dragExit(DragSourceEvent dse)127 public void dragExit(DragSourceEvent dse) {} 128 129 /** 130 * This method is invoked to signify that the Drag and Drop 131 * operation is complete. The getDropSuccess() method of 132 * the <code>DragSourceDropEvent</code> can be used to 133 * determine the termination state. The getDropAction() method 134 * returns the operation that the drop site selected 135 * to apply to the Drop operation. Once this method is complete, the 136 * current <code>DragSourceContext</code> and 137 * associated resources become invalid. 138 * 139 * @param dsde the <code>DragSourceDropEvent</code> 140 */ dragDropEnd(DragSourceDropEvent dsde)141 public void dragDropEnd(DragSourceDropEvent dsde) {} 142 } 143