Package VASSAL.build.module.map
Class PieceMover.AbstractDragHandler
java.lang.Object
VASSAL.build.module.map.PieceMover.AbstractDragHandler
- All Implemented Interfaces:
DragGestureListener
,DragSourceListener
,DragSourceMotionListener
,DropTargetListener
,EventListener
- Direct Known Subclasses:
PieceMover.DragHandler
,PieceMover.DragHandlerNoImage
- Enclosing class:
- PieceMover
public abstract static class PieceMover.AbstractDragHandler
extends Object
implements DragGestureListener, DragSourceListener, DragSourceMotionListener, DropTargetListener
Common functionality for DragHandler for cases with and without drag image support.
NOTE: DragSource.isDragImageSupported() returns false for j2sdk1.4.2_02 on Windows 2000
- Author:
- Pieter Geerkens
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
The the Drag Gesture Recognizer that we're officially beginning a drag.void
DRAG SOURCE LISTENER INTERFACEvoid
void
DROP TARGET INTERFACE EVENT uses UNSCALED, DROP-TARGET coordinate system dragEnter - switches current drawWin when mouse enters a new DropTargetvoid
void
ineffectual.void
DRAG GESTURE LISTENER INTERFACE EVENT uses SCALED, DRAG-SOURCE coordinate system.protected Point
Sets things up at the beginning of a drag-and-drop operation:
- Screen out any immovable pieces
- Account for any offsets on in the window
- Sets dragWin to our source windowabstract void
DRAG SOURCE MOTION LISTENER INTERFACE EVENT uses UNSCALED, SCREEN coordinate system Moves cursor after mouse.void
void
ineffectual.void
DROP TARGET INTERFACE EVENT uses UNSCALED, DROP-TARGET coordinate system drop() - Last event of the drop operation.void
void
ineffectual.protected abstract double
protected DropTargetListener
protected abstract int
returns the singleton DragHandler instanceprotected void
makeDragCursor(double zoom)
Installs the cursor image into our dragCursor JLabel.static DropTarget
makeDropTarget(Component theComponent, int dndContants, DropTargetListener dropTargetListener)
Creates a new DropTarget and hooks us into the beginning of a DropTargetListener chain.protected void
moveDragCursor(int dragX, int dragY)
Moves the drag cursor on the current draw windowprotected void
Removes the drag cursor from the current draw windowstatic void
removeDropTarget(Component theComponent)
Removes a dropTarget componentvoid
setDrawWinToOwnerOf(Component newDropWin)
creates or moves cursor object to given window.static void
setTheDragHandler(PieceMover.AbstractDragHandler myHandler)
-
Field Details
-
dragCursor
-
dragPieceOffCenterZoom
protected double dragPieceOffCenterZoom -
dragCursorZoom
protected double dragCursorZoom -
lastDragLocation
-
-
Constructor Details
-
AbstractDragHandler
public AbstractDragHandler()
-
-
Method Details
-
getTheDragHandler
returns the singleton DragHandler instance -
setTheDragHandler
-
getOffsetMult
protected abstract int getOffsetMult()- Returns:
- platform-dependent offset multiplier
-
getDeviceScale
- Parameters:
dge
- DG event- Returns:
- platform-dependent device scale
-
makeDropTarget
public static DropTarget makeDropTarget(Component theComponent, int dndContants, DropTargetListener dropTargetListener)Creates a new DropTarget and hooks us into the beginning of a DropTargetListener chain. DropTarget events are not multicast; there can be only one "true" listener. -
removeDropTarget
Removes a dropTarget component- Parameters:
theComponent
- component to remove
-
getListener
- Parameters:
e
- DropTargetEvent- Returns:
- associated DropTargetListener
-
moveDragCursor
protected void moveDragCursor(int dragX, int dragY)Moves the drag cursor on the current draw window- Parameters:
dragX
- x positiondragY
- y position
-
removeDragCursor
protected void removeDragCursor()Removes the drag cursor from the current draw window -
setDrawWinToOwnerOf
creates or moves cursor object to given window. Called when drag operation begins in a window or the cursor is dragged over a new drop-target window- Parameters:
newDropWin
- window component to be our new draw window.
-
makeDragCursor
protected void makeDragCursor(double zoom)Installs the cursor image into our dragCursor JLabel. Sets current zoom. Should be called at beginning of drag and whenever zoom changes. INPUT: DragBuffer.getBuffer OUTPUT: dragCursorZoom cursorOffCenterX cursorOffCenterY boundingBox- Parameters:
zoom
- DragBuffer.getBuffer
-
dragGestureRecognized
DRAG GESTURE LISTENER INTERFACE EVENT uses SCALED, DRAG-SOURCE coordinate system. ("component coordinates") PIECE uses SCALED, OWNER (arbitrary) coordinate system ("map coordinates") Fires after user begins moving the mouse several pixels over a map. This method will be overridden, but called as a super(), by the Drag Gesture extension that is used, which will either bePieceMover.DragHandler
if DragImage is supported by the JRE, orPieceMover.DragHandlerNoImage
if not. Either one will have calleddragGestureRecognizedPrep(java.awt.dnd.DragGestureEvent)
, immediately below, before it calls this method.- Specified by:
dragGestureRecognized
in interfaceDragGestureListener
-
dragGestureRecognizedPrep
Sets things up at the beginning of a drag-and-drop operation:
- Screen out any immovable pieces
- Account for any offsets on in the window
- Sets dragWin to our source window- Parameters:
dge
- dg event- Returns:
- mousePosition if we processed, or null if we bailed.
-
beginDragging
The the Drag Gesture Recognizer that we're officially beginning a drag.- Parameters:
dge
- DG event
-
dragDropEnd
DRAG SOURCE LISTENER INTERFACE- Specified by:
dragDropEnd
in interfaceDragSourceListener
- Parameters:
e
-
-
dragEnter
- Specified by:
dragEnter
in interfaceDragSourceListener
-
dragExit
- Specified by:
dragExit
in interfaceDragSourceListener
-
dragOver
- Specified by:
dragOver
in interfaceDragSourceListener
-
dropActionChanged
- Specified by:
dropActionChanged
in interfaceDragSourceListener
-
dragMouseMoved
DRAG SOURCE MOTION LISTENER INTERFACE EVENT uses UNSCALED, SCREEN coordinate system Moves cursor after mouse. Used to check for real mouse movement. Warning: dragMouseMoved fires 8 times for each point on development system (Win2k)- Specified by:
dragMouseMoved
in interfaceDragSourceMotionListener
-
dragEnter
DROP TARGET INTERFACE EVENT uses UNSCALED, DROP-TARGET coordinate system dragEnter - switches current drawWin when mouse enters a new DropTarget- Specified by:
dragEnter
in interfaceDropTargetListener
-
drop
DROP TARGET INTERFACE EVENT uses UNSCALED, DROP-TARGET coordinate system drop() - Last event of the drop operation. We adjust the drop point for off-center drag, remove the cursor, and pass the event along listener chain.- Specified by:
drop
in interfaceDropTargetListener
-
dragExit
ineffectual. Passes event along listener chain- Specified by:
dragExit
in interfaceDropTargetListener
-
dragOver
ineffectual. Passes event along listener chain- Specified by:
dragOver
in interfaceDropTargetListener
-
dropActionChanged
ineffectual. Passes event along listener chain- Specified by:
dropActionChanged
in interfaceDropTargetListener
-