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

edu.berkeley.guir.lib.satin.interpreter.commands
Class AbstractSelectInterpreter

java.lang.Object
  |
  +--edu.berkeley.guir.lib.satin.interpreter.InterpreterImpl
        |
        +--edu.berkeley.guir.lib.satin.interpreter.commands.AbstractSelectInterpreter
All Implemented Interfaces:
Cloneable, EventFilter, EventListener, Interpreter, SatinConstants, SatinEventFilter, Serializable, StrokeEventFilter, StrokeListener
Direct Known Subclasses:
HoldSelectInterpreter, TapSelectInterpreter

public abstract class AbstractSelectInterpreter
extends InterpreterImpl

Abstract base class for selection interpreters.

This software is distributed under the Berkeley Software License.

 Revisions:  - SATIN-v1.0-1.0.0, Jun 27 1999, JH
               Created class
             - SATIN-v2.1-1.0.0, Aug 11 2000, JH
               Touched for SATIN release
 

Since:
JDK 1.3
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
 
Field Summary
protected  boolean flagMultiSelect
           
protected  boolean flagShallow
           
static int MAX_TAP_LENGTH
          Maximum absolute length we accept for taps.
 
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
AbstractSelectInterpreter()
           
 
Method Summary
protected  GraphicalObjectCollection getCandidates(SingleStrokeEvent evt)
          Get the possible Graphical Objects that the stroke could have intersected.
protected  GraphicalObjectCollection getCandidates(TimedStroke stk)
          Get the possible Graphical Objects that the stroke could have intersected.
protected  GraphicalObject getSelectCandidate(GraphicalObjectCollection gobcol)
          Given a collection of possible selection candidates, choose the "right" Graphical Object.
 boolean isMultiSelect()
           
 void setDeep()
          Select deeply, ie objects deep in the scenegraph tree.
 void setMultiSelect(boolean flag)
          Set whether multiple objects can be selected.
 void setShallow()
          Select shallowly, ie objects shallow in the scenegraph tree.
protected  boolean toggleSelectGraphicalObject(GraphicalObject selgob)
          Select or deselect the specified Graphical Object.
 
Methods inherited from class edu.berkeley.guir.lib.satin.interpreter.InterpreterImpl
clone, clone, getAttachedGraphicalObject, getName, handleNewStroke, handleSingleStroke, handleUpdateStroke, isConsumedAccepted, isEnabled, isEventAccepted, isEventAccepted, isLeftButtonAccepted, isMiddleButtonAccepted, isRightButtonAccepted, setAcceptConsumed, setAcceptLeftButton, setAcceptMiddleButton, setAcceptRightButton, setAttachedGraphicalObject, setEnabled, setName, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_TAP_LENGTH

public static final int MAX_TAP_LENGTH
Maximum absolute length we accept for taps. This length has been arbitrarily chosen.

flagShallow

protected boolean flagShallow

flagMultiSelect

protected boolean flagMultiSelect
Constructor Detail

AbstractSelectInterpreter

public AbstractSelectInterpreter()
Method Detail

setDeep

public void setDeep()
Select deeply, ie objects deep in the scenegraph tree.

setShallow

public void setShallow()
Select shallowly, ie objects shallow in the scenegraph tree.

setMultiSelect

public void setMultiSelect(boolean flag)
Set whether multiple objects can be selected. By default is single item select.

isMultiSelect

public boolean isMultiSelect()

getCandidates

protected GraphicalObjectCollection getCandidates(SingleStrokeEvent evt)
Get the possible Graphical Objects that the stroke could have intersected. Just calls the other getCandidates() method.

getCandidates

protected GraphicalObjectCollection getCandidates(TimedStroke stk)
Get the possible Graphical Objects that the stroke could have intersected. You probably don't want to override this method.

getSelectCandidate

protected GraphicalObject getSelectCandidate(GraphicalObjectCollection gobcol)
Given a collection of possible selection candidates, choose the "right" Graphical Object. By default, just chooses the first object in the collection. Override this method to change the selection policy.

toggleSelectGraphicalObject

protected boolean toggleSelectGraphicalObject(GraphicalObject selgob)
Select or deselect the specified Graphical Object.
Returns:
Returns whether the object was selected (true) or deselected or was null (false).

Copyright Information