Package org.eclipse.gef.tools
Class SelectEditPartTracker
java.lang.Object
org.eclipse.gef.util.FlagSupport
org.eclipse.gef.tools.AbstractTool
org.eclipse.gef.tools.TargetingTool
org.eclipse.gef.tools.SelectEditPartTracker
- All Implemented Interfaces:
DragTracker
,RequestConstants
,Tool
- Direct Known Subclasses:
DeselectAllTracker
,DragEditPartsTracker
,DragTreeItemsTracker
DragTracker used to select, edit, and open
EditParts
.-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.gef.tools.AbstractTool
AbstractTool.Input
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final int
Flag to indicate selection has been performed.protected static final int
Max flagFields 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
ConstructorsConstructorDescriptionSelectEditPartTracker
(EditPart owner) Constructs a new SelectEditPartTracker with the given edit part as the source. -
Method Summary
Modifier and TypeMethodDescriptionprotected Cursor
Returns the appropriate cursor for the tools current state.protected String
Returns the identifier of the command that is being sought.protected String
Returns the debug name for this tool.protected EditPart
Returns the source edit part.protected boolean
handleButtonDown
(int button) Performs a conditional selection if needed (if right or left mouse button have been pressed) and goes into the drag state.protected boolean
handleButtonUp
(int button) If in the drag state, the tool selects the source edit part.protected boolean
handleDoubleClick
(int button) CallsperformOpen()
if the double click was with mouse button 1.protected boolean
Called only one time during a drag when the drag threshold has been exceeded.protected boolean
Returnstrue
if selection has already occured.protected void
CallsperformSelection()
if the source is not selected.protected void
Creates aDirectEditRequest
and sends it to a DelayedDirectEditHelper to allow the user to directly edit the edit part.protected void
Creates aSelectionRequest
and sends it to the source edit part viaEditPart.performRequest(Request)
.protected void
Performs the appropriate selection action based on the selection state of the source and the modifiers (CTRL and SHIFT).protected void
Extended to reset the target lock flag.protected void
setSourceEditPart
(EditPart part) Sets the source edit part.Methods inherited from class org.eclipse.gef.tools.TargetingTool
createTargetRequest, deactivate, doAutoexpose, eraseTargetFeedback, getAutoexposeHelper, getCommand, getExclusionSet, getTargetEditPart, getTargetingConditional, getTargetRequest, handleAutoexpose, handleEnteredEditPart, handleExitingEditPart, handleHoverStop, handleInvalidInput, handleLeavingEditPart, handleViewerExited, isShowingTargetFeedback, isTargetLocked, lockTargetEditPart, resetHover, setAutoexposeHelper, setTargetEditPart, setTargetRequest, showTargetFeedback, unlockTargetEditPart, updateAutoexposeHelper, updateTargetRequest, updateTargetUnderMouse
Methods inherited from class org.eclipse.gef.tools.AbstractTool
acceptArrowKey, activate, addFeedback, applyProperty, commitDrag, createOperationSet, debug, executeCommand, executeCurrentCommand, focusGained, focusLost, getCurrentCommand, getCurrentInput, getCurrentViewer, getDebugNameForState, getDefaultCursor, getDisabledCursor, getDomain, getDragMoveDelta, getLocation, getOperationSet, getStartLocation, getState, handleCommandStackChanged, handleDrag, handleDragInProgress, 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, 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.DragTracker
commitDrag
Methods inherited from interface org.eclipse.gef.Tool
activate, deactivate, focusGained, focusLost, keyDown, keyTraversed, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, mouseWheelScrolled, nativeDragFinished, nativeDragStarted, setEditDomain, setProperties, setViewer, viewerEntered, viewerExited
-
Field Details
-
FLAG_SELECTION_PERFORMED
protected static final int FLAG_SELECTION_PERFORMEDFlag to indicate selection has been performed.- See Also:
-
MAX_FLAG
protected static final int MAX_FLAGMax flag- See Also:
-
-
Constructor Details
-
SelectEditPartTracker
Constructs a new SelectEditPartTracker with the given edit part as the source.- Parameters:
owner
- the source edit part
-
-
Method Details
-
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:
-
getCommandName
Description copied from class:AbstractTool
Returns the identifier of the command that is being sought. This name is also the named that will be logged in the debug view.- Specified by:
getCommandName
in classAbstractTool
- Returns:
- the identifier for the command
- See Also:
-
getDebugName
Description copied from class:AbstractTool
Returns the debug name for this tool.- Overrides:
getDebugName
in classAbstractTool
- Returns:
- the debug name
- See Also:
-
getSourceEditPart
Returns the source edit part.- Returns:
- the source edit part
-
handleButtonDown
protected boolean handleButtonDown(int button) Performs a conditional selection if needed (if right or left mouse button have been pressed) and goes into the drag state. If any other button has been pressed, the tool goes into the invalid state.- Overrides:
handleButtonDown
in classAbstractTool
- Parameters:
button
- which button went down- Returns:
true
if the buttonDown was handled- See Also:
-
handleButtonUp
protected boolean handleButtonUp(int button) If in the drag state, the tool selects the source edit part. If the edit part was already selected,performDirectEdit()
is called. If the edit part is newly selected and not completely visible,EditPartViewer.reveal(EditPart)
is called to show the selected edit part.- Overrides:
handleButtonUp
in classAbstractTool
- Parameters:
button
- the button being released- Returns:
true
if the button up was handled- See Also:
-
handleDoubleClick
protected boolean handleDoubleClick(int button) CallsperformOpen()
if the double click was with mouse button 1.- Overrides:
handleDoubleClick
in classAbstractTool
- Parameters:
button
- which button was double-clicked- Returns:
true
if the event was handled- See Also:
-
handleDragStarted
protected boolean handleDragStarted()Description copied from class:AbstractTool
Called only one time during a drag when the drag threshold has been exceeded. By default, nothing happens andfalse
is returned. Subclasses may override to interpret the drag starting. Returningtrue
indicates that the event was handled.- Overrides:
handleDragStarted
in classAbstractTool
- Returns:
- true if the drag starting was handled
- See Also:
-
hasSelectionOccurred
protected boolean hasSelectionOccurred()Returnstrue
if selection has already occured.- Returns:
true
if selection has occured
-
performConditionalSelection
protected void performConditionalSelection()CallsperformSelection()
if the source is not selected. If the source is selected and there are no modifier keys pressed (i.e. the user isn't selecting multiple edit parts or deselecting edit parts), sets the direct edit flag so that when the mouse is released, a direct edit will be performed. -
performDirectEdit
protected void performDirectEdit()Creates aDirectEditRequest
and sends it to a DelayedDirectEditHelper to allow the user to directly edit the edit part. -
performOpen
protected void performOpen()Creates aSelectionRequest
and sends it to the source edit part viaEditPart.performRequest(Request)
. Possible uses are to open the selected item in another editor or replace the current editor's contents based on the selected item. -
performSelection
protected void performSelection()Performs the appropriate selection action based on the selection state of the source and the modifiers (CTRL and SHIFT). If no modifier key is pressed, the source will be set as the only selection. If the CTRL key is pressed and the edit part is already selected, it will be deselected. If the CTRL key is pressed and the edit part is not selected, it will be appended to the selection set. If the SHIFT key is pressed, the source will be appended to the selection. -
resetFlags
protected void resetFlags()Description copied from class:TargetingTool
Extended to reset the target lock flag.- Overrides:
resetFlags
in classTargetingTool
- See Also:
-
setSourceEditPart
Sets the source edit part.- Parameters:
part
- the source edit part
-