UC Berkeley Group for User Interface Research
Updated November 17, 2000

edu.berkeley.guir.lib.satin.event
Class StrokeEvent

java.lang.Object
  |
  +--java.util.EventObject
        |
        +--edu.berkeley.guir.lib.satin.event.SatinEvent
              |
              +--edu.berkeley.guir.lib.satin.event.StrokeEvent
All Implemented Interfaces:
Cloneable, SatinConstants, Serializable
Direct Known Subclasses:
NewStrokeEvent, SingleStrokeEvent, UpdateStrokeEvent

public abstract class StrokeEvent
extends SatinEvent
implements SatinConstants

An abstract class representing an event signalling a stroke has been completed.

This software is distributed under the Berkeley Software License.

 Revisions:  - SATIN-v1.0-1.0.0, Oct 29 1998, JH
               Created class
             - SATIN-v2.1-1.0.0, Aug 11 2000, JH
               Touched for SATIN release
 

Since:
JDK 1.2
Version:
SATIN-v2.1-1.0.0, Aug 11 2000
Author:
Jason Hong ( jasonh@cs.berkeley.edu )
See Also:
Serialized Form

Inner classes inherited from class edu.berkeley.guir.lib.satin.SatinConstants
SatinConstants.ObjectPoolAffineTransform, SatinConstants.ObjectPoolPoint2D, SatinConstants.ObjectPoolPolygon2D, SatinConstants.ObjectPoolRectangle2D, SatinConstants.ObjectPoolStringBuffer, SatinConstants.UniqueAffineTransform, SatinConstants.UniquePoint2D, SatinConstants.UniquePolygon2D, SatinConstants.UniqueRectangle2D
 
Fields inherited from class java.util.EventObject
source
 
Fields inherited from interface edu.berkeley.guir.lib.satin.SatinConstants
ABOVE, ALL, BAR, BELOW, clipboard, clprops, cmdqueue, cmdsubsys, CONTAINEDBY, CONTAINS, COORD_ABS, COORD_LOCAL, COORD_REL, DAMAGE_LATER, DAMAGE_NOW, DEBUG_GRAPHICS_OFFSET, DEBUG_STYLE_FILE, DEBUG_STYLE_GPROPERTY, DEEP, DEFAULT_POINT2D_POOL_SIZE, DEFAULT_POLYGON2D_POOL_SIZE, DEFAULT_RECTANGLE_POOL_SIZE, DEFAULT_REPAINT_THRESHOLD, DEFAULT_SELECT_THRESHOLD, DEFAULT_STRINGBUFFER_POOL_SIZE, DEFAULT_TRANSFORM_POOL_SIZE, DIR_CENTER, DIR_DOWN, DIR_DOWN_LEFT, DIR_DOWN_RIGHT, DIR_LEFT, DIR_RIGHT, DIR_UP, DIR_UP_LEFT, DIR_UP_RIGHT, FILTER_THRESHOLD, FIRST, FLOATING_PT_TOLERANCE, glprops, INTERSECTS, KEY_STYLE_DASHARRAY, KEY_STYLE_DASHPHASE, KEY_STYLE_DRAWCOLOR, KEY_STYLE_DRAWFONT, KEY_STYLE_DRAWTRANSPARENCY, KEY_STYLE_ENDCAP, KEY_STYLE_FILLCOLOR, KEY_STYLE_FILLTRANSPARENCY, KEY_STYLE_LINEJOIN, KEY_STYLE_LINEWIDTH, KEY_STYLE_MITERLIMIT, NEAR, NOTIFY_BOUNDS, NOTIFY_LAYER, NOTIFY_LOCATION, NOTIFY_STYLE, NOTIFY_TRANSFORM, poolPoints, poolPolys, poolRects, poolStrbuf, poolTx, rand, SATIN_DATA_DIRECTORY_DEFAULT, SATIN_DATA_DIRECTORY_GPROPERTY, SATIN_PROPERTIES_FILENAME, SHALLOW
 
Constructor Summary
StrokeEvent(Object source)
          Create a new StrokeEvent object.
StrokeEvent(Object source, TimedStroke stroke)
          Create a new StrokeEvent object.
StrokeEvent(Object source, TimedStroke stroke, MouseEvent evt)
          Create a new StrokeEvent object.
 
Method Summary
 MouseEvent getMouseEvent()
          Get a reference to the corresponding mouse event, after the transformations have been applied (ie in relative coordinates, relative to the last GraphicalObject that handled this event).
 TimedStroke getStroke()
          Get a reference to the Stroke object this event represents, after the transformations have been applied (ie in relative coordinate, relative to the last GraphicalObject that handled this event).
 MouseEvent getUntransformedMouseEvnet()
          Get a reference to the corresponding mouse event, before the transformations have been applied (ie in absolute coordinates).
 TimedStroke getUntransformedStroke()
          Get a reference to the Stroke object this event represents, before the transformations have been applied (ie in absolute coordinates).
 boolean isLeftButton()
          Does the stroke use the left button? Only registers as left button if neither middle and right are down too.
 boolean isMiddleButton()
          Does the stroke use the middle button?
 boolean isRightButton()
          Does the stroke use the right button?
protected  void onApplyTransform(AffineTransform newTx)
          Apply the transform to the stroke and to the event.
protected  void onSetTransform(AffineTransform newTx)
          Apply the transform to the stroke and to the event.
 void setMouseEvent(MouseEvent newEvt)
           
 void setStroke(TimedStroke stk)
           
 String toString()
           
 
Methods inherited from class edu.berkeley.guir.lib.satin.event.SatinEvent
applyTransform, getTransform, isConsumed, setConsumed, setConsumed, setShouldRender, setTransform, shouldRender
 
Methods inherited from class java.util.EventObject
getSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StrokeEvent

public StrokeEvent(Object source)
Create a new StrokeEvent object.
Parameters:
source - is the object creating this StrokeEvent.

StrokeEvent

public StrokeEvent(Object source,
                   TimedStroke stroke)
Create a new StrokeEvent object.
Parameters:
source - is the object creating this StrokeEvent.

StrokeEvent

public StrokeEvent(Object source,
                   TimedStroke stroke,
                   MouseEvent evt)
Create a new StrokeEvent object.
Parameters:
source - is the object creating this StrokeEvent.
evt - is an associated AWT Event.
Method Detail

onApplyTransform

protected void onApplyTransform(AffineTransform newTx)
Apply the transform to the stroke and to the event.
Overrides:
onApplyTransform in class SatinEvent
Following copied from class: edu.berkeley.guir.lib.satin.event.SatinEvent
Parameters:
newTx - is the transform that will be applied.

onSetTransform

protected void onSetTransform(AffineTransform newTx)
Apply the transform to the stroke and to the event.
Overrides:
onSetTransform in class SatinEvent
Following copied from class: edu.berkeley.guir.lib.satin.event.SatinEvent
Parameters:
newTx - is the transform that will be applied.

isLeftButton

public boolean isLeftButton()
Does the stroke use the left button? Only registers as left button if neither middle and right are down too.

isMiddleButton

public boolean isMiddleButton()
Does the stroke use the middle button?

isRightButton

public boolean isRightButton()
Does the stroke use the right button?

getStroke

public TimedStroke getStroke()
Get a reference to the Stroke object this event represents, after the transformations have been applied (ie in relative coordinate, relative to the last GraphicalObject that handled this event).
Returns:
a TimedStroke object.

setStroke

public void setStroke(TimedStroke stk)

getUntransformedStroke

public TimedStroke getUntransformedStroke()
Get a reference to the Stroke object this event represents, before the transformations have been applied (ie in absolute coordinates).

This method is needed since, when adding, GraphicalObjectGroup converts the object to add into its own coordinate system, so using getStroke() applies the transform twice.

Returns:
a TimedStroke object.

getMouseEvent

public MouseEvent getMouseEvent()
Get a reference to the corresponding mouse event, after the transformations have been applied (ie in relative coordinates, relative to the last GraphicalObject that handled this event).

setMouseEvent

public void setMouseEvent(MouseEvent newEvt)

getUntransformedMouseEvnet

public MouseEvent getUntransformedMouseEvnet()
Get a reference to the corresponding mouse event, before the transformations have been applied (ie in absolute coordinates).

toString

public String toString()
Overrides:
toString in class EventObject

Copyright Information