JHotDraw 7.4.1

org.jhotdraw.draw.tool
Class TextAreaCreationTool

java.lang.Object
  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.TextAreaCreationTool
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 TextAreaCreationTool
extends CreationTool
implements java.awt.event.ActionListener

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

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

  1. Press the mouse button over the DrawingView. This defines the start point of the Figure bounds.
  2. Drag the mouse while keeping the mouse button pressed, and then release the mouse button. This defines the end point of the Figure bounds.
When the user has performed these mouse gesture, the TextAreaCreationTool overlays a text area over the drawing where the user can enter the text for the Figure.

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

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

The TextAreaCreationTool 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.

XXX - Maybe this class should be split up into a CreateTextAreaTool and a EditTextAreaTool.


Design Patterns

Framework
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.

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


Version:
$Id: TextAreaCreationTool.java 604 2010-01-09 12:00:29Z rawcoder $
Author:
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
propertySupport
 
Constructor Summary
TextAreaCreationTool(TextHolderFigure prototype)
          Creates a new instance.
TextAreaCreationTool(TextHolderFigure prototype, java.util.Map<AttributeKey,java.lang.Object> attributes)
           
 
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.
 void draw(java.awt.Graphics2D g)
          Draws the tool.
protected  void endEdit()
           
 void mousePressed(java.awt.event.MouseEvent e)
          Creates a new figure at the mouse location.
 void setRubberbandColor(java.awt.Color c)
          Sets the rubberband color for the tool.
 
Methods inherited from class org.jhotdraw.draw.tool.CreationTool
activate, createFigure, getAddedFigure, getCreatedFigure, getPrototype, isToolDoneAfterCreation, mouseDragged, mouseReleased, setToolDoneAfterCreation, updateCursor
 
Methods inherited from class org.jhotdraw.draw.tool.AbstractTool
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, 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

TextAreaCreationTool

public TextAreaCreationTool(TextHolderFigure prototype)
Creates a new instance.


TextAreaCreationTool

public TextAreaCreationTool(TextHolderFigure prototype,
                            java.util.Map<AttributeKey,java.lang.Object> attributes)
Method Detail

setRubberbandColor

public void setRubberbandColor(java.awt.Color c)
Sets the rubberband color for the tool. Setting this to null, disables the rubberband.

Parameters:
c - Rubberband color or null.

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

mousePressed

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

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

draw

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

Specified by:
draw in interface Tool
Overrides:
draw in class AbstractTool

beginEdit

protected void beginEdit(TextHolderFigure textHolder)

endEdit

protected void endEdit()

actionPerformed

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

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