Package org.eclipse.gef.tools
Class MarqueeSelectionTool
java.lang.Object
org.eclipse.gef.util.FlagSupport
org.eclipse.gef.tools.AbstractTool
org.eclipse.gef.tools.MarqueeSelectionTool
- All Implemented Interfaces:
- RequestConstants,- Tool
- Direct Known Subclasses:
- MarqueeDragTracker
A Tool which selects multiple 
EditParts inside a rectangular area of
 a Graphical Viewer. Selection behavior can be configured by selecting (via
 setMarqueeBehavior(int)) one of six supported marquee behaviors,
 which are:
 - BEHAVIOR_NODES_CONTAINED
- BEHAVIOR_NODES_TOUCHED
- BEHAVIOR_CONNECTIONS_CONTAINED
- BEHAVIOR_CONNECTIONS_TOUCHED
- BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONS
- BEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONS
BEHAVIOR_NODES_CONTAINED).
 Besides different marquee behaviors, the tool supports different modes, which
 the user can influence by pressing modifier keys at the beginning of the drag
 operation. I.e. if the SHIFT key is pressed at the beginning of the drag, the
 enclosed items will be appended to the current viewer selection. If the MOD1
 key is pressed at the beginning of the drag, the enclosed items will have
 their selection state inverted.- 
Nested Class SummaryNested classes/interfaces inherited from class org.eclipse.gef.tools.AbstractToolAbstractTool.Input
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intThis behavior selects connections that intersect the marquee rectangle.static final intThis behavior selects connections that intersect the marquee rectangle.static final intDeprecated.static final intThis behavior selects nodes completely encompassed by the marquee rectangle.static final intThis behavior selects nodes completely encompassed by the marquee rectangle, and all connections between those nodes.static final intThis behavior selects nodes that intersect the marquee rectangle.static final intThis behavior selects nodes that intersect the marquee rectangle.static final intConstant defining the default marquee selection behavior.static final ObjectThe property to be used inAbstractTool.setProperties(java.util.Map)forsetMarqueeBehavior(int).Fields inherited from class org.eclipse.gef.tools.AbstractToolMAX_FLAG, 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_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 SummaryConstructorsConstructorDescriptionCreates a new MarqueeSelectionTool of default typeBEHAVIOR_NODES_CONTAINED.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidapplyProperty(Object key, Object value) This method is invoked fromAbstractTool.setProperties(Map).protected Collection<? extends GraphicalEditPart> Called fromperformMarqueeSelect()to determine thoseGraphicalEditParts that are affected by the current marquee selection.protected IFigurecreate a new marquee rectangle feedback figure Sub classes my provide their own feedback rectanglevoidErases feedback if necessary and puts the tool into the terminal state.protected StringReturns the identifier of the command that is being sought.protected RectangleReturns the current marquee selection rectangle.protected intReturns the current selection mode, i.e. default, append, or toggleprotected StringReturns the debug name for this tool.protected booleanhandleButtonDown(int button) Called when the mouse button has been pressed.protected booleanhandleButtonUp(int button) Called when the mouse button has been released.protected booleanCalled whenever a mouse is being dragged and the drag threshold has been exceeded.protected booleanHandles high-level processing of a focus lost event.protected booleanThis method is called when mouse or keyboard input is invalid and erases the feedback.protected booleanHandles high-level processing of a key down event.protected booleanisMarqueeSelectable(GraphicalEditPart editPart) Decides whether the given edit part may potentially be included in the current marquee selection.protected booleanisViewerImportant(EditPartViewer viewer) MarqueeSelectionTool is only interested in GraphicalViewers, not TreeViewers.protected voidCalculates and sets a new viewer selection based on the current marquee selection.voidsetMarqueeBehavior(int type) Sets the type of parts that this tool will select.voidsetViewer(EditPartViewer viewer) Sets the active EditPartViewer.Methods inherited from class org.eclipse.gef.tools.AbstractToolacceptArrowKey, accGetStep, accStepIncrement, accStepReset, activate, addFeedback, calculateCursor, commitDrag, createOperationSet, debug, executeCommand, executeCurrentCommand, focusGained, focusLost, getCommand, getCurrentCommand, getCurrentInput, getCurrentViewer, getDebugNameForState, getDefaultCursor, getDisabledCursor, getDomain, getDragMoveDelta, getLocation, getOperationSet, getStartLocation, getState, handleCommandStackChanged, handleDoubleClick, handleDrag, handleDragStarted, handleFinished, handleFocusGained, handleHover, handleKeyTraversed, handleKeyUp, handleMove, handleNativeDragFinished, handleNativeDragStarted, handleViewerEntered, handleViewerExited, isActive, isHoverActive, isInState, 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, stateTransition, unloadWhenFinished, viewerEntered, viewerExitedMethods inherited from class org.eclipse.gef.util.FlagSupportgetFlag, setFlag
- 
Field Details- 
BEHAVIOR_CONNECTIONS_CONTAINEDpublic static final int BEHAVIOR_CONNECTIONS_CONTAINEDThis behavior selects connections that intersect the marquee rectangle.- Since:
- 3.7
- See Also:
 
- 
BEHAVIOR_CONNECTIONS_TOUCHEDpublic static final int BEHAVIOR_CONNECTIONS_TOUCHEDThis behavior selects connections that intersect the marquee rectangle.- Since:
- 3.1
- See Also:
 
- 
BEHAVIOR_NODES_CONTAINEDpublic static final int BEHAVIOR_NODES_CONTAINEDThis behavior selects nodes completely encompassed by the marquee rectangle. This is the default behavior for this tool.- Since:
- 3.1
- See Also:
 
- 
BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONSpublic static final int BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONSThis behavior selects nodes completely encompassed by the marquee rectangle, and all connections between those nodes.- Since:
- 3.7
- See Also:
 
- 
BEHAVIOR_NODES_TOUCHEDpublic static final int BEHAVIOR_NODES_TOUCHEDThis behavior selects nodes that intersect the marquee rectangle.- Since:
- 3.7
- See Also:
 
- 
BEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONSpublic static final int BEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONSThis behavior selects nodes that intersect the marquee rectangle.- Since:
- 3.7
- See Also:
 
- 
BEHAVIOR_NODES_AND_CONNECTIONSDeprecated.useBEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONSinstead.This behavior selects nodes completely encompassed by the marquee rectangle, and all connections between those nodes.- Since:
- 3.1
- See Also:
 
- 
PROPERTY_MARQUEE_BEHAVIORThe property to be used inAbstractTool.setProperties(java.util.Map)forsetMarqueeBehavior(int).
- 
DEFAULT_MARQUEE_BEHAVIORpublic static final int DEFAULT_MARQUEE_BEHAVIORConstant defining the default marquee selection behavior.- Since:
- 3.7
- See Also:
 
 
- 
- 
Constructor Details- 
MarqueeSelectionToolpublic MarqueeSelectionTool()Creates a new MarqueeSelectionTool of default typeBEHAVIOR_NODES_CONTAINED.
 
- 
- 
Method Details- 
applyPropertyDescription copied from class:AbstractToolThis method is invoked fromAbstractTool.setProperties(Map). Sub-classes can override to add support for more properties. This method should fail silently in case of any error.AbstractTool uses introspection to match any keys with properties. For instance, the key "defaultCursor" would lead to the invocation of AbstractTool.setDefaultCursor(Cursor)with the provided value.- Overrides:
- applyPropertyin class- AbstractTool
- Parameters:
- key- the key; may be- null
- value- the new value
- See Also:
 
- 
calculateMarqueeSelectedEditPartsCalled fromperformMarqueeSelect()to determine thoseGraphicalEditParts that are affected by the current marquee selection. In default and append mode, the edit parts returned here will become selected in the current viewer's new selection (which is calculated and set inperformMarqueeSelect()), while in toggle mode their selection state will be inverted. Calculation is delegated tocalculatePrimaryMarqueeSelectedEditParts()andcalculateSecondaryMarqueeSelectedEditParts(Collection)to compute the set of marquee selected edit parts in a two step-process, where all directly affected edit parts are determined first, and those indirectly affected (related connections in case ofBEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONS, orBEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONS) afterwards. Clients may overwrite to customize the calculation of marquee selected edit parts.- Returns:
- A collection containing all GraphicalEditPart that should be regarded as being included in the current marquee selection, i.e. which should get selected in default or append mode, and whose selection state should get inverted in toggle mode.
- Since:
- 3.7
 
- 
deactivatepublic void deactivate()Erases feedback if necessary and puts the tool into the terminal state.- Specified by:
- deactivatein interface- Tool
- Overrides:
- deactivatein class- AbstractTool
- See Also:
 
- 
getCommandNameDescription copied from class:AbstractToolReturns 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:
- getCommandNamein class- AbstractTool
- Returns:
- the identifier for the command
- See Also:
 
- 
getCurrentMarqueeSelectionRectangleReturns the current marquee selection rectangle.- Returns:
- A Rectanglerepresenting the current marquee selection.
- Since:
- 3.7
 
- 
getCurrentSelectionModeprotected int getCurrentSelectionMode()Returns the current selection mode, i.e. default, append, or toggle- Returns:
- on of DEFAULT_MODE,APPEND_MODE, orTOGGLE_MODE
- Since:
- 3.7
 
- 
getDebugNameDescription copied from class:AbstractToolReturns the debug name for this tool.- Overrides:
- getDebugNamein class- AbstractTool
- Returns:
- the debug name
- See Also:
 
- 
createMarqueeRectangleFigurecreate a new marquee rectangle feedback figure Sub classes my provide their own feedback rectangle- Since:
- 3.13
 
- 
handleButtonDownprotected boolean handleButtonDown(int button) Description copied from class:AbstractToolCalled when the mouse button has been pressed. By default, nothing happens andfalseis returned. Subclasses may override this method to interpret the meaning of a mouse down. Returningtrueindicates that the button down was handled in some way.- Overrides:
- handleButtonDownin class- AbstractTool
- Parameters:
- button- which button went down
- Returns:
- trueif the buttonDown was handled
- See Also:
 
- 
handleButtonUpprotected boolean handleButtonUp(int button) Description copied from class:AbstractToolCalled when the mouse button has been released. By default, nothing happens andfalseis returned. Subclasses may override this method to interpret the mouse up. Returningtrueindicates that the mouse up was handled in some way.- Overrides:
- handleButtonUpin class- AbstractTool
- Parameters:
- button- the button being released
- Returns:
- trueif the button up was handled
- See Also:
 
- 
handleDragInProgressprotected boolean handleDragInProgress()Description copied from class:AbstractToolCalled 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 andfalseis returned. Subclasses may override this method to interpret the drag. Returningtrueindicates that the drag was handled.- Overrides:
- handleDragInProgressin class- AbstractTool
- Returns:
- trueif the drag was handled
- See Also:
 
- 
handleFocusLostprotected boolean handleFocusLost()Description copied from class:AbstractToolHandles high-level processing of a focus lost event. By default, nothing happens andfalseis returned. Subclasses may override this method to interpret the focus lost event. Returntrueto indicate that the event was processed.- Overrides:
- handleFocusLostin class- AbstractTool
- Returns:
- trueif the event was handled
- See Also:
 
- 
handleInvalidInputprotected boolean handleInvalidInput()This method is called when mouse or keyboard input is invalid and erases the feedback.- Overrides:
- handleInvalidInputin class- AbstractTool
- Returns:
- true
 
- 
handleKeyDownHandles high-level processing of a key down event. KeyEvents are forwarded to the current viewer'sKeyHandler, viaKeyHandler.keyPressed(KeyEvent).- Overrides:
- handleKeyDownin class- AbstractTool
- Parameters:
- e- the key event
- Returns:
- trueif the key down was handled.
- See Also:
 
- 
isMarqueeSelectableDecides whether the given edit part may potentially be included in the current marquee selection.- Parameters:
- editPart- the- EditPartof interest
- Returns:
- trueif the given edit part may be included into the marquee selection,- falseotherwise
- Since:
- 3.7
 
- 
isViewerImportantMarqueeSelectionTool is only interested in GraphicalViewers, not TreeViewers.- Overrides:
- isViewerImportantin class- AbstractTool
- Parameters:
- viewer- the viewer where the event occured
- Returns:
- trueif this tool is interested in events occuring in the given viewer;- falseotherwise
- See Also:
 
- 
performMarqueeSelectprotected void performMarqueeSelect()Calculates and sets a new viewer selection based on the current marquee selection. By default, this method delegates tocalculateMarqueeSelectedEditParts()to obtain the set of edit parts, which should be regarded as being affected by the current marquee selection. It then calculates a new viewer selection based on the current selection state of all affected edit parts and the current selection mode of the tool (getCurrentSelectionMode()), as well as the current selection of the viewer (in case of APPEND mode), which is then passed to the current viewer.- Since:
- 3.7
 
- 
setMarqueeBehaviorpublic void setMarqueeBehavior(int type) Sets the type of parts that this tool will select. This method should only be invoked once: when the tool is being initialized.
- 
setViewerDescription copied from class:AbstractToolSets the active EditPartViewer. The active viewer is the viewer from which the last event was received.- Specified by:
- setViewerin interface- Tool
- Overrides:
- setViewerin class- AbstractTool
- Parameters:
- viewer- the viewer
- See Also:
 
 
- 
BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONSinstead.