Package org.eclipse.gef.tools
Class TargetingTool
java.lang.Object
org.eclipse.gef.util.FlagSupport
org.eclipse.gef.tools.AbstractTool
org.eclipse.gef.tools.TargetingTool
- All Implemented Interfaces:
- RequestConstants,- Tool
- Direct Known Subclasses:
- AbstractConnectionCreationTool,- ConnectionEndpointTracker,- CreationTool,- SelectEditPartTracker,- SelectionTool
The base implementation for tools which perform targeting of editparts.
 Targeting tools may operate using either mouse drags or just mouse moves.
 Targeting tools work with a target request. This request is used along
 with the mouse location to obtain an active target from the current
 EditPartViewer. This target is then asked for the 
Command that
 performs the given request. The target is also asked to show target feedback.
 
 TargetingTool also provides support for auto-expose (a.k.a. auto-scrolling).
 Subclasses that wish to commence auto-expose can do so by calling
 updateAutoexposeHelper(). An an AutoExposeHelper is found,
 auto-scrolling begins. Whenever that helper scrolls the diagram of performs
 any other change, handleMove will be called as if the mouse had
 moved. This is because the target has probably moved, but there is no input
 event to trigger an update of the operation.
- 
Nested Class SummaryNested classes/interfaces inherited from class org.eclipse.gef.tools.AbstractToolAbstractTool.Input
- 
Field SummaryFieldsFields inherited from class org.eclipse.gef.tools.AbstractToolMAX_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_TERMINALFields inherited from interface org.eclipse.gef.RequestConstantsREQ_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 SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected RequestCreates the target request that will be used with the target editpart.voidDeactivates the tool.protected voidCalled to perform an iteration of the autoexpose process.protected voidAsks the current target editpart to erase target feedback using the target request.protected AutoexposeHelperReturnsnullor the current autoexpose helper.protected CommandQueries the target editpart for a command.protected intgetDirection(KeyEvent event) Get the direction indication from the key event.protected Collection<IFigure> Returns a List of figures that should be excluded as potential targets for the operation.protected EditPartReturnsnullor the current target editpart.protected EditPartViewer.ConditionalReturns the conditional object used for obtaining the target editpart from the current viewer.protected RequestLazily creates and returns the request used when communicating with the target editpart.protected voidThis method is called whenever an autoexpose occurs.protected booleanCalled whenever the target editpart has changed.protected booleanCalled whenever the target editpart is about to change.protected booleanCalled from resetHover() iff hover is active.protected booleanCalled when invalid input is encountered.protected final voidAn archaic method name that has been left here to force use of the new name.protected booleanSets the target tonull.protected booleanReturnstrueif target feedback is being shown.protected booleanReturntrueif the current target is locked.protected voidlockTargetEditPart(EditPart editpart) Locks-in the given editpart as the target.protected voidExtended to reset the target lock flag.protected voidResets hovering to inactive.protected voidsetAutoexposeHelper(AutoexposeHelper helper) Sets the active autoexpose helper to the given helper, ornull.voidsetRefreshRate(int refreshRate) Sets the rate with which the auto-expose helper is evaluated.protected voidsetTargetEditPart(EditPart editpart) Sets the target editpart.protected voidsetTargetRequest(Request req) Sets the target request.protected voidAsks the target editpart to show target feedback and sets the target feedback flag.protected voidReleases the targeting lock, and updates the target in case the mouse is already over a new target.protected voidUpdates the activeAutoexposeHelper.protected voidSubclasses should override to update the target request.protected booleanUpdates the target editpart and returnstrueif the target changes.Methods inherited from class org.eclipse.gef.tools.AbstractToolacceptArrowKey, accGetStep, accStepIncrement, accStepReset, activate, addFeedback, applyProperty, calculateCursor, commitDrag, createOperationSet, debug, executeCommand, executeCurrentCommand, focusGained, focusLost, getCommandName, getCurrentCommand, getCurrentInput, getCurrentViewer, getDebugName, getDebugNameForState, getDefaultCursor, getDisabledCursor, getDomain, getDragMoveDelta, getLocation, getOperationSet, getStartLocation, getState, handleButtonDown, handleButtonUp, handleCommandStackChanged, handleDoubleClick, handleDrag, handleDragInProgress, handleDragStarted, handleFinished, handleFocusGained, handleFocusLost, handleHover, handleKeyDown, handleKeyTraversed, handleKeyUp, handleMove, handleNativeDragFinished, handleNativeDragStarted, handleViewerEntered, isActive, isHoverActive, isInState, isViewerImportant, keyDown, keyTraversed, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, mouseWheelScrolled, movedPastThreshold, nativeDragFinished, nativeDragStarted, performViewerMouseWheel, placeMouseInViewer, reactivate, refreshCursor, releaseToolCapture, removeFeedback, setCurrentCommand, setCursor, setDefaultCursor, setDisabledCursor, setEditDomain, setHoverActive, setProperties, setStartLocation, setState, setToolCapture, setUnloadWhenFinished, setViewer, stateTransition, unloadWhenFinished, viewerEntered, viewerExitedMethods inherited from class org.eclipse.gef.util.FlagSupportgetFlag, setFlag
- 
Field Details- 
MAX_FLAGprotected static final int MAX_FLAGThe max flag.- See Also:
 
 
- 
- 
Constructor Details- 
TargetingToolpublic TargetingTool()
 
- 
- 
Method Details- 
createTargetRequestCreates the target request that will be used with the target editpart. This request will be cached and updated as needed.- Returns:
- the new target request
- See Also:
 
- 
deactivatepublic void deactivate()Description copied from class:AbstractToolDeactivates 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:
- deactivatein interface- Tool
- Overrides:
- deactivatein class- AbstractTool
- See Also:
 
- 
doAutoexposeprotected void doAutoexpose()Called to perform an iteration of the autoexpose process. If the expose helper is set, it will be asked to step at the current mouse location. If it returns true, another expose iteration will be queued. There is no delay between autoexpose events, other than the time required to perform the step().
- 
eraseTargetFeedbackprotected void eraseTargetFeedback()Asks the current target editpart to erase target feedback using the target request. If target feedback is not being shown, this method does nothing and returns. Otherwise, the target feedback flag is reset to false, and the target editpart is asked to erase target feedback. This methods should rarely be overridden.
- 
getCommandQueries the target editpart for a command.- Overrides:
- getCommandin class- AbstractTool
- Returns:
- a newly obtained command
- See Also:
 
- 
getDirectionGet the direction indication from the key event.- Returns:
- PositionConstants.NORTH, PositionConstants.EAST, PositionConstants.SOUTH, PositionConstants.WEST, or 0
- Since:
- 3.18
 
- 
getExclusionSetReturns a List of figures that should be excluded as potential targets for the operation.- Returns:
- the list of figures to be excluded as targets
 
- 
getTargetingConditionalReturns the conditional object used for obtaining the target editpart from the current viewer. By default, a conditional is returned that tests whether an editpart at the current mouse location indicates a target for the operation's request, usingEditPart.getTargetEditPart(Request). Ifnullis returned, then the conditional fails, and the search continues.- Returns:
- the targeting conditional
- See Also:
 
- 
getTargetEditPartReturnsnullor the current target editpart.- Returns:
- nullor a target part
 
- 
getTargetRequestLazily creates and returns the request used when communicating with the target editpart.- Returns:
- the target request
 
- 
handleAutoexposeprotected void handleAutoexpose()This method is called whenever an autoexpose occurs. When an autoexpose occurs, it is possible that everything in the viewer has moved a little. Therefore, by default,handleMove()is called to simulate the mouse moving even though it didn't.
- 
handleEnteredEditPartprotected boolean handleEnteredEditPart()Called whenever the target editpart has changed. By default, the target request is updated, and the new target is asked to show feedback. Subclasses may extend this method if needed.- Returns:
- true
 
- 
handleExitingEditPartprotected boolean handleExitingEditPart()Called whenever the target editpart is about to change. By default, hover is reset, in the case that a hover was showing something, and the target being exited is asked to erase its feedback.- Returns:
- true
 
- 
handleHoverStopprotected boolean handleHoverStop()Called from resetHover() iff hover is active. Subclasses may extend this method to handle the hover stop event. Returnstrueif something was done in response to the call.- Returns:
- trueif the hover stop is processed in some way
- See Also:
 
- 
handleInvalidInputprotected boolean handleInvalidInput()Called when invalid input is encountered. By default, feedback is erased, and the current command is set to the unexecutable command. The state does not change, so the caller must set the state toAbstractTool.STATE_INVALID.- Overrides:
- handleInvalidInputin class- AbstractTool
- Returns:
- true
 
- 
handleLeavingEditPartAn archaic method name that has been left here to force use of the new name.- Throws:
- Exception- exc
 
- 
handleViewerExitedprotected boolean handleViewerExited()Sets the target tonull.- Overrides:
- handleViewerExitedin class- AbstractTool
- Returns:
- trueif the viewer exited was handled
- See Also:
 
- 
isShowingTargetFeedbackprotected boolean isShowingTargetFeedback()Returnstrueif target feedback is being shown.- Returns:
- trueif showing target feedback
 
- 
isTargetLockedprotected boolean isTargetLocked()Returntrueif the current target is locked.- Returns:
- trueif the target is locked
- See Also:
 
- 
lockTargetEditPartLocks-in the given editpart as the target. Updating of the target will not occur untilunlockTargetEditPart()is called.- Parameters:
- editpart- the target to be locked-in
 
- 
resetFlagsprotected void resetFlags()Extended to reset the target lock flag.- Overrides:
- resetFlagsin class- AbstractTool
- See Also:
 
- 
resetHoverprotected void resetHover()Resets hovering to inactive.- Since:
- 3.4
 
- 
setAutoexposeHelperSets the active autoexpose helper to the given helper, ornull. If the helper is notnull, a runnable is queued on the event thread that will trigger a subsequentdoAutoexpose(). The helper is typically updated only on a hover event.- Parameters:
- helper- the new autoexpose helper or- null
 
- 
setTargetEditPartSets the target editpart. If the target editpart is changing, this method will callhandleExitingEditPart()for the previous target if notnull, andhandleEnteredEditPart()for the new target, if notnull.- Parameters:
- editpart- the new target
 
- 
setTargetRequestSets the target request. This method is typically not called; subclasses normally overridecreateTargetRequest().- Parameters:
- req- the target request
 
- 
showTargetFeedbackprotected void showTargetFeedback()Asks the target editpart to show target feedback and sets the target feedback flag.
- 
unlockTargetEditPartprotected void unlockTargetEditPart()Releases the targeting lock, and updates the target in case the mouse is already over a new target.
- 
updateAutoexposeHelperprotected void updateAutoexposeHelper()Updates the activeAutoexposeHelper. Does nothing if there is still an active helper. Otherwise, obtains a new helper (possiblenull) at the current mouse location and callssetAutoexposeHelper(AutoexposeHelper).
- 
updateTargetRequestprotected void updateTargetRequest()Subclasses should override to update the target request.
- 
updateTargetUnderMouseprotected boolean updateTargetUnderMouse()Updates the target editpart and returnstrueif the target changes. The target is updated by using the target conditional and the target request. If the target has been locked, this method does nothing and returnsfalse.- Returns:
- trueif the target was changed
 
- 
getAutoexposeHelperReturnsnullor the current autoexpose helper.- Returns:
- null or a helper
 
- 
setRefreshRatepublic void setRefreshRate(int refreshRate) Sets the rate with which the auto-expose helper is evaluated. If set to either0or a negative value, the evaluation is done as fast as possible (default behavior), otherwise everyrefreshRatems. Example:setRefreshRate(500); // Validate every 500ms - Parameters:
- refreshRate- The rate with which the auto-expose helper is validated.
- Since:
- 3.20
 
 
-