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
public class SelectEditPartTracker extends TargetingTool implements DragTracker
DragTracker used to select, edit, and openEditParts
.
-
-
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
FLAG_SELECTION_PERFORMED
Flag to indicate selection has been performed.protected static int
MAX_FLAG
Max flag-
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 Constructor Description SelectEditPartTracker(EditPart owner)
Constructs a new SelectEditPartTracker with the given edit part as the source.
-
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.protected java.lang.String
getCommandName()
Returns the identifier of the command that is being sought.protected java.lang.String
getDebugName()
Returns the debug name for this tool.protected EditPart
getSourceEditPart()
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
handleDragStarted()
Called only one time during a drag when the drag threshold has been exceeded.protected boolean
hasSelectionOccurred()
Returnstrue
if selection has already occured.protected void
performConditionalSelection()
CallsperformSelection()
if the source is not selected.protected void
performDirectEdit()
Creates aDirectEditRequest
and sends it to a DelayedDirectEditHelper to allow the user to directly edit the edit part.protected void
performOpen()
Creates aSelectionRequest
and sends it to the source edit part viaEditPart.performRequest(Request)
.protected void
performSelection()
Performs the appropriate selection action based on the selection state of the source and the modifiers (CTRL and SHIFT).protected void
resetFlags()
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 Detail
-
FLAG_SELECTION_PERFORMED
protected static final int FLAG_SELECTION_PERFORMED
Flag to indicate selection has been performed.- See Also:
- Constant Field Values
-
MAX_FLAG
protected static final int MAX_FLAG
Max flag- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SelectEditPartTracker
public SelectEditPartTracker(EditPart owner)
Constructs a new SelectEditPartTracker with the given edit part as the source.- Parameters:
owner
- the source edit part
-
-
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()
-
getCommandName
protected java.lang.String 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:
AbstractTool.getCommandName()
-
getDebugName
protected java.lang.String getDebugName()
Description copied from class:AbstractTool
Returns the debug name for this tool.- Overrides:
getDebugName
in classAbstractTool
- Returns:
- the debug name
- See Also:
AbstractTool.getDebugName()
-
getSourceEditPart
protected EditPart 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:
AbstractTool.handleButtonDown(int)
-
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:
AbstractTool.handleButtonUp(int)
-
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:
AbstractTool.handleDoubleClick(int)
-
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:
AbstractTool.handleDragStarted()
-
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:
AbstractTool.resetFlags()
-
setSourceEditPart
protected void setSourceEditPart(EditPart part)
Sets the source edit part.- Parameters:
part
- the source edit part
-
-