|
GEF (MVC) 3.9.0.201308190730 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.eclipse.gef.util.FlagSupport
org.eclipse.gef.tools.AbstractTool
org.eclipse.gef.tools.MarqueeSelectionTool
public class MarqueeSelectionTool
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_CONTAINEDBEHAVIOR_NODES_TOUCHEDBEHAVIOR_CONNECTIONS_CONTAINEDBEHAVIOR_CONNECTIONS_TOUCHEDBEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONSBEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONSBEHAVIOR_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 Summary |
|---|
| Nested classes/interfaces inherited from class org.eclipse.gef.tools.AbstractTool |
|---|
AbstractTool.Input |
| Field Summary | |
|---|---|
static int |
BEHAVIOR_CONNECTIONS_CONTAINED
This behavior selects connections that intersect the marquee rectangle. |
static int |
BEHAVIOR_CONNECTIONS_TOUCHED
This behavior selects connections that intersect the marquee rectangle. |
static int |
BEHAVIOR_NODES_AND_CONNECTIONS
Deprecated. use BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONS
instead. |
static int |
BEHAVIOR_NODES_CONTAINED
This behavior selects nodes completely encompassed by the marquee rectangle. |
static int |
BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONS
This behavior selects nodes completely encompassed by the marquee rectangle, and all connections between those nodes. |
static int |
BEHAVIOR_NODES_TOUCHED
This behavior selects nodes that intersect the marquee rectangle. |
static int |
BEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONS
This behavior selects nodes that intersect the marquee rectangle. |
static int |
DEFAULT_MARQUEE_BEHAVIOR
Constant defining the default marquee selection behavior. |
static java.lang.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(java.lang.Object key,
java.lang.Object value)
This method is invoked from AbstractTool.setProperties(Map). |
protected java.util.Collection |
calculateMarqueeSelectedEditParts()
Called from performMarqueeSelect() to determine those
EditParts that are affected by the current marquee selection. |
void |
deactivate()
Erases feedback if necessary and puts the tool into the terminal state. |
protected java.lang.String |
getCommandName()
Returns the identifier of the command that is being sought. |
protected Rectangle |
getCurrentMarqueeSelectionRectangle()
Returns the current marquee selection rectangle. |
protected int |
getCurrentSelectionMode()
Returns the current selection mode, i.e. default, append, or toggle |
protected java.lang.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 |
isMarqueeSelectable(GraphicalEditPart editPart)
Decides whether the given edit part may potentially be included in the current marquee selection. |
protected boolean |
isViewerImportant(EditPartViewer viewer)
MarqueeSelectionTool is only interested in GraphicalViewers, not TreeViewers. |
protected void |
performMarqueeSelect()
Calculates and sets a new viewer selection based on the current marquee selection. |
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.util.FlagSupport |
|---|
getFlag, setFlag |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int BEHAVIOR_CONNECTIONS_CONTAINED
public static final int BEHAVIOR_CONNECTIONS_TOUCHED
public static final int BEHAVIOR_NODES_CONTAINED
public static final int BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONS
public static final int BEHAVIOR_NODES_TOUCHED
public static final int BEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONS
public static final int BEHAVIOR_NODES_AND_CONNECTIONS
BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONS
instead.
public static final java.lang.Object PROPERTY_MARQUEE_BEHAVIOR
AbstractTool.setProperties(java.util.Map) for
setMarqueeBehavior(int).
public static final int DEFAULT_MARQUEE_BEHAVIOR
| Constructor Detail |
|---|
public MarqueeSelectionTool()
BEHAVIOR_NODES_CONTAINED.
| Method Detail |
|---|
protected void applyProperty(java.lang.Object key,
java.lang.Object value)
AbstractToolAbstractTool.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.
applyProperty in class AbstractToolkey - the key; may be nullvalue - the new valueAbstractTool.applyProperty(java.lang.Object,
java.lang.Object)protected java.util.Collection calculateMarqueeSelectedEditParts()
performMarqueeSelect() to determine those
EditParts 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 in performMarqueeSelect()), while in toggle mode their
selection state will be inverted.
Calculation is delegated to
calculatePrimaryMarqueeSelectedEditParts() and
calculateSecondaryMarqueeSelectedEditParts(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 of
BEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONS, or
BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONS) afterwards.
Clients may overwrite to customize the calculation of marquee selected
edit parts.
public void deactivate()
deactivate in interface Tooldeactivate in class AbstractToolAbstractTool.activate()protected java.lang.String getCommandName()
AbstractTool
getCommandName in class AbstractToolAbstractTool.getCommandName()protected Rectangle getCurrentMarqueeSelectionRectangle()
Rectangle representing the current marquee selection.protected int getCurrentSelectionMode()
DEFAULT_MODE, APPEND_MODE, or
TOGGLE_MODEprotected java.lang.String getDebugName()
AbstractTool
getDebugName in class AbstractToolAbstractTool.getDebugName()protected boolean handleButtonDown(int button)
AbstractToolfalse 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.
handleButtonDown in class AbstractToolbutton - which button went down
true if the buttonDown was handledAbstractTool.handleButtonDown(int)protected boolean handleButtonUp(int button)
AbstractToolfalse is returned. Subclasses may override this
method to interpret the mouse up. Returning true indicates
that the mouse up was handled in some way.
handleButtonUp in class AbstractToolbutton - the button being released
true if the button up was handledAbstractTool.handleButtonUp(int)protected boolean handleDragInProgress()
AbstractToolAbstractTool.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.
handleDragInProgress in class AbstractTooltrue if the drag was handledAbstractTool.handleDragInProgress()protected boolean handleFocusLost()
AbstractToolfalse is returned. Subclasses may override this
method to interpret the focus lost event. Return true to
indicate that the event was processed.
handleFocusLost in class AbstractTooltrue if the event was handledAbstractTool.handleFocusLost()protected boolean handleInvalidInput()
handleInvalidInput in class AbstractTooltrueprotected boolean handleKeyDown(KeyEvent e)
KeyHandler, via
KeyHandler.keyPressed(KeyEvent).
handleKeyDown in class AbstractToole - the key event
true if the key down was handled.AbstractTool.handleKeyDown(KeyEvent)protected boolean isMarqueeSelectable(GraphicalEditPart editPart)
editPart - the EditPart of interest
true if the given edit part may be included into the
marquee selection, false otherwiseprotected boolean isViewerImportant(EditPartViewer viewer)
isViewerImportant in class AbstractToolviewer - the viewer where the event occured
true if this tool is interested in events occuring
in the given viewer; false otherwiseAbstractTool.isViewerImportant(org.eclipse.gef.EditPartViewer)protected void performMarqueeSelect()
calculateMarqueeSelectedEditParts() 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.
public void setMarqueeBehavior(int type)
type - BEHAVIOR_CONNECTIONS_TOUCHED or
BEHAVIOR_CONNECTIONS_CONTAINED
BEHAVIOR_NODES_TOUCHED or
BEHAVIOR_NODES_CONTAINED or
BEHAVIOR_NODES_TOUCHED_AND_RELATED_CONNECTIONS or
BEHAVIOR_NODES_CONTAINED_AND_RELATED_CONNECTIONSpublic void setViewer(EditPartViewer viewer)
AbstractTool
setViewer in interface ToolsetViewer in class AbstractToolviewer - the viewerTool.setViewer(org.eclipse.gef.EditPartViewer)
|
GEF (MVC) 3.9.0.201308190730 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||