Eclipse GEF
2.1

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 EditParts.


Nested Class Summary
 
Nested classes inherited from class org.eclipse.gef.tools.AbstractTool
AbstractTool.Input
 
Field Summary
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, 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_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
SelectEditPartTracker(EditPart owner)
          Constructs a new SelectEditPartTracker with the given edit part as the source.
 
Method Summary
protected  Cursor calculateCursor()
          Returns the appropriate cursor for the tools current state.
protected  String getCommandName()
          Returns the identifier of the command that is being sought.
protected  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)
          Calls performOpen() 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()
          Returns true if selection has already occured.
protected  void performConditionalSelection()
          Calls performSelection() if the source is not selected.
protected  void performDirectEdit()
          Creates a DirectEditRequest and sends it to a DelayedDirectEditHelper to allow the user to directly edit the edit part.
protected  void performOpen()
          Creates a SelectionRequest and sends it to the source edit part via EditPart.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()
          Resets all flags to their initial values.
protected  void setSourceEditPart(EditPart part)
          Sets the source edit part.
 
Methods inherited from class org.eclipse.gef.tools.TargetingTool
createTargetRequest, deactivate, doAutoexpose, eraseTargetFeedback, getCommand, getExclusionSet, getTargetEditPart, getTargetingConditional, getTargetRequest, handleAutoexpose, handleEnteredEditPart, handleExitingEditPart, handleHoverStop, handleInvalidInput, handleLeavingEditPart, handleViewerExited, isShowingTargetFeedback, isTargetLocked, lockTargetEditPart, setAutoexposeHelper, setTargetEditPart, setTargetRequest, showTargetFeedback, unlockTargetEditPart, updateAutoexposeHelper, updateTargetRequest, updateTargetUnderMouse
 
Methods inherited from class org.eclipse.gef.tools.AbstractTool
activate, addFeedback, commitDrag, createOperationSet, debug, executeCurrentCommand, focusGained, focusLost, getCurrentCommand, getCurrentInput, getCurrentViewer, getDebugNameForState, getDefaultCursor, getDisabledCursor, getDomain, getDragMoveDelta, getLocation, getOperationSet, getStartLocation, getState, handleDrag, handleDragInProgress, handleFinished, handleFocusGained, handleFocusLost, handleHover, handleKeyDown, handleKeyUp, handleMove, handleNativeDragFinished, handleNativeDragStarted, handleViewerEntered, isActive, isHoverActive, isInState, keyDown, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, movedPastThreshold, nativeDragFinished, nativeDragStarted, reactivate, refreshCursor, releaseToolCapture, removeFeedback, setCurrentCommand, setCursor, setDefaultCursor, setDisabledCursor, setEditDomain, setHoverActive, 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, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, nativeDragFinished, nativeDragStarted, setEditDomain, 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 class AbstractTool
Returns:
null or a cursor to be displayed.
See Also:
AbstractTool.calculateCursor()

getCommandName

protected 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 class AbstractTool
Returns:
the identifier for the command
See Also:
AbstractTool.getCommandName()

getDebugName

protected String getDebugName()
Description copied from class: AbstractTool
Returns the debug name for this tool.

Specified by:
getDebugName in class AbstractTool
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 class AbstractTool
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 class AbstractTool
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)
Calls performOpen() if the double click was with mouse button 1.

Overrides:
handleDoubleClick in class AbstractTool
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 and false is returned. Subclasses may override to interpret the drag starting. Returning true indicates that the event was handled.

Overrides:
handleDragStarted in class AbstractTool
Returns:
true if the drag starting was handled
See Also:
AbstractTool.handleDragStarted()

hasSelectionOccurred

protected boolean hasSelectionOccurred()
Returns true if selection has already occured.

Returns:
true if selection has occured

performConditionalSelection

protected void performConditionalSelection()
Calls performSelection() 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 a DirectEditRequest and sends it to a DelayedDirectEditHelper to allow the user to directly edit the edit part.


performOpen

protected void performOpen()
Creates a SelectionRequest and sends it to the source edit part via EditPart.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: AbstractTool
Resets all flags to their initial values. Subclasses should extend this method to reset their own custom flags.

Overrides:
resetFlags in class AbstractTool
See Also:
AbstractTool.resetFlags()

setSourceEditPart

protected void setSourceEditPart(EditPart part)
Sets the source edit part.

Parameters:
part - the source edit part

Eclipse GEF
2.1

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.