Package org.eclipse.gef.tools
Class SimpleDragTracker
- java.lang.Object
-
- org.eclipse.gef.util.FlagSupport
-
- org.eclipse.gef.tools.AbstractTool
-
- org.eclipse.gef.tools.SimpleDragTracker
-
- All Implemented Interfaces:
DragTracker
,RequestConstants
,Tool
- Direct Known Subclasses:
ConnectionBendpointTracker
,ResizeTracker
public abstract class SimpleDragTracker extends AbstractTool implements DragTracker
A simple drag tracker implementation that does not perform targeting. For example, resizing a shape or bendpoint does not involve any target editpart.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.gef.tools.AbstractTool
AbstractTool.Input
-
-
Field Summary
Fields Modifier and Type Field Description protected static int
MAX_FLAG
The maximum bit-mask used as a flag constant.-
Fields inherited from class org.eclipse.gef.tools.AbstractTool
MAX_STATE, MOUSE_BUTTON_ANY, MOUSE_BUTTON1, MOUSE_BUTTON2, MOUSE_BUTTON3, PROPERTY_UNLOAD_WHEN_FINISHED, STATE_ACCESSIBLE_DRAG, STATE_ACCESSIBLE_DRAG_IN_PROGRESS, STATE_DRAG, STATE_DRAG_IN_PROGRESS, STATE_INITIAL, STATE_INVALID, STATE_TERMINAL
-
Fields inherited from interface org.eclipse.gef.RequestConstants
REQ_ADD, REQ_ALIGN, REQ_ALIGN_CHILDREN, REQ_CLONE, REQ_CONNECTION_END, REQ_CONNECTION_START, REQ_CREATE, REQ_CREATE_BENDPOINT, REQ_DELETE, REQ_DELETE_DEPENDANT, REQ_DIRECT_EDIT, REQ_MOVE, REQ_MOVE_BENDPOINT, REQ_MOVE_CHILDREN, REQ_OPEN, REQ_ORPHAN, REQ_ORPHAN_CHILDREN, REQ_RECONNECT_SOURCE, REQ_RECONNECT_TARGET, REQ_RESIZE, REQ_RESIZE_CHILDREN, REQ_SELECTION, REQ_SELECTION_HOVER
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SimpleDragTracker()
Null constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Cursor
calculateCursor()
Returns the appropriate cursor for the tools current state.void
commitDrag()
Added for compatibility.protected Request
createSourceRequest()
Creates and returns a new Request that is used during the drag.void
deactivate()
Deactivates the tool.protected void
eraseSourceFeedback()
Show the source drag feedback for the drag occurring within the viewer.protected Request
getSourceRequest()
Returns the request for the source of the drag, creating it if necessary.protected boolean
handleButtonDown(int button)
Looks for button 1, and goes into the drag state.protected boolean
handleButtonUp(int button)
If dragging is in progress, cleans up feedback and calls performDrag().protected boolean
handleDragInProgress()
Called whenever a mouse is being dragged and the drag threshold has been exceeded.protected boolean
handleDragStarted()
Transitions Drag to Drag in progress state.protected boolean
handleInvalidInput()
Called when the mouse and/or keyboard input is invalid.protected boolean
handleKeyDown(KeyEvent e)
Looks for keys which are used during accessible drags.protected boolean
handleKeyUp(KeyEvent e)
Handles high-level processing of a key up event.protected boolean
isShowingFeedback()
Returnstrue
if feedback is being shown.protected void
performDrag()
Called once the drag has been interpreted.protected void
showSourceFeedback()
Show the source drag feedback for the drag occurring within the viewer.protected void
updateSourceRequest()
Updates the source request.-
Methods inherited from class org.eclipse.gef.tools.AbstractTool
acceptArrowKey, activate, addFeedback, applyProperty, createOperationSet, debug, executeCommand, executeCurrentCommand, focusGained, focusLost, getCommand, getCommandName, getCurrentCommand, getCurrentInput, getCurrentViewer, getDebugName, getDebugNameForState, getDefaultCursor, getDisabledCursor, getDomain, getDragMoveDelta, getLocation, getOperationSet, getStartLocation, getState, handleCommandStackChanged, handleDoubleClick, handleDrag, handleFinished, handleFocusGained, handleFocusLost, handleHover, handleKeyTraversed, handleMove, handleNativeDragFinished, handleNativeDragStarted, handleViewerEntered, handleViewerExited, isActive, isHoverActive, isInState, isViewerImportant, keyDown, keyTraversed, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, mouseWheelScrolled, movedPastThreshold, nativeDragFinished, nativeDragStarted, performViewerMouseWheel, placeMouseInViewer, reactivate, refreshCursor, releaseToolCapture, removeFeedback, resetFlags, setCurrentCommand, setCursor, setDefaultCursor, setDisabledCursor, setEditDomain, setHoverActive, setProperties, setStartLocation, setState, setToolCapture, setUnloadWhenFinished, setViewer, stateTransition, unloadWhenFinished, viewerEntered, viewerExited
-
Methods inherited from class org.eclipse.gef.util.FlagSupport
getFlag, setFlag
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.gef.Tool
activate, focusGained, focusLost, keyDown, keyTraversed, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, mouseWheelScrolled, nativeDragFinished, nativeDragStarted, setEditDomain, setProperties, setViewer, viewerEntered, viewerExited
-
-
-
-
Field Detail
-
MAX_FLAG
protected static final int MAX_FLAG
The maximum bit-mask used as a flag constant. Subclasses should start using the next highest bitmask.- See Also:
- Constant Field Values
-
-
Method Detail
-
calculateCursor
protected Cursor calculateCursor()
Description copied from class:AbstractTool
Returns the appropriate cursor for the tools current state. If the tool is in its terminal state,null
is returned. Otherwise, either the default or disabled cursor is returned, based on the existence of a current command, and whether that current command is executable.Subclasses may override or extend this method to calculate the appropriate cursor based on other conditions.
- Overrides:
calculateCursor
in classAbstractTool
- Returns:
null
or a cursor to be displayed.- See Also:
AbstractTool.calculateCursor()
-
commitDrag
public void commitDrag()
Description copied from class:AbstractTool
Added for compatibility.DragTracker.commitDrag()
was added for accessibility reasons. Since all tool implementations must inherit from this base class, then implementing this method here avoids breaking subclasses that implemented theDragTracker
interface.- Specified by:
commitDrag
in interfaceDragTracker
- Overrides:
commitDrag
in classAbstractTool
- See Also:
DragTracker.commitDrag()
-
createSourceRequest
protected Request createSourceRequest()
Creates and returns a new Request that is used during the drag.- Returns:
- a new source request
-
deactivate
public void deactivate()
Description copied from class:AbstractTool
Deactivates the tool. This method is called whenever the user switches to another tool. Use this method to do some clean-up when the tool is switched. The abstract tool allows cursors for viewers to be changed. When the tool is deactivated it must revert to normal the cursor of the last tool it changed.- Specified by:
deactivate
in interfaceTool
- Overrides:
deactivate
in classAbstractTool
- See Also:
Tool.deactivate()
-
eraseSourceFeedback
protected void eraseSourceFeedback()
Show the source drag feedback for the drag occurring within the viewer.
-
getSourceRequest
protected Request getSourceRequest()
Returns the request for the source of the drag, creating it if necessary.- Returns:
- the source request
-
handleButtonDown
protected boolean handleButtonDown(int button)
Looks for button 1, and goes into the drag state. Any other button is invalid input.- Overrides:
handleButtonDown
in classAbstractTool
- Parameters:
button
- which button went down- Returns:
true
if the buttonDown was handled- See Also:
AbstractTool.handleButtonDown(int)
-
handleButtonUp
protected boolean handleButtonUp(int button)
If dragging is in progress, cleans up feedback and calls performDrag().- Overrides:
handleButtonUp
in classAbstractTool
- Parameters:
button
- the button being released- Returns:
true
if the button up was handled- See Also:
AbstractTool.handleButtonUp(int)
-
handleDragInProgress
protected boolean handleDragInProgress()
Description copied from class:AbstractTool
Called whenever a mouse is being dragged and the drag threshold has been exceeded. Prior to the drag threshold being exceeded, onlyAbstractTool.handleDrag()
is called. This method gets called repeatedly for every mouse move during the drag. By default, nothing happens andfalse
is returned. Subclasses may override this method to interpret the drag. Returningtrue
indicates that the drag was handled.- Overrides:
handleDragInProgress
in classAbstractTool
- Returns:
true
if the drag was handled- See Also:
AbstractTool.handleDragInProgress()
-
handleDragStarted
protected boolean handleDragStarted()
Transitions Drag to Drag in progress state.- Overrides:
handleDragStarted
in classAbstractTool
- Returns:
- true if the drag starting was handled
- See Also:
AbstractTool.handleDragStarted()
-
handleInvalidInput
protected boolean handleInvalidInput()
Called when the mouse and/or keyboard input is invalid.- Overrides:
handleInvalidInput
in classAbstractTool
- Returns:
true
-
handleKeyDown
protected boolean handleKeyDown(KeyEvent e)
Looks for keys which are used during accessible drags.- Overrides:
handleKeyDown
in classAbstractTool
- Parameters:
e
- the key event- Returns:
true
if the key down was handled.- See Also:
AbstractTool.handleKeyDown(org.eclipse.swt.events.KeyEvent)
-
handleKeyUp
protected boolean handleKeyUp(KeyEvent e)
Description copied from class:AbstractTool
Handles high-level processing of a key up event. By default, does nothing and returnsfalse
. Subclasses may extend this method to process key up events. Returnstrue
if the key up was processed in some way.- Overrides:
handleKeyUp
in classAbstractTool
- Parameters:
e
- the key event- Returns:
true
if the event was handled- See Also:
AbstractTool.handleKeyUp(org.eclipse.swt.events.KeyEvent)
-
isShowingFeedback
protected boolean isShowingFeedback()
Returnstrue
if feedback is being shown.- Returns:
true
if feedback is showing
-
performDrag
protected void performDrag()
Called once the drag has been interpreted. This is where the real work of the drag is carried out. By default, the current command is executed.
-
showSourceFeedback
protected void showSourceFeedback()
Show the source drag feedback for the drag occurring within the viewer.
-
updateSourceRequest
protected void updateSourceRequest()
Updates the source request.
-
-