1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
/* * @(#)DragSourceEvent.java 1.20 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.awt.dnd; import java.awt.Point; import java.util.EventObject; /** * This class is the base class for * <code>DragSourceDragEvent</code> and * <code>DragSourceDropEvent</code>. * <p> * <code>DragSourceEvent</code>s are generated whenever the drag enters, moves * over, or exits a drop site, when the drop action changes, and when the drag * ends. The location for the generated <code>DragSourceEvent</code> specifies * the mouse cursor location in screen coordinates at the moment this event * occured. * <p> * In a multi-screen environment without a virtual device, the cursor location is * specified in the coordinate system of the <i>initiator</i> * <code>GraphicsConfiguration</code>. The <i>initiator</i> * <code>GraphicsConfiguration</code> is the <code>GraphicsConfiguration</code> * of the <code>Component</code> on which the drag gesture for the current drag * operation was recognized. If the cursor location is outside the bounds of * the initiator <code>GraphicsConfiguration</code>, the reported coordinates are * clipped to fit within the bounds of that <code>GraphicsConfiguration</code>. * <p> * In a multi-screen environment with a virtual device, the location is specified * in the corresponding virtual coordinate system. If the cursor location is * outside the bounds of the virtual device the reported coordinates are * clipped to fit within the bounds of the virtual device. * * @since 1.2 */ public class DragSourceEvent extends EventObject { private static final long serialVersionUID = -763287114604032641L; /** * The <code>boolean</code> indicating whether the cursor location * is specified for this event. * * @serial */ private final boolean locationSpecified; /** * The horizontal coordinate for the cursor location at the moment this * event occured if the cursor location is specified for this event; * otherwise zero. * * @serial */ private final int x; /** * The vertical coordinate for the cursor location at the moment this event * occured if the cursor location is specified for this event; * otherwise zero. * * @serial */ private final int y; /** * Construct a <code>DragSourceEvent</code> * given a specified <code>DragSourceContext</code>. * The coordinates for this <code>DragSourceEvent</code> * are not specified, so <code>getLocation</code> will return * <code>null</code> for this event. * * @param dsc the <code>DragSourceContext</code> * * @throws <code>IllegalArgumentException</code> if <code>dsc</code> is <code>null</code>. * * @see #getLocation */ public DragSourceEvent(DragSourceContext dsc) { super(dsc); locationSpecified = false; this.x = 0; this.y = 0; } /** * Construct a <code>DragSourceEvent</code> given a specified * <code>DragSourceContext</code>, and coordinates of the cursor * location. * * @param dsc the <code>DragSourceContext</code> * @param x the horizontal coordinate for the cursor location * @param y the vertical coordinate for the cursor location * * @throws <code>IllegalArgumentException</code> if <code>dsc</code> is <code>null</code>. * * @since 1.4 */ public DragSourceEvent(DragSourceContext dsc, int x, int y) { super(dsc); locationSpecified = true; this.x = x; this.y = y; } /** * This method returns the <code>DragSourceContext</code> that * originated the event. * <P> * @return the <code>DragSourceContext</code> that originated the event */ public DragSourceContext getDragSourceContext() { return (DragSourceContext)getSource(); } /** * This method returns a <code>Point</code> indicating the cursor * location in screen coordinates at the moment this event occured, or * <code>null</code> if the cursor location is not specified for this * event. * * @return the <code>Point</code> indicating the cursor location * or <code>null</code> if the cursor location is not specified * @since 1.4 */ public Point getLocation() { if (locationSpecified) { return new Point(x, y); } else { return null; } } /** * This method returns the horizontal coordinate of the cursor location in * screen coordinates at the moment this event occured, or zero if the * cursor location is not specified for this event. * * @return an integer indicating the horizontal coordinate of the cursor * location or zero if the cursor location is not specified * @since 1.4 */ public int getX() { return x; } /** * This method returns the vertical coordinate of the cursor location in * screen coordinates at the moment this event occured, or zero if the * cursor location is not specified for this event. * * @return an integer indicating the vertical coordinate of the cursor * location or zero if the cursor location is not specified * @since 1.4 */ public int getY() { return y; } }