JHotDraw 7.1

org.jhotdraw.draw
Class TextTool

java.lang.Object
  extended by org.jhotdraw.beans.AbstractBean
      extended by org.jhotdraw.draw.AbstractTool
          extended by org.jhotdraw.draw.CreationTool
              extended by org.jhotdraw.draw.TextTool
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, Tool

public class TextTool
extends CreationTool
implements java.awt.event.ActionListener

A tool to create new or edit existing figures that implement the TextHolderFigure interface, such as TextFigure. The figure to be created is specified by a prototype.

To create a figure using the TextTool, the user does the following mouse gestures on a DrawingView:

  1. Press the mouse button over an area on the DrawingView on which there isn't a text figure present. This defines the location of the Figure.
When the user has performed this mouse gesture, the TextTool overlays a text field over the drawing where the user can enter the text for the Figure.

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

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

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

XXX - Maybe this class should be split up into a CreateTextTool and a EditTextTool.

Version:
2.2 2007-11-30 Added variable isUsedForCreation.
2.1 2007-08-22 Added support for property 'toolDoneAfterCreation'.
2.0 2006-01-14 Changed to support double precison coordinates.
1.0 2003-12-01 Derived from JHotDraw 5.4b1.
Author:
Werner Randelshofer
See Also:
TextHolderFigure, FloatingTextField, Serialized Form

Field Summary
 
Fields inherited from class org.jhotdraw.draw.CreationTool
createdFigure
 
Fields inherited from class org.jhotdraw.draw.AbstractTool
anchor, editor, isWorking, listenerList
 
Fields inherited from class org.jhotdraw.beans.AbstractBean
propertySupport
 
Constructor Summary
TextTool(TextHolderFigure prototype)
          Creates a new instance.
TextTool(TextHolderFigure prototype, java.util.Map attributes)
          Creates a new instance.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
           
protected  void beginEdit(TextHolderFigure textHolder)
           
protected  void creationFinished(Figure createdFigure)
          This method allows subclasses to do perform additonal user interactions after the new figure has been created.
 void deactivate(DrawingEditor editor)
          Deactivates the tool.
protected  void endEdit()
           
 boolean isForCreationOnly()
          Returns true, if this tool can be only be used for creation of TextHolderFigures and not for editing existing ones.
 void mouseDragged(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
          If the pressed figure is a TextHolderFigure it can be edited otherwise a new text figure is created.
 void mouseReleased(java.awt.event.MouseEvent evt)
           
 void setForCreationOnly(boolean newValue)
          By default this tool is used to create a new TextHolderFigure.
 
Methods inherited from class org.jhotdraw.draw.CreationTool
activate, createFigure, getAddedFigure, getCreatedFigure, getPrototype, isToolDoneAfterCreation, setToolDoneAfterCreation
 
Methods inherited from class org.jhotdraw.draw.AbstractTool
addToolListener, addUndoableEditListener, constrainPoint, constrainPoint, createActionMap, createInputMap, draw, editCopy, editCut, editDelete, editDuplicate, editPaste, fireAreaInvalidated, fireAreaInvalidated, fireToolDone, fireToolStarted, getActionMap, getDrawing, getEditor, getInputMap, getView, isActive, keyPressed, keyReleased, keyTyped, mouseClicked, mouseEntered, mouseExited, mouseMoved, removeToolListener, removeUndoableEditListener, setActionMap, setInputMap, updateCursor, viewToDrawing
 
Methods inherited from class org.jhotdraw.beans.AbstractBean
addPropertyChangeListener, addPropertyChangeListener, clone, firePropertyChange, firePropertyChange, firePropertyChange, removePropertyChangeListener, removePropertyChangeListener
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextTool

public TextTool(TextHolderFigure prototype)
Creates a new instance.


TextTool

public TextTool(TextHolderFigure prototype,
                java.util.Map attributes)
Creates a new instance.

Method Detail

deactivate

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
Overrides:
deactivate in class CreationTool

setForCreationOnly

public void setForCreationOnly(boolean newValue)
By default this tool is used to create a new TextHolderFigure. If this property is set to false, the tool is used to create a new TextHolderFigure or to edit an existing TextHolderFigure.


isForCreationOnly

public boolean isForCreationOnly()
Returns true, if this tool can be only be used for creation of TextHolderFigures and not for editing existing ones.


mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
If the pressed figure is a TextHolderFigure it can be edited otherwise a new text figure is created.

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

mouseDragged

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

beginEdit

protected void beginEdit(TextHolderFigure textHolder)

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent evt)
Specified by:
mouseReleased in interface java.awt.event.MouseListener
Overrides:
mouseReleased in class CreationTool

endEdit

protected void endEdit()

actionPerformed

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

creationFinished

protected void creationFinished(Figure createdFigure)
This method allows subclasses to do perform additonal user interactions after the new figure has been created. The implementation of this class just invokes fireToolDone.

Overrides:
creationFinished in class CreationTool

Copyright 1996-2007 (c) JHotDraw.org.
Some rights reserved.