sk.uniba.euromath.editor.textEditor.tools
Class TextTool

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
                  extended by sk.uniba.euromath.editor.textEditor.tools.TextTool
All Implemented Interfaces:
org.eclipse.gef.RequestConstants, org.eclipse.gef.Tool

public class TextTool
extends org.eclipse.gef.tools.SelectionTool

TextTool - Is responsible for editing of text. Switching between tools is performed by

  1. double-click in text. That switches StructureTool to TextTool(S -> T).
  2. Ctrl+T, that swithes these tools each other(T <-> S)
  3. Menu, [by icons].

More deep in TextTool

  1. Supports caret, caret is always activated. Click of mouse in text retargets caret. By clicking not directly on text, but in position where is short line of text, caret is shown at the end of line. If there is not a line, nothing happens. Caret is moved also by keyboard(arrows,HOME,END,ctrl-a, ...).
  2. Selections.
    1. Selections of text
      • by holding shift or ctrl or ... and moving caret
      • by draging of mouse [+ keys]
    2. Selections of structure - means elements, nodes
      • alt + scroll = deep by scrolling wheel is selected the bottom most element in doc containing caret or (parent or child towards caret) of selected element
      • alt + right or left click = width, selects brother of selected element
      • alt + middleButtonClick = direct select, selectes the bottom most element in doc containing cursor
  3. Undo, Redo, clipboard. Standard.
  4. Editing.
    1. Text
      • Insert - direct keypressing in editor or by InsetBox
      • delete - del, backSpace + [selection] or Menu
    2. Structure
      • Insert,Modify - through Menu
      • delete - del, backSpace + [selection] or Menu

Author:
Martin Kollar on 3.5.2005

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.gef.tools.AbstractTool
org.eclipse.gef.tools.AbstractTool.Input
 
Field Summary
 
Fields inherited from class org.eclipse.gef.tools.SelectionTool
MAX_FLAG, MAX_STATE, STATE_TRAVERSE_HANDLE
 
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
TextTool(CaretManager cManager)
          Constructor.
TextTool(CaretManager cManager, ITextPieceKeeper keeper, int offset)
          Constructor.
 
Method Summary
protected  boolean acceptableArrow(KeyEvent e)
          Tests if key of event is navigation key.
static boolean acceptableText(char character)
          Check if character can be written to text
 void activate()
          Activates tool.
protected  DOMIntervalSet computeGlobalSelection()
          Computes actual selection made by keyboard(arrows) to set to viewer.
 void deactivate()
          Deactivates Tool and Caret
protected  void executeCommand(org.eclipse.gef.commands.Command command)
           
protected  String getCommandName()
           
protected  String getDebugName()
           
protected  org.eclipse.gef.commands.Command getDeleteCommand(KeyEvent e)
          Performs text delete, including caret movement.
protected  org.eclipse.gef.commands.Command getDeleteSelectionCommand()
           
protected  org.eclipse.gef.commands.Command getTextInputCommand(KeyEvent e)
          Performs text input, including caret movement.
protected  XMLAccess getXMLAccess()
          Getter.
protected  IXMLGraphicalViewer getXMLGraphicalViewer()
          Getter.
protected  boolean handleButtonDown(int button)
          Process only left mouse clicks (as selection or anything).
protected  boolean handleKeyDown(KeyEvent e)
          Handles key downs to move caret and make key controlled selections.
protected  boolean handleKeyUp(KeyEvent e)
           
protected  boolean isDeletingAction(KeyEvent e)
          Tests if key of event is deleting key.
protected  boolean isSelectionEmpty()
           
static boolean isWhiteSpace(char c)
          Tests if character is whitespace.
protected  void performArrowMove(KeyEvent e)
           
 void reinit(Map<String,List<ITextPieceContainer>> map)
          Method to corect state of this tool after transformation of document.
 void setDragTracker(org.eclipse.gef.DragTracker newDragTracker)
           
protected  void updateLocalSelection()
          Updates local selection object corresponding to keyboard drag.
protected  boolean updateTargetUnderMouse()
          Simpler implementation than super, as target is directly taken editpart at mouse cursor location.
 
Methods inherited from class org.eclipse.gef.tools.SelectionTool
createHoverRequest, createTargetRequest, eraseHoverFeedback, getDebugNameForState, getDragTracker, getTargetHoverRequest, getTargetingConditional, handleButtonUp, handleCommandStackChanged, handleFocusLost, handleHover, handleHoverStop, handleMove, handleNativeDragFinished, handleNativeDragStarted, handleViewerExited, keyDown, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, mouseWheelScrolled, refreshCursor, showHoverFeedback, updateHoverRequest, updateTargetRequest
 
Methods inherited from class org.eclipse.gef.tools.TargetingTool
doAutoexpose, eraseTargetFeedback, getCommand, getExclusionSet, getTargetEditPart, getTargetRequest, handleAutoexpose, handleEnteredEditPart, handleExitingEditPart, handleInvalidInput, handleLeavingEditPart, isShowingTargetFeedback, isTargetLocked, lockTargetEditPart, resetFlags, setAutoexposeHelper, setTargetEditPart, setTargetRequest, showTargetFeedback, unlockTargetEditPart, updateAutoexposeHelper
 
Methods inherited from class org.eclipse.gef.tools.AbstractTool
addFeedback, applyProperty, calculateCursor, commitDrag, createOperationSet, debug, 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, 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
 

Constructor Detail

TextTool

public TextTool(CaretManager cManager)
Constructor.

Parameters:
source - focused EditPart
caretOffset - caret offset from start of selectionStartPart EditPart
cManager - CaretManager

TextTool

public TextTool(CaretManager cManager,
                ITextPieceKeeper keeper,
                int offset)
Constructor.

Parameters:
source - focused EditPart
caretOffset - caret offset from start of selectionStartPart EditPart
cManager - CaretManager
Method Detail

acceptableText

public static boolean acceptableText(char character)
Check if character can be written to text

Parameters:
character - character to check
Returns:
true if character can by written to text, else false

isWhiteSpace

public static boolean isWhiteSpace(char c)
Tests if character is whitespace.

Parameters:
c - character to test
Returns:
true if character is whitespace

activate

public void activate()
Activates tool. Caret is activated or not, depends on.

Specified by:
activate in interface org.eclipse.gef.Tool
Overrides:
activate in class org.eclipse.gef.tools.AbstractTool

deactivate

public void deactivate()
Deactivates Tool and Caret

Specified by:
deactivate in interface org.eclipse.gef.Tool
Overrides:
deactivate in class org.eclipse.gef.tools.SelectionTool

getDebugName

protected String getDebugName()
Overrides:
getDebugName in class org.eclipse.gef.tools.SelectionTool

performArrowMove

protected void performArrowMove(KeyEvent e)
Parameters:
e - Left,Right,Up,Down,Home,End KeyEvent

getTextInputCommand

protected org.eclipse.gef.commands.Command getTextInputCommand(KeyEvent e)
Performs text input, including caret movement.

Parameters:
e - key event holding character to input

getDeleteSelectionCommand

protected org.eclipse.gef.commands.Command getDeleteSelectionCommand()

getDeleteCommand

protected org.eclipse.gef.commands.Command getDeleteCommand(KeyEvent e)
Performs text delete, including caret movement.

Parameters:
e - key event holding delete order

acceptableArrow

protected boolean acceptableArrow(KeyEvent e)
Tests if key of event is navigation key.

Parameters:
e - event to test
Returns:
true if is navigation key

isDeletingAction

protected boolean isDeletingAction(KeyEvent e)
Tests if key of event is deleting key.

Parameters:
e - event to test
Returns:
true if is deleting key

handleButtonDown

protected boolean handleButtonDown(int button)
Process only left mouse clicks (as selection or anything).

Overrides:
handleButtonDown in class org.eclipse.gef.tools.SelectionTool

setDragTracker

public void setDragTracker(org.eclipse.gef.DragTracker newDragTracker)
Overrides:
setDragTracker in class org.eclipse.gef.tools.SelectionTool

handleKeyDown

protected boolean handleKeyDown(KeyEvent e)
Handles key downs to move caret and make key controlled selections.

Overrides:
handleKeyDown in class org.eclipse.gef.tools.SelectionTool

handleKeyUp

protected boolean handleKeyUp(KeyEvent e)
Overrides:
handleKeyUp in class org.eclipse.gef.tools.SelectionTool

updateLocalSelection

protected void updateLocalSelection()
Updates local selection object corresponding to keyboard drag. Selection object is made current for state of this tool after method execution.


computeGlobalSelection

protected DOMIntervalSet computeGlobalSelection()
Computes actual selection made by keyboard(arrows) to set to viewer. Pressed ctrl and shift keys influence how selection is computed. The user needs 2 styles of selecting: simple interval (shift pressed), simple interval with caret movement by words(shift + ctrl pressed).

Returns:
actual selection of viewer

reinit

public void reinit(Map<String,List<ITextPieceContainer>> map)
Method to corect state of this tool after transformation of document. That means to set correctly caret exactly to the position in document where was before transformation.

Parameters:
map -

getXMLGraphicalViewer

protected IXMLGraphicalViewer getXMLGraphicalViewer()
Getter.

Returns:
IXMLGraphicalViewer

getXMLAccess

protected XMLAccess getXMLAccess()
Getter.

Returns:
xmlAccess instance

getCommandName

protected String getCommandName()
Overrides:
getCommandName in class org.eclipse.gef.tools.SelectionTool

updateTargetUnderMouse

protected boolean updateTargetUnderMouse()
Simpler implementation than super, as target is directly taken editpart at mouse cursor location.

Overrides:
updateTargetUnderMouse in class org.eclipse.gef.tools.TargetingTool

isSelectionEmpty

protected boolean isSelectionEmpty()

executeCommand

protected void executeCommand(org.eclipse.gef.commands.Command command)
Overrides:
executeCommand in class org.eclipse.gef.tools.AbstractTool


Copyright © 2003-2006 null. All Rights Reserved.