org.tigris.gef.base
Class ModeCreateFigPoly

java.lang.Object
  extended by org.tigris.gef.base.ModeImpl
      extended by org.tigris.gef.base.FigModifyingModeImpl
          extended by org.tigris.gef.base.ModeCreate
              extended by org.tigris.gef.base.ModeCreateFigPoly
All Implemented Interfaces:
java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable, java.util.EventListener, FigModifyingMode, Mode
Direct Known Subclasses:
ModeCreateFigSpline

public class ModeCreateFigPoly
extends ModeCreate

A Mode to interpert user input while creating a FigPoly. All of the actual event handling is inherited from ModeCreate. This class just implements the differences needed to make it specific to polygons.

See Also:
Serialized Form

Field Summary
protected  Handle _handle
           
protected  int _lastX
           
protected  int _lastY
           
protected  int _npoints
          The number of points added so far.
protected  int _startX
           
protected  int _startY
           
 
Fields inherited from class org.tigris.gef.base.ModeCreate
_defaultHeight, _defaultWidth, _newItem, anchorX, anchorY
 
Fields inherited from class org.tigris.gef.base.FigModifyingModeImpl
editor
 
Fields inherited from class org.tigris.gef.base.ModeImpl
_args
 
Constructor Summary
ModeCreateFigPoly()
           
 
Method Summary
 Fig createNewItem(java.awt.event.MouseEvent me, int snapX, int snapY)
          Create a new FigRect instance based on the given mouse down event and the state of the parent Editor.
 java.lang.String instructions()
          Reply a string of instructions that should be shown in the statusbar when this mode starts.
 void mouseDragged(java.awt.event.MouseEvent me)
          On mouse drag, resize the new item as the user moves the mouse.
 void mouseMoved(java.awt.event.MouseEvent me)
           
 void mousePressed(java.awt.event.MouseEvent me)
          On mouse down, make a new Fig in memory.
 void mouseReleased(java.awt.event.MouseEvent me)
          On mouse up, officially add the new item to the parent Editor and select it.
protected  boolean nearLast(int x, int y)
          Internal function to see if the user clicked twice on the same spot.
 
Methods inherited from class org.tigris.gef.base.ModeCreate
createFig, creationDrag, getInitialCursor, keyPressed, paint
 
Methods inherited from class org.tigris.gef.base.FigModifyingModeImpl
done, getEditor, isFigEnclosedIn, print, setCursor, setEditor
 
Methods inherited from class org.tigris.gef.base.ModeImpl
canExit, getArg, getArgs, init, keyReleased, keyTyped, leave, mouseClicked, mouseEntered, mouseExited, setArg, setArgs, start
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.tigris.gef.base.Mode
canExit, getArg, getArgs, init, setArg, setArgs, start
 

Field Detail

_npoints

protected int _npoints
The number of points added so far.


_lastX

protected int _lastX

_lastY

protected int _lastY

_startX

protected int _startX

_startY

protected int _startY

_handle

protected Handle _handle
Constructor Detail

ModeCreateFigPoly

public ModeCreateFigPoly()
Method Detail

instructions

public java.lang.String instructions()
Description copied from class: FigModifyingModeImpl
Reply a string of instructions that should be shown in the statusbar when this mode starts.

Specified by:
instructions in interface FigModifyingMode
Overrides:
instructions in class FigModifyingModeImpl

createNewItem

public Fig createNewItem(java.awt.event.MouseEvent me,
                         int snapX,
                         int snapY)
Create a new FigRect instance based on the given mouse down event and the state of the parent Editor.

Specified by:
createNewItem in class ModeCreate

mousePressed

public void mousePressed(java.awt.event.MouseEvent me)
Description copied from class: ModeCreate
On mouse down, make a new Fig in memory.

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

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent me)
Description copied from class: ModeCreate
On mouse up, officially add the new item to the parent Editor and select it. Then exit this mode.

Specified by:
mouseReleased in interface java.awt.event.MouseListener
Overrides:
mouseReleased in class ModeCreate

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent me)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener
Overrides:
mouseMoved in class ModeImpl

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent me)
Description copied from class: ModeCreate
On mouse drag, resize the new item as the user moves the mouse. Maybe the Fig createDrag() method should be removed and I should call dragHandle(). That would elimiate one method from each oif several classes, but dragging during creation is not really the same thing as dragging after creation....

Note: _newItem has not been added to any Layer yet. So you cannot use _newItem.damage(), instead use editor.damageAll(_newItem).

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Overrides:
mouseDragged in class ModeCreate

nearLast

protected boolean nearLast(int x,
                           int y)
Internal function to see if the user clicked twice on the same spot.