strokes
Class DrawInk

java.lang.Object
  extended by fr.lri.swingstates.sm.StateMachine
      extended by fr.lri.swingstates.sm.BasicInputStateMachine
          extended by fr.lri.swingstates.canvas.CStateMachine
              extended by strokes.DrawInk
All Implemented Interfaces:
fr.lri.swingstates.sm.StateMachineListener, java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener, java.util.EventListener

public class DrawInk
extends fr.lri.swingstates.canvas.CStateMachine

A stroke listener that can be attached to a StrokesShortcuts manager. Ink gesture is drawn on a canvas and, when a stroke ends, ink is beautified (300 ms) to match its template if recognition succeeded or is turned in red (200 ms) if recognition failed. As soon a beautification ends, the command mapping the recognized stroke shortcut is invoked through the StrokesShortcuts manager.

Author:
Caroline Appert

Nested Class Summary
 
Nested classes/interfaces inherited from class fr.lri.swingstates.canvas.CStateMachine
fr.lri.swingstates.canvas.CStateMachine.AnimationResumed, fr.lri.swingstates.canvas.CStateMachine.AnimationStarted, fr.lri.swingstates.canvas.CStateMachine.AnimationStopped, fr.lri.swingstates.canvas.CStateMachine.AnimationSuspended, fr.lri.swingstates.canvas.CStateMachine.CElementEvent, fr.lri.swingstates.canvas.CStateMachine.ClickOnShape, fr.lri.swingstates.canvas.CStateMachine.ClickOnTag, fr.lri.swingstates.canvas.CStateMachine.DragOnShape, fr.lri.swingstates.canvas.CStateMachine.DragOnTag, fr.lri.swingstates.canvas.CStateMachine.EnterOnShape, fr.lri.swingstates.canvas.CStateMachine.EnterOnTag, fr.lri.swingstates.canvas.CStateMachine.EventOnShape, fr.lri.swingstates.canvas.CStateMachine.EventOnTag, fr.lri.swingstates.canvas.CStateMachine.LeaveOnShape, fr.lri.swingstates.canvas.CStateMachine.LeaveOnTag, fr.lri.swingstates.canvas.CStateMachine.MouseOnShape, fr.lri.swingstates.canvas.CStateMachine.MouseOnTag, fr.lri.swingstates.canvas.CStateMachine.MoveOnShape, fr.lri.swingstates.canvas.CStateMachine.MoveOnTag, fr.lri.swingstates.canvas.CStateMachine.PressOnShape, fr.lri.swingstates.canvas.CStateMachine.PressOnTag, fr.lri.swingstates.canvas.CStateMachine.ReleaseOnShape, fr.lri.swingstates.canvas.CStateMachine.ReleaseOnTag, fr.lri.swingstates.canvas.CStateMachine.WheelOnShape, fr.lri.swingstates.canvas.CStateMachine.WheelOnTag
 
Field Summary
 
Fields inherited from class fr.lri.swingstates.canvas.CStateMachine
ANIMATION_RESUMED, ANIMATION_STARTED, ANIMATION_STOPPED, ANIMATION_SUSPENDED
 
Fields inherited from class fr.lri.swingstates.sm.BasicInputStateMachine
ALT, ALT_CONTROL, ALT_CONTROL_SHIFT, ALT_SHIFT, ANYBUTTON, ANYMODIFIER, BUTTON1, BUTTON2, BUTTON3, CONTROL, CONTROL_SHIFT, NOBUTTON, NOMODIFIER, SHIFT
 
Fields inherited from class fr.lri.swingstates.sm.StateMachine
TIME_OUT
 
Constructor Summary
DrawInk(fr.lri.swingstates.canvas.Canvas glassPane, StrokeShortcuts strokesShortcuts)
          Builds a DrawInk stroke listener.
 
Method Summary
 fr.lri.swingstates.canvas.CPolyLine getInk()
           
 fr.lri.swingstates.canvas.CEllipse getStartingPoint()
           
 
Methods inherited from class fr.lri.swingstates.canvas.CStateMachine
attachTo, attachTo, detach, getControlledObjects, greaterPriorityThan, greatestPriority, isAttachedTo, lowerPriorityThan, lowestPriority
 
Methods inherited from class fr.lri.swingstates.sm.BasicInputStateMachine
addAsListenerOf, keyPressed, keyReleased, keyTyped, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, mouseWheelMoved, removeAsListenerOf
 
Methods inherited from class fr.lri.swingstates.sm.StateMachine
actionPerformed, addStateMachineListener, addStateMachineListener, armTimer, armTimer, consumes, disarmTimer, disarmTimer, doReset, doResume, doSuspend, eventOccured, fireEvent, fireEvent, getAllStates, getCurrentState, getInitialState, getState, hasConsumed, init, initStatesAndTransitions, isActive, processEvent, processEvent, removeStateMachineListener, removeStateMachineListener, reset, resume, setActive, suspend
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DrawInk

public DrawInk(fr.lri.swingstates.canvas.Canvas glassPane,
               StrokeShortcuts strokesShortcuts)
Builds a DrawInk stroke listener.

Parameters:
glassPane - The canvas on which ink must be drawn
strokesShortcuts - The StrokesShortcuts manager
Method Detail

getInk

public fr.lri.swingstates.canvas.CPolyLine getInk()
Returns:
The ink trail as a SwingStates' polyline.

getStartingPoint

public fr.lri.swingstates.canvas.CEllipse getStartingPoint()
Returns:
The ink trail'staring point as a SwingStates' ellipse.