Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Eclipse GEF
3.3

org.eclipse.gef.tools
Class SelectionTool

java.lang.Object
  extended by

org.eclipse.gef.util.FlagSupport
      extended by

org.eclipse.gef.tools.AbstractTool
          extended by

org.eclipse.gef.tools.TargetingTool
              extended by
org.eclipse.gef.tools.SelectionTool
All Implemented Interfaces:
RequestConstants, Tool
Direct Known Subclasses:
PanningSelectionTool

public class SelectionTool
extends TargetingTool

Tool to select and manipulate figures. A selection tool is in one of three states, e.g., background selection, figure selection, handle manipulation. The different states are handled by different child tools.


Nested Class Summary
 
Nested classes inherited from class org.eclipse.gef.tools. AbstractTool
AbstractTool.Input
 
Field Summary
protected static int MAX_FLAG
          Max flag
protected static int MAX_STATE
          Max state
protected static int STATE_TRAVERSE_HANDLE
          Traverse handle state
 
Fields inherited from class org.eclipse.gef.tools. AbstractTool
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
SelectionTool ()
          Default constructor.
 
Method Summary
protected  void createHoverRequest ()
          Creates the hover request (a LocationRequest) and sets its type to RequestConstants.REQ_SELECTION_HOVER.
protected   Request createTargetRequest ()
          Creates a SelectionRequest for the target request.
 void deactivate ()
          Deactivates the tool.
protected  void eraseHoverFeedback ()
          Erases the hover feedback by calling EditPart.eraseTargetFeedback(Request).
protected  java.lang.String getCommandName ()
          Returns the identifier of the command that is being sought.
protected  java.lang.String getDebugName ()
          Returns the debug name for this tool.
protected  java.lang.String getDebugNameForState (int state)
          Returns a String representation of the given state for debug purposes.
protected   DragTracker getDragTracker ()
          Returns the current drag tracker.
protected   Request getTargetHoverRequest ()
          Returns the target hover request.
protected   EditPartViewer.Conditional getTargetingConditional ()
          Returns a new Conditional that evaluates to true if the queried edit part's EditPart.isSelectable() method returns true.
protected  boolean handleButtonDown (int button)
          If there is a Handle under the mouse, this method sets the drag tracker returned from the handle.
protected  boolean handleButtonUp (int button)
          Resets this tool when the last button is released.
protected  boolean handleCommandStackChanged ()
          Called when the command stack has changed, for instance, when a delete or undo command has been executed.
protected  boolean handleFocusLost ()
          Sets the drag tracker to null and goes into the initial state when focus is lost.
protected  boolean handleHover ()
          Called when the mouse hovers.
protected  boolean handleHoverStop ()
          Called when the mouse hover stops (i.e. the mouse moves or a button is clicked).
protected  boolean handleKeyDown (KeyEvent e)
          Processes key down events.
protected  boolean handleKeyUp (KeyEvent e)
          If in the initial state and the viewer has a KeyHandler, calls KeyHandler.keyReleased(KeyEvent) sending it the given key event.
protected  boolean handleMove ()
          If in the initial state, updates the request and the mouse target and asks to show target feedback.
 boolean handleNativeDragFinished (DragSourceEvent event)
          If there's a drag tracker, calls handleNativeDragFinished() on the drag tracker and then sets the drag tracker to null.
 boolean handleNativeDragStarted (DragSourceEvent event)
          If there's a drag tracker, calls nativeDragStarted() on the drag tracker.
protected  boolean handleViewerExited ()
          If there's a drag tracker, sets it to null and then sets this tool's state to the initial state.
 void keyDown (KeyEvent evt, EditPartViewer viewer)
          Forwards the key down event to the drag tracker, if one exists.
 void keyUp (KeyEvent evt, EditPartViewer viewer)
          Forwards the key up event to the drag tracker, if one exists.
 void mouseDoubleClick (MouseEvent e, EditPartViewer viewer)
          Forwards the mouse double clicked event to the drag tracker, if one exists.
 void mouseDown (MouseEvent e, EditPartViewer viewer)
          Forwards the mouse down event to the drag tracker, if one exists.
 void mouseDrag (MouseEvent e, EditPartViewer viewer)
          Forwards the mouse drag event to the drag tracker, if one exists.
 void mouseHover (MouseEvent me, EditPartViewer viewer)
          Forwards the mouse hover event to the drag tracker, if one exists.
 void mouseMove (MouseEvent me, EditPartViewer viewer)
          Forwards the mouse move event to the drag tracker, if one exists.
 void mouseUp (MouseEvent e, EditPartViewer viewer)
          Forwards the mouse up event to the drag tracker, if one exists.
 void mouseWheelScrolled (Event event, EditPartViewer viewer)
          Delegates the scrolling to the DragTracker (if there is one).
protected  void refreshCursor ()
          If there is a drag tracker, this method does nothing so that the drag tracker can take care of the cursor.
 void setDragTracker ( DragTracker newDragTracker)
          Sets the drag tracker for this SelectionTool.
protected  void showHoverFeedback ()
          Asks the target edit part (if there is one) to show hover feedback via EditPart.showTargetFeedback(Request) with a hover request.
protected  void updateHoverRequest ()
          Updates the location of the hover request.
protected  void updateTargetRequest ()
          Sets the modifiers , type and location of the target request (which is a SelectionRequest) and then calls updateHoverRequest().
 
Methods inherited from class org.eclipse.gef.tools. TargetingTool
doAutoexpose, eraseTargetFeedback, getAutoexposeHelper, getCommand, getExclusionSet, getTargetEditPart, getTargetRequest, handleAutoexpose, handleEnteredEditPart, handleExitingEditPart, handleInvalidInput, handleLeavingEditPart, isShowingTargetFeedback, isTargetLocked, lockTargetEditPart, resetFlags, resetHover, setAutoexposeHelper, setTargetEditPart, setTargetRequest, showTargetFeedback, unlockTargetEditPart, updateAutoexposeHelper, updateTargetUnderMouse
 
Methods inherited from class org.eclipse.gef.tools. AbstractTool
acceptArrowKey, activate, addFeedback, applyProperty, calculateCursor, commitDrag, createOperationSet, debug, executeCommand, executeCurrentCommand, focusGained, focusLost, getCurrentCommand, getCurrentInput, getCurrentViewer, getDefaultCursor, getDisabledCursor, getDomain, getDragMoveDelta, getLocation, getOperationSet, getStartLocation, getState, handleDoubleClick, handleDrag, handleDragInProgress, handleDragStarted, handleFinished, handleFocusGained, handleKeyTraversed, handleViewerEntered, isActive, isHoverActive, isInState, isViewerImportant, keyTraversed, movedPastThreshold, nativeDragFinished, nativeDragStarted, performViewerMouseWheel, placeMouseInViewer, reactivate, releaseToolCapture, removeFeedback, setCurrentCommand, setCursor, setDefaultCursor, setDisabledCursor, setEditDomain, setHoverActive, setProperties, 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
 

Field Detail

MAX_FLAG

protected static final int MAX_FLAG
Max flag

See Also:
Constant Field Values

STATE_TRAVERSE_HANDLE

protected static final int STATE_TRAVERSE_HANDLE
Traverse handle state

See Also:
Constant Field Values

MAX_STATE

protected static final int MAX_STATE
Max state

See Also:
Constant Field Values
Constructor Detail

SelectionTool

public SelectionTool()
Default constructor.

Method Detail

createHoverRequest

protected void createHoverRequest()
Creates the hover request (a LocationRequest) and sets its type to RequestConstants.REQ_SELECTION_HOVER.


createTargetRequest

protected 
Request createTargetRequest()
Creates a SelectionRequest for the target request.

Overrides:
createTargetRequest in class TargetingTool
Returns:
the new target request
See Also:
TargetingTool.createTargetRequest()

deactivate

public void deactivate()
Deactivates the tool. This method is called whenever the user switches to another tool. Use this method to do some clean-up when the tool is switched. Sets the drag tracker to null.

Specified by:
deactivate in interface Tool
Overrides:
deactivate in class TargetingTool
See Also:
Tool.deactivate()

eraseHoverFeedback

protected void eraseHoverFeedback()
Erases the hover feedback by calling EditPart.eraseTargetFeedback(Request).


getCommandName

protected java.lang.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 java.lang.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()

getDragTracker

protected 
DragTracker getDragTracker()
Returns the current drag tracker.

Returns:
the drag tracker

getTargetingConditional

protected 
EditPartViewer.Conditional getTargetingConditional()
Returns a new Conditional that evaluates to true if the queried edit part's EditPart.isSelectable() method returns true.

Overrides:
getTargetingConditional in class TargetingTool
Returns:
the targeting conditional
See Also:
TargetingTool.getTargetingConditional()

getTargetHoverRequest

protected 
Request getTargetHoverRequest()
Returns the target hover request. If null, it will be created via createHoverRequest().

Returns:
the hover request

handleButtonDown

protected boolean handleButtonDown(int button)
If there is a Handle under the mouse, this method sets the drag tracker returned from the handle. If there's an EditPart under the mouse, this method sets the drag tracker returned from the edit part.

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)
Resets this tool when the last button is released.

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

handleCommandStackChanged

protected boolean handleCommandStackChanged()
Description copied from class: AbstractTool
Called when the command stack has changed, for instance, when a delete or undo command has been executed. By default, state is set to STATE_INVALID and handleInvalidInput is called. Subclasses may override this method to change what happens when the command stack changes. Returning true indicates that the change was handled in some way.

Overrides:
handleCommandStackChanged in class AbstractTool
Returns:
true if the change was handled in some way
See Also:
AbstractTool.handleCommandStackChanged()

handleFocusLost

protected boolean handleFocusLost()
Sets the drag tracker to null and goes into the initial state when focus is lost.

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

handleHover

protected boolean handleHover()
Called when the mouse hovers. Calls showHoverFeedback().

Overrides:
handleHover in class AbstractTool
Returns:
true if the hover was handled
See Also:
AbstractTool.handleHover()

handleHoverStop

protected boolean handleHoverStop()
Called when the mouse hover stops (i.e. the mouse moves or a button is clicked). Calls eraseHoverFeedback().

Overrides:
handleHoverStop in class TargetingTool
Returns:
true if the hover stop is processed in some way
See Also:
TargetingTool.handleHoverStop()

handleKeyDown

protected boolean handleKeyDown(KeyEvent e)
Processes key down events. Specifically, arrow keys for moving edit parts, the ESC key for aborting a drag, the period '.' key for traversing handles, and the ENTER key for committing a drag. If none of these keys were pressed and the current viewer has a KeyHandler, it calls 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)

handleKeyUp

protected boolean handleKeyUp(KeyEvent e)
If in the initial state and the viewer has a KeyHandler, calls KeyHandler.keyReleased(KeyEvent) sending it the given key event.

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

handleMove

protected boolean handleMove()
If in the initial state, updates the request and the mouse target and asks to show target feedback. If in the traverse handle state, finds the next handle, moves the mouse cursor to that handle, and gets a drag tracker from the handle.

Overrides:
handleMove in class AbstractTool
Returns:
true if the mouse move was handled
See Also:
AbstractTool.handleMove()

handleNativeDragFinished

public boolean handleNativeDragFinished(DragSourceEvent event)
If there's a drag tracker, calls handleNativeDragFinished() on the drag tracker and then sets the drag tracker to null.

Overrides:
handleNativeDragFinished in class AbstractTool
Parameters:
event - the drag event
Returns:
true if the native drag finished was handled
See Also:
AbstractTool.handleNativeDragFinished(DragSourceEvent)

handleNativeDragStarted

public boolean handleNativeDragStarted(DragSourceEvent event)
If there's a drag tracker, calls nativeDragStarted() on the drag tracker.

Overrides:
handleNativeDragStarted in class AbstractTool
Parameters:
event - the drag event
Returns:
true if the native drag start was handled
See Also:
AbstractTool.handleNativeDragStarted(DragSourceEvent)

handleViewerExited

protected boolean handleViewerExited()
If there's a drag tracker, sets it to null and then sets this tool's state to the initial state.

Overrides:
handleViewerExited in class TargetingTool
See Also:
AbstractTool.handleViewerExited()

keyDown

public void keyDown(KeyEvent evt,
                    
EditPartViewer viewer)
Forwards the key down event to the drag tracker, if one exists.

Specified by:
keyDown in interface Tool
Overrides:
keyDown in class AbstractTool
Parameters:
evt - the key event
viewer - the originating viewer
See Also:
Tool.keyDown(KeyEvent, org.eclipse.gef.EditPartViewer)

keyUp

public void keyUp(KeyEvent evt,
                  
EditPartViewer viewer)
Forwards the key up event to the drag tracker, if one exists.

Specified by:
keyUp in interface Tool
Overrides:
keyUp in class AbstractTool
Parameters:
evt - the key event
viewer - the originating viewer
See Also:
Tool.keyUp(KeyEvent, org.eclipse.gef.EditPartViewer)

mouseDown

public void mouseDown(MouseEvent e,
                      
EditPartViewer viewer)
Forwards the mouse down event to the drag tracker, if one exists.

Specified by:
mouseDown in interface Tool
Overrides:
mouseDown in class AbstractTool
Parameters:
e - the mouse event
viewer - the originating viewer
See Also:
Tool.mouseDown(MouseEvent, org.eclipse.gef.EditPartViewer)

mouseDoubleClick

public void mouseDoubleClick(MouseEvent e,
                             
EditPartViewer viewer)
Forwards the mouse double clicked event to the drag tracker, if one exists.

Specified by:
mouseDoubleClick in interface Tool
Overrides:
mouseDoubleClick in class AbstractTool
Parameters:
e - the mouse event
viewer - the originating viewer
See Also:
Tool.mouseDoubleClick(MouseEvent, org.eclipse.gef.EditPartViewer)

mouseDrag

public void mouseDrag(MouseEvent e,
                      
EditPartViewer viewer)
Forwards the mouse drag event to the drag tracker, if one exists.

Specified by:
mouseDrag in interface Tool
Overrides:
mouseDrag in class AbstractTool
Parameters:
e - the mouse event
viewer - the originating viewer
See Also:
Tool.mouseDrag(MouseEvent, org.eclipse.gef.EditPartViewer)

mouseHover

public void mouseHover(MouseEvent me,
                       
EditPartViewer viewer)
Forwards the mouse hover event to the drag tracker, if one exists.

Specified by:
mouseHover in interface Tool
Overrides:
mouseHover in class AbstractTool
Parameters:
me - the mouse event
viewer - the originating viewer
See Also:
Tool.mouseHover(MouseEvent, org.eclipse.gef.EditPartViewer)

mouseMove

public void mouseMove(MouseEvent me,
                      
EditPartViewer viewer)
Forwards the mouse move event to the drag tracker, if one exists.

Specified by:
mouseMove in interface Tool
Overrides:
mouseMove in class AbstractTool
Parameters:
me - the mouse event
viewer - the originating viewer
See Also:
Tool.mouseMove(MouseEvent, org.eclipse.gef.EditPartViewer)

mouseUp

public void mouseUp(MouseEvent e,
                    
EditPartViewer viewer)
Forwards the mouse up event to the drag tracker, if one exists.

Specified by:
mouseUp in interface Tool
Overrides:
mouseUp in class AbstractTool
Parameters:
e - the mouse event
viewer - the originating viewer
See Also:
Tool.mouseUp(MouseEvent, org.eclipse.gef.EditPartViewer)

mouseWheelScrolled

public void mouseWheelScrolled(Event event,
                               
EditPartViewer viewer)
Delegates the scrolling to the DragTracker (if there is one). If not, invokes the super method.

Specified by:
mouseWheelScrolled in interface Tool
Overrides:
mouseWheelScrolled in class AbstractTool
Parameters:
event - the SWT scroll event
viewer - the originating viewer
See Also:
org.eclipse.gef.Tool#mouseWheelScrolled(org.eclipse.swt.widgets.Event, org.eclipse.gef.EditPartViewer)

refreshCursor

protected void refreshCursor()
If there is a drag tracker, this method does nothing so that the drag tracker can take care of the cursor. Otherwise, calls super.

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

setDragTracker

public void setDragTracker(
DragTracker newDragTracker)
Sets the drag tracker for this SelectionTool. If the current drag tracker is not null, this method deactivates it. If the new drag tracker is not null, this method will activate it and set the EditDomain and EditPartViewer.

Parameters:
newDragTracker - the new drag tracker

showHoverFeedback

protected void showHoverFeedback()
Asks the target edit part (if there is one) to show hover feedback via EditPart.showTargetFeedback(Request) with a hover request.


updateHoverRequest

protected void updateHoverRequest()
Updates the location of the hover request.


updateTargetRequest

protected void updateTargetRequest()
Sets the modifiers , type and location of the target request (which is a SelectionRequest) and then calls updateHoverRequest().

Overrides:
updateTargetRequest in class TargetingTool
See Also:
TargetingTool.updateTargetRequest()

getDebugNameForState

protected java.lang.String getDebugNameForState(int state)
Description copied from class: AbstractTool
Returns a String representation of the given state for debug purposes.

Overrides:
getDebugNameForState in class AbstractTool
Parameters:
state - the state
Returns:
the string for the given state
See Also:
AbstractTool.getDebugNameForState(int)

Eclipse GEF
3.3

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

 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire