At this point, it would be good to review the flow, because the messages passed among the several objects discussed are so complex.
The DragGestureRecognizer recognizes a gesture and notifies the DragGestureListener. The DragGestureListener, assuming the actions and/or flavors are okay, asks DragSource to startDrag().
The DragSource creates a DragSourceContext and a DragSourceContextPeer. The DragSourceContext adds itself as a DragSourceListener to the DragSourceContextPeer. The DragSourceContextPeer receives state notifications (component entered/exited/is over) from the native system and delegates them to the DragSourceContext.
If the DropTargetListener accepts the action, the DragSourceContext notifies the DragSourceListener,