Module java.desktop
Package java.awt.dnd

## Class DragSourceDragEvent

- java.lang.Object
- - java.util.EventObject
  - - java.awt.dnd.DragSourceEvent
    - - java.awt.dnd.DragSourceDragEvent

- All Implemented Interfaces:
    `Serializable`

      public class DragSourceDragEvent
      extends DragSourceEvent

  The `DragSourceDragEvent` is delivered from the `DragSourceContextPeer`, via the `DragSourceContext`, to the `DragSourceListener` registered with that `DragSourceContext` and with its associated `DragSource`.

  The `DragSourceDragEvent` reports the target drop action and the user drop action that reflect the current state of the drag operation.

  Target drop action is one of `DnDConstants` that represents the drop action selected by the current drop target if this drop action is supported by the drag source or `DnDConstants.ACTION_NONE` if this drop action is not supported by the drag source.

  User drop action depends on the drop actions supported by the drag source and the drop action selected by the user. The user can select a drop action by pressing modifier keys during the drag operation:

         Ctrl + Shift -> ACTION_LINK
         Ctrl         -> ACTION_COPY
         Shift        -> ACTION_MOVE

  If the user selects a drop action, the user drop action is one of `DnDConstants` that represents the selected drop action if this drop action is supported by the drag source or `DnDConstants.ACTION_NONE` if this drop action is not supported by the drag source.

  If the user doesn't select a drop action, the set of `DnDConstants` that represents the set of drop actions supported by the drag source is searched for `DnDConstants.ACTION_MOVE`, then for `DnDConstants.ACTION_COPY`, then for `DnDConstants.ACTION_LINK` and the user drop action is the first constant found. If no constant is found the user drop action is `DnDConstants.ACTION_NONE`.

  Since:
    1.2
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields declared in class java.util.EventObject

      `source`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DragSourceDragEvent​(DragSourceContext dsc, int dropAction, int action, int modifiers)` | Constructs a `DragSourceDragEvent`.
    `DragSourceDragEvent​(DragSourceContext dsc, int dropAction, int action, int modifiers, int x, int y)` | Constructs a `DragSourceDragEvent` given the specified `DragSourceContext`, user drop action, target drop action, modifiers and coordinates.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getDropAction()` | This method returns the logical intersection of the target drop action and the set of drop actions supported by the drag source.
    `int` | `getGestureModifiers()` | This method returns an `int` representing the current state of the input device modifiers associated with the user's gesture.
    `int` | `getGestureModifiersEx()` | This method returns an `int` representing the current state of the input device extended modifiers associated with the user's gesture.
    `int` | `getTargetActions()` | This method returns the target drop action.
    `int` | `getUserAction()` | This method returns the user drop action.

    - ### Methods declared in class java.awt.dnd.DragSourceEvent

      `getDragSourceContext, getLocation, getX, getY`

    - ### Methods declared in class java.util.EventObject

      `getSource, toString`

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### DragSourceDragEvent

          public DragSourceDragEvent​(DragSourceContext dsc,
                                     int dropAction,
                                     int action,
                                     int modifiers)

      Constructs a `DragSourceDragEvent`. This class is typically instantiated by the `DragSourceContextPeer` rather than directly by client code. The coordinates for this `DragSourceDragEvent` are not specified, so `getLocation` will return `null` for this event.

      The arguments `dropAction` and `action` should be one of `DnDConstants` that represents a single action. The argument `modifiers` should be either a bitwise mask of old `java.awt.event.InputEvent.*_MASK` constants or a bitwise mask of extended `java.awt.event.InputEvent.*_DOWN_MASK` constants. This constructor does not throw any exception for invalid `dropAction`, `action` and `modifiers`.

      Parameters:
        `dsc` - the `DragSourceContext` that is to manage notifications for this event.
        `dropAction` - the user drop action.
        `action` - the target drop action.
        `modifiers` - the modifier keys down during event (shift, ctrl, alt, meta) Either extended _DOWN_MASK or old _MASK modifiers should be used, but both models should not be mixed in one event. Use of the extended modifiers is preferred.
      Throws:
        `IllegalArgumentException` - if `dsc` is `null`.
      See Also:
        `InputEvent`, `DragSourceEvent.getLocation()`

    - #### DragSourceDragEvent

          public DragSourceDragEvent​(DragSourceContext dsc,
                                     int dropAction,
                                     int action,
                                     int modifiers,
                                     int x,
                                     int y)

      Constructs a `DragSourceDragEvent` given the specified `DragSourceContext`, user drop action, target drop action, modifiers and coordinates.

      The arguments `dropAction` and `action` should be one of `DnDConstants` that represents a single action. The argument `modifiers` should be either a bitwise mask of old `java.awt.event.InputEvent.*_MASK` constants or a bitwise mask of extended `java.awt.event.InputEvent.*_DOWN_MASK` constants. This constructor does not throw any exception for invalid `dropAction`, `action` and `modifiers`.

      Parameters:
        `dsc` - the `DragSourceContext` associated with this event.
        `dropAction` - the user drop action.
        `action` - the target drop action.
        `modifiers` - the modifier keys down during event (shift, ctrl, alt, meta) Either extended _DOWN_MASK or old _MASK modifiers should be used, but both models should not be mixed in one event. Use of the extended modifiers is preferred.
        `x` - the horizontal coordinate for the cursor location
        `y` - the vertical coordinate for the cursor location
      Throws:
        `IllegalArgumentException` - if `dsc` is `null`.
      Since:
        1.4
      See Also:
        `InputEvent`

  - ### Method Detail

    - #### getTargetActions

          public int getTargetActions()

      This method returns the target drop action.
      Returns:
        the target drop action.

    - #### getGestureModifiers

          public int getGestureModifiers()

      This method returns an `int` representing the current state of the input device modifiers associated with the user's gesture. Typically these would be mouse buttons or keyboard modifiers.

      If the `modifiers` passed to the constructor are invalid, this method returns them unchanged.

      Returns:
        the current state of the input device modifiers

    - #### getGestureModifiersEx

          public int getGestureModifiersEx()

      This method returns an `int` representing the current state of the input device extended modifiers associated with the user's gesture. See `InputEvent.getModifiersEx()`

      If the `modifiers` passed to the constructor are invalid, this method returns them unchanged.

      Returns:
        the current state of the input device extended modifiers
      Since:
        1.4

    - #### getUserAction

          public int getUserAction()

      This method returns the user drop action.
      Returns:
        the user drop action.

    - #### getDropAction

          public int getDropAction()

      This method returns the logical intersection of the target drop action and the set of drop actions supported by the drag source.
      Returns:
        the logical intersection of the target drop action and the set of drop actions supported by the drag source.