Class TextAreaEditingTool

  extended by org.jhotdraw.beans.AbstractBean
      extended by org.jhotdraw.draw.tool.AbstractTool
          extended by org.jhotdraw.draw.tool.TextAreaEditingTool
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener,, java.lang.Cloneable, java.util.EventListener, Tool

public class TextAreaEditingTool
extends AbstractTool
implements java.awt.event.ActionListener

A tool to edit existing figures that implement the TextHolderFigure interface, such as TextAreaFigure.

To edit an existing text figure using the TextAreaEditingTool, the user does the following mouse gesture on a DrawingView:

  1. Press the mouse button over a Figure on the DrawingView.

The TextAreaEditingTool then uses Figure.findFigureInside to find a Figure that implements the TextHolderFigure interface and that is editable. Then it overlays a text area over the drawing where the user can enter the text for the Figure.

Design Patterns

The text creation and editing tools and the TextHolderFigure interface define together the contracts of a smaller framework inside of the JHotDraw framework for structured drawing editors.
Contract: TextHolderFigure, TextCreationTool, TextAreaCreationTool, TextEditingTool, TextAreaEditingTool, FloatingTextField, FloatingTextArea.

$Id: 604 2010-01-09 12:00:29Z rawcoder $
Werner Randelshofer
See Also:
TextHolderFigure, FloatingTextArea, Serialized Form

Field Summary
private  FloatingTextArea textArea
private  TextHolderFigure typingTarget
Fields inherited from class org.jhotdraw.draw.tool.AbstractTool
anchor, editor, isWorking, listenerList
Fields inherited from class org.jhotdraw.beans.AbstractBean
Constructor Summary
TextAreaEditingTool(TextHolderFigure typingTarget)
          Creates a new instance.
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
protected  void beginEdit(TextHolderFigure textHolder)
 void deactivate(DrawingEditor editor)
          Deactivates the tool.
 void draw(java.awt.Graphics2D g)
          Draws the tool.
protected  void endEdit()
private  java.awt.geom.Rectangle2D.Double getFieldBounds(TextHolderFigure figure)
 void mouseDragged(java.awt.event.MouseEvent e)
 void mousePressed(java.awt.event.MouseEvent e)
          Creates a new figure at the mouse location.
Methods inherited from class org.jhotdraw.draw.tool.AbstractTool
activate, addToolListener, addUndoableEditListener, constrainPoint, constrainPoint, createActionMap, createInputMap, editCopy, editCut, editDelete, editDuplicate, editPaste, fireAreaInvalidated, fireAreaInvalidated, fireBoundsInvalidated, fireToolDone, fireToolStarted, getActionMap, getDrawing, getEditor, getInputMap, getToolTipText, getView, isActive, keyPressed, keyReleased, keyTyped, maybeFireBoundsInvalidated, mouseClicked, mouseEntered, mouseExited, mouseMoved, mouseReleased, removeToolListener, removeUndoableEditListener, setActionMap, setInputMap, supportsHandleInteraction, updateCursor, viewToDrawing
Methods inherited from class org.jhotdraw.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, clone, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


private FloatingTextArea textArea


private TextHolderFigure typingTarget
Constructor Detail


public TextAreaEditingTool(TextHolderFigure typingTarget)
Creates a new instance.

Method Detail


public void deactivate(DrawingEditor editor)
Description copied from interface: Tool
Deactivates the tool. This method is called whenever the user switches to another tool.

Specified by:
deactivate in interface Tool
deactivate in class AbstractTool


public void mousePressed(java.awt.event.MouseEvent e)
Creates a new figure at the mouse location. If editing is in progress, this finishes editing.

Specified by:
mousePressed in interface java.awt.event.MouseListener
mousePressed in class AbstractTool


public void draw(java.awt.Graphics2D g)
Description copied from interface: Tool
Draws the tool.

Specified by:
draw in interface Tool
draw in class AbstractTool


protected void beginEdit(TextHolderFigure textHolder)


private java.awt.geom.Rectangle2D.Double getFieldBounds(TextHolderFigure figure)


protected void endEdit()


public void actionPerformed(java.awt.event.ActionEvent event)
Specified by:
actionPerformed in interface java.awt.event.ActionListener


public void mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener