Eclipse GEF 3.3

## 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

public class MarqueeSelectionTool
extends AbstractTool

A Tool which selects multiple objects inside a rectangular area of a Graphical Viewer. If the SHIFT key is pressed at the beginning of the drag, the enclosed items will be appended to the current selection. If the MOD1 key is pressed at the beginning of the drag, the enclosed items will have their selection state inverted.

By default, only editparts whose figure's are on the primary layer will be considered within the enclosed rectangle.

Nested Class Summary

Nested classes inherited from class org.eclipse.gef.tools.AbstractTool
`AbstractTool.Input`

Field Summary
`static int` `BEHAVIOR_CONNECTIONS_TOUCHED` This behaviour selects connections that intersect the marquee rectangle.
`static int` `BEHAVIOR_NODES_AND_CONNECTIONS` This behaviour selects nodes completely encompassed by the marquee rectangle, and all connections between those nodes.
`static int` `BEHAVIOR_NODES_CONTAINED` This behaviour selects nodes completely encompassed by the marquee rectangle.
`static Object` `PROPERTY_MARQUEE_BEHAVIOR` The property to be used in `AbstractTool.setProperties(java.util.Map)` for `setMarqueeBehavior(int)`.

Fields inherited from class org.eclipse.gef.tools.AbstractTool
`MAX_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_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
`MarqueeSelectionTool()` Creates a new MarqueeSelectionTool of default type `BEHAVIOR_NODES_CONTAINED`.

Method Summary
`protected void` `applyProperty(Object key, Object value)` This method is invoked from `AbstractTool.setProperties(Map)`.
`void` `deactivate()` Erases feedback if necessary and puts the tool into the terminal 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 boolean` `handleButtonDown(int button)` Called when the mouse button has been pressed.
`protected boolean` `handleButtonUp(int button)` Called when the mouse button has been released.
`protected boolean` `handleDragInProgress()` Called whenever a mouse is being dragged and the drag threshold has been exceeded.
`protected boolean` `handleFocusLost()` Handles high-level processing of a focus lost event.
`protected boolean` `handleInvalidInput()` This method is called when mouse or keyboard input is invalid and erases the feedback.
`protected boolean` `handleKeyDown(KeyEvent e)` Handles high-level processing of a key down event.
`protected boolean` `isViewerImportant(EditPartViewer viewer)` MarqueeSelectionTool is only interested in GraphicalViewers, not TreeViewers.
`void` `setMarqueeBehavior(int type)` Sets the type of parts that this tool will select.
`void` `setViewer(EditPartViewer viewer)` Sets the active EditPartViewer.

Methods inherited from class org.eclipse.gef.tools.AbstractTool

`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, reactivate, refreshCursor, releaseToolCapture, removeFeedback, resetFlags, setCurrentCommand, setCursor, setDefaultCursor, setDisabledCursor, setEditDomain, setHoverActive, setProperties, setStartLocation, setState, setToolCapture, setUnloadWhenFinished, 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`

Field Detail

### PROPERTY_MARQUEE_BEHAVIOR

    public static final Object PROPERTY_MARQUEE_BEHAVIOR

  The property to be used in `AbstractTool.setProperties(java.util.Map)` for `setMarqueeBehavior(int)`.

### BEHAVIOR_NODES_CONTAINED

    public static final int BEHAVIOR_NODES_CONTAINED

  This behaviour selects nodes completely encompassed by the marquee rectangle. This is the default behaviour for this tool.

  Since:
    3.1

### BEHAVIOR_CONNECTIONS_TOUCHED

    public static final int BEHAVIOR_CONNECTIONS_TOUCHED

  This behaviour selects connections that intersect the marquee rectangle.

  Since:
    3.1

### BEHAVIOR_NODES_AND_CONNECTIONS

    public static final int BEHAVIOR_NODES_AND_CONNECTIONS

  This behaviour selects nodes completely encompassed by the marquee rectangle, and all connections between those nodes.

  Since:
    3.1

Constructor Detail

### MarqueeSelectionTool

    public MarqueeSelectionTool()

  Creates a new MarqueeSelectionTool of default type `BEHAVIOR_NODES_CONTAINED`.

Method Detail

### applyProperty

    protected void applyProperty(Object key,
                                 Object value)

  Description copied from class: `AbstractTool`
  This method is invoked from `AbstractTool.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:
    `applyProperty` in class `AbstractTool`
  Parameters:
    `key` - the key; may be `null`
    `value` - the new value
  See Also:
    `AbstractTool.applyProperty(java.lang.Object, java.lang.Object)`

### deactivate

    public void deactivate()

  Erases feedback if necessary and puts the tool into the terminal state.

  Specified by:
    `deactivate` in interface `Tool`
  Overrides:
    `deactivate` in class `AbstractTool`
  See Also:
    `AbstractTool.activate()`

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

  Overrides:
    `getDebugName` in class `AbstractTool`
  Returns:
    the debug name
  See Also:
    `AbstractTool.getDebugName()`

### handleButtonDown

    protected boolean handleButtonDown(int button)

  Description copied from class: `AbstractTool`
  Called when the mouse button has been pressed. By default, nothing happens and `false` is returned. Subclasses may override this method to interpret the meaning of a mouse down. Returning `true` indicates that the button down was handled in some way.

  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)

  Description copied from class: `AbstractTool`
  Called when the mouse button has been released. By default, nothing happens and `false` is returned. Subclasses may override this method to interpret the mouse up. Returning `true` indicates that the mouse up was handled in some way.

  Overrides:
    `handleButtonUp` in class `AbstractTool`
  Parameters:
    `button` - the button being released
  Returns:
    `true` if the button up was handled
  See Also:
    `AbstractTool.handleButtonUp(int)`

### handleDragInProgress

    protected boolean handleDragInProgress()

  Description copied from class: `AbstractTool`
  Called whenever a mouse is being dragged and the drag threshold has been exceeded. Prior to the drag threshold being exceeded, only `AbstractTool.handleDrag()` is called. This method gets called repeatedly for every mouse move during the drag. By default, nothing happens and `false` is returned. Subclasses may override this method to interpret the drag. Returning `true` indicates that the drag was handled.

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

### handleFocusLost

    protected boolean handleFocusLost()

  Description copied from class: `AbstractTool`
  Handles high-level processing of a focus lost event. By default, nothing happens and `false` is returned. Subclasses may override this method to interpret the focus lost event. Return `true` to indicate that the event was processed.

  Overrides:
    `handleFocusLost` in class `AbstractTool`
  Returns:
    `true` if the event was handled
  See Also:
    `AbstractTool.handleFocusLost()`

### handleInvalidInput

    protected boolean handleInvalidInput()

  This method is called when mouse or keyboard input is invalid and erases the feedback.

  Overrides:
    `handleInvalidInput` in class `AbstractTool`
  Returns:
    `true`

### handleKeyDown

    protected boolean handleKeyDown(KeyEvent e)

  Handles high-level processing of a key down event. KeyEvents are forwarded to the current viewer's `KeyHandler`, via `KeyHandler.keyPressed(KeyEvent)`.

  Overrides:
    `handleKeyDown` in class `AbstractTool`
  Parameters:
    `e` - the key event
  Returns:
    `true` if the key down was handled.
  See Also:
    `AbstractTool.handleKeyDown(KeyEvent)`

### isViewerImportant

    protected boolean isViewerImportant(EditPartViewer viewer)

  MarqueeSelectionTool is only interested in GraphicalViewers, not TreeViewers.

  Overrides:
    `isViewerImportant` in class `AbstractTool`
  Parameters:
    `viewer` - the viewer where the event occured
  Returns:
    `true` if this tool is interested in events occuring in the given viewer; `false` otherwise
  See Also:
    `AbstractTool.isViewerImportant(org.eclipse.gef.EditPartViewer)`

### setMarqueeBehavior

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

  Parameters:
    `type` - `BEHAVIOR_CONNECTIONS_TOUCHED` or `BEHAVIOR_NODES_CONTAINED` or `BEHAVIOR_NODES_AND_CONNECTIONS`
  Since:
    3.1

### setViewer

    public void setViewer(EditPartViewer viewer)

  Description copied from class: `AbstractTool`
  Sets the active EditPartViewer. The active viewer is the viewer from which the last event was received.

  Specified by:
    `setViewer` in interface `Tool`
  Overrides:
    `setViewer` in class `AbstractTool`
  Parameters:
    `viewer` - the viewer
  See Also:
    `Tool.setViewer(org.eclipse.gef.EditPartViewer)`

Eclipse GEF 3.3

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