|
Eclipse GEF 3.8.0.201206112118 |
|||||||||
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 EditPart
s 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 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 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) . |
protected Collection |
calculateMarqueeSelectedEditParts()
Called from performMarqueeSelect() to determine those
EditPart s that are affected by the current marquee selection. |
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 Rectangle |
getCurrentMarqueeSelectionRectangle()
Returns the current marquee selection rectangle. |
protected int |
getCurrentSelectionMode()
Returns the current selection mode, i.e. default, append, or toggle |
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 |
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 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(Object key, Object value)
AbstractTool
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.
applyProperty
in class AbstractTool
key
- the key; may be null
value
- the new valueAbstractTool.applyProperty(java.lang.Object,
java.lang.Object)
protected Collection calculateMarqueeSelectedEditParts()
performMarqueeSelect()
to determine those
EditPart
s 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 Tool
deactivate
in class AbstractTool
AbstractTool.activate()
protected String getCommandName()
AbstractTool
getCommandName
in class AbstractTool
AbstractTool.getCommandName()
protected Rectangle getCurrentMarqueeSelectionRectangle()
Rectangle
representing the current marquee selection.protected int getCurrentSelectionMode()
DEFAULT_MODE
, APPEND_MODE
, or
TOGGLE_MODE
protected String getDebugName()
AbstractTool
getDebugName
in class AbstractTool
AbstractTool.getDebugName()
protected boolean handleButtonDown(int button)
AbstractTool
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.
handleButtonDown
in class AbstractTool
button
- which button went down
true
if the buttonDown was handledAbstractTool.handleButtonDown(int)
protected boolean handleButtonUp(int button)
AbstractTool
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.
handleButtonUp
in class AbstractTool
button
- the button being released
true
if the button up was handledAbstractTool.handleButtonUp(int)
protected boolean handleDragInProgress()
AbstractTool
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.
handleDragInProgress
in class AbstractTool
true
if the drag was handledAbstractTool.handleDragInProgress()
protected boolean handleFocusLost()
AbstractTool
false
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 AbstractTool
true
if the event was handledAbstractTool.handleFocusLost()
protected boolean handleInvalidInput()
handleInvalidInput
in class AbstractTool
true
protected boolean handleKeyDown(KeyEvent e)
KeyHandler
, via
KeyHandler.keyPressed(KeyEvent)
.
handleKeyDown
in class AbstractTool
e
- 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 AbstractTool
viewer
- 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_CONNECTIONS
public void setViewer(EditPartViewer viewer)
AbstractTool
setViewer
in interface Tool
setViewer
in class AbstractTool
viewer
- the viewerTool.setViewer(org.eclipse.gef.EditPartViewer)
|
Eclipse GEF 3.8.0.201206112118 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |