public class ArrowKeySensor extends TypedAtomicActor
When this actor is preinitialized, it pops up a new JFrame window on the desktop, usually in the upper left hand corner of the screen. When this JFrame has the focus (such as when it has been clicked on) it is capable of sensing keystrokes.
This actor senses only the four non-numeric-pad arrow-key keystrokes. This actor responds to key releases as well as key presses. Upon each key press, the integer 1 is broadcast from the corresponding output. Upon each key release, the integer 0 is output.
This actor contains a private inner class which generated the JFrame. The frame sets up call-backs which react to the keystrokes. When called, these call the director's fireAt() method with the current time as argument. This causes the director to call fire() on the actor with the first valid time equal to the current time or later. The actor then broadcasts tokens from one or both outputs depending on which keystroke(s) have occurred since the actor was last fired. On key pressed a one will be send, on key release a zero will be send.
| Red (winthrop) |
| Red (winthrop) |
Entity.ContainedObjectsIterator| Modifier and Type | Field and Description |
|---|---|
protected boolean |
_downKeyPressed
A flag indicating if the down arrow key has been pressed
since the last firing of the actor.
|
protected boolean |
_downKeyReleased
A flag indicating if the down arrow key has been released
since the last firing of the actor.
|
protected boolean |
_leftKeyPressed
A flag indicating if the left arrow key has been released
since the last firing of the actor.
|
protected boolean |
_leftKeyReleased
A flag indicating if the left arrow key has been released
since the last firing of the actor.
|
protected boolean |
_rightKeyPressed
A flag indicating if the right arrow key has been pressed
since the last firing of the actor.
|
protected boolean |
_rightKeyReleased
A flag indicating if the right arrow key has been released
since the last firing of the actor.
|
protected boolean |
_upKeyPressed
A flag indicating if the up arrow key has been pressed
since the last firing of the actor.
|
protected boolean |
_upKeyReleased
A flag indicating if the up arrow key has been released
since the last firing of the actor.
|
TypedIOPort |
downArrow
Output port, which has type IntToken.
|
TypedIOPort |
leftArrow
Output port, which has type IntToken.
|
TypedIOPort |
rightArrow
Output port, which has type IntToken.
|
TypedIOPort |
upArrow
Output port, which has type IntToken.
|
_typesValid_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKSCOMPLETED, NOT_READY, STOP_ITERATING| Constructor and Description |
|---|
ArrowKeySensor(CompositeEntity container,
java.lang.String name)
Construct an actor with the given container and name.
|
| Modifier and Type | Method and Description |
|---|---|
void |
fire()
Broadcast the integer value 1 for each key pressed and 0 for
each released.
|
void |
initialize()
Create the JFrame window capable of detecting the key-presses.
|
void |
wrapup()
Dispose of the JFrame, causing the window to vanish.
|
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspaceequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcreateReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortListisFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminateaddInitializable, preinitialize, removeInitializabledescription, getContainer, getDisplayName, getFullName, getName, getName, setNamegetDerivedLevel, getDerivedList, propagateValuepublic TypedIOPort upArrow
public TypedIOPort leftArrow
public TypedIOPort rightArrow
public TypedIOPort downArrow
protected boolean _downKeyPressed
protected boolean _downKeyReleased
protected boolean _leftKeyPressed
protected boolean _leftKeyReleased
protected boolean _rightKeyPressed
protected boolean _rightKeyReleased
protected boolean _upKeyPressed
protected boolean _upKeyReleased
public ArrowKeySensor(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container - The container.name - The name of this actor.IllegalActionException - If the actor cannot be contained
by the proposed container.NameDuplicationException - If the container already has an
actor with this name.public void fire()
throws IllegalActionException
fire in interface Executablefire in class AtomicActor<TypedIOPort>IllegalActionException - Not thrown in this base class.public void initialize()
throws IllegalActionException
initialize in interface Initializableinitialize in class AtomicActor<TypedIOPort>IllegalActionException - If a derived class throws it.public void wrapup()
throws IllegalActionException
wrapup in interface Initializablewrapup in class AtomicActor<TypedIOPort>IllegalActionException - Not thrown in this base class.