JHotDraw 7.4.1

Class TextCreationTool

  extended by org.jhotdraw.beans.AbstractBean
      extended by org.jhotdraw.draw.tool.AbstractTool
          extended by org.jhotdraw.draw.tool.CreationTool
              extended by org.jhotdraw.draw.tool.TextCreationTool
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 TextCreationTool
extends CreationTool
implements java.awt.event.ActionListener

A tool to create figures which implement the TextHolderFigure interface, such as TextFigure. The figure to be created is specified by a prototype.

To create a figure using this tool, 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 TextCreationTool overlays a text field 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.

The text creation tools create new figures by cloning a prototype TextHolderFigure object.
Prototype: TextHolderFigure; Client: TextCreationTool, TextAreaCreationTool.

$Id: TextCreationTool.java 604 2010-01-09 12:00:29Z rawcoder $
Werner Randelshofer
See Also:
Serialized Form

Field Summary
Fields inherited from class org.jhotdraw.draw.tool.CreationTool
createdFigure, minimalSize, minimalSizeTreshold, presentationName, prototype, prototypeAttributes
Fields inherited from class org.jhotdraw.draw.tool.AbstractTool
anchor, editor, isWorking, listenerList
Fields inherited from class org.jhotdraw.beans.AbstractBean
Constructor Summary
TextCreationTool(TextHolderFigure prototype)
          Creates a new instance.
TextCreationTool(TextHolderFigure prototype, java.util.Map<AttributeKey,java.lang.Object> 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 isEditing()
 void keyReleased(java.awt.event.KeyEvent evt)
 void mouseDragged(java.awt.event.MouseEvent e)
 void mousePressed(java.awt.event.MouseEvent e)
          Creates a new figure at the location where the mouse was pressed.
 void mouseReleased(java.awt.event.MouseEvent evt)
 void updateCursor(DrawingView view, java.awt.Point p)
Methods inherited from class org.jhotdraw.draw.tool.CreationTool
activate, createFigure, getAddedFigure, getCreatedFigure, getPrototype, isToolDoneAfterCreation, setToolDoneAfterCreation
Methods inherited from class org.jhotdraw.draw.tool.AbstractTool
addToolListener, addUndoableEditListener, constrainPoint, constrainPoint, createActionMap, createInputMap, draw, editCopy, editCut, editDelete, editDuplicate, editPaste, fireAreaInvalidated, fireAreaInvalidated, fireBoundsInvalidated, fireToolDone, fireToolStarted, getActionMap, getDrawing, getEditor, getInputMap, getToolTipText, getView, isActive, keyPressed, keyTyped, maybeFireBoundsInvalidated, mouseClicked, mouseEntered, mouseExited, mouseMoved, removeToolListener, removeUndoableEditListener, setActionMap, setInputMap, supportsHandleInteraction, 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

Constructor Detail


public TextCreationTool(TextHolderFigure prototype)
Creates a new instance.


public TextCreationTool(TextHolderFigure prototype,
                        java.util.Map<AttributeKey,java.lang.Object> attributes)
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 CreationTool


public void mousePressed(java.awt.event.MouseEvent e)
Creates a new figure at the location where the mouse was pressed.

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


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


protected void beginEdit(TextHolderFigure textHolder)


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


protected void endEdit()


public void keyReleased(java.awt.event.KeyEvent evt)
Specified by:
keyReleased in interface java.awt.event.KeyListener
keyReleased in class AbstractTool


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


protected void creationFinished(Figure createdFigure)
Description copied from class: CreationTool
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.

creationFinished in class CreationTool


public boolean isEditing()


public void updateCursor(DrawingView view,
                         java.awt.Point p)
updateCursor in class CreationTool

Copyright 1996-2010 (c) by the authors and contributors of the JHotDraw project.
Some rights reserved.