Package ptolemy.domains.ptera.lib
Class ReceiveInput
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.kernel.InstantiableNamedObj
-
- ptolemy.kernel.Entity<T>
-
- ptolemy.kernel.ComponentEntity
-
- ptolemy.domains.modal.kernel.State
-
- ptolemy.domains.ptera.kernel.Event
-
- ptolemy.domains.ptera.lib.ReceiveInput
-
- All Implemented Interfaces:
java.lang.Cloneable
,Initializable
,ConfigurableEntity
,TimeAdvanceEvent
,Changeable
,Configurable
,Debuggable
,DebugListener
,Derivable
,DropTargetHandler
,Flowable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
public class ReceiveInput extends Event implements TimeAdvanceEvent
An event that receives user input and allows model time to be advanced. The user input can be key presses or mouse presses. A tableau is used to receive the input. ThetimeAdvance
parameter defines the amount of model time that is advanced at the same time as the user sends input. For example, if the current model time is 5 and timeAdvance parameter is 1 when this event is fired, then the user input is considered to be received at model time 6. The events scheduled to occur between time 5 and 6 occur in the background, but the events scheduled to occur after 6 would be delayed until the user input is actually received. Whether the events scheduled exactly at time 5 or 6 are processed while the user input is being waited for depends on the LIFO or FIFO policy of the model.- Since:
- Ptolemy II 8.0
- Version:
- $Id$
- Author:
- Thomas Huining Feng
- Pt.AcceptedRating:
- Red (tfeng)
- Pt.ProposedRating:
- Yellow (tfeng)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.domains.ptera.kernel.Event
Event.EventParameter, Event.RefiringData
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description StringParameter
acceptableComponentType
The name of the class of the component that can accept user input, such as "java.awt.Button", or empty.StringParameter
acceptableKeyPattern
A string pattern in the Java regular expression used to match acceptable key input.StringParameter
componentType
Class name of the component that actually receives the user input, which is automatically updated after the input is received.StringParameter
keyPressText
The text of the key input, which is automatically updated after the input is received.Parameter
mousePressLocation
Screen location of the mouse press, which is automatically updated after the input is received.Parameter
receiveKeyPress
A Boolean parameter to determine whether key presses are accepted.Parameter
receiveMousePress
A Boolean parameter to determine whether mouse presses are accepted.StringParameter
referredTableau
The parameter that contains the name of the TableauParameter to be used.Parameter
timeAdvance
The amount (in double) of model time advancement.-
Fields inherited from class ptolemy.domains.ptera.kernel.Event
actions, isEndingEvent, isFinalEvent, isInitialEvent, parameters
-
Fields inherited from class ptolemy.domains.modal.kernel.State
incomingPort, isFinalState, isInitialState, outgoingPort, refinementName, saveRefinementsInConfigurer
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
-
Constructor Summary
Constructors Constructor Description ReceiveInput(CompositeEntity container, java.lang.String name)
Construct an event with the given name contained by the specified composite entity.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone(Workspace workspace)
Clone the state into the specified workspace.Event.RefiringData
fire(Token arguments)
Process this event with the given arguments.java.lang.String
getTimeAdvanceText()
Return a string that represents the amount of model time advancement.Event.RefiringData
refire(Token arguments, Event.RefiringData data)
Continue the processing of this event with the given arguments from the previous fire() or refire().void
stop()
Request that the event cease execution altogether.-
Methods inherited from class ptolemy.domains.ptera.kernel.Event
_getParserScope, _isActiveRefinement, addInitializable, attributeChanged, getController, initialize, isEndingEvent, isFinalEvent, isInitialEvent, preinitialize, removeInitializable, scheduleEvents, setContainer, wrapup
-
Methods inherited from class ptolemy.domains.modal.kernel.State
_exportMoMLContents, configure, dropObject, errorTransitionList, getConfigurer, getConfigureSource, getConfigureText, getIncomingPort, getObjectInRefinement, getOutgoingPort, getRefinement, nonErrorNonTerminationTransitionList, nonpreemptiveTransitionList, preemptiveTransitionList, terminationTransitionList
-
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, newPort, propagateExistence, setName
-
Methods inherited from class ptolemy.kernel.Entity
_addPort, _description, _removePort, _validateSettables, connectedPortList, connectedPorts, connectionsChanged, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, attributeTypeChanged, clone, 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, workspace
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getDisplayName, getFullName, getName, getName
-
-
-
-
Field Detail
-
acceptableComponentType
public StringParameter acceptableComponentType
The name of the class of the component that can accept user input, such as "java.awt.Button", or empty.
-
acceptableKeyPattern
public StringParameter acceptableKeyPattern
A string pattern in the Java regular expression used to match acceptable key input.
-
componentType
public StringParameter componentType
Class name of the component that actually receives the user input, which is automatically updated after the input is received.
-
keyPressText
public StringParameter keyPressText
The text of the key input, which is automatically updated after the input is received.
-
mousePressLocation
public Parameter mousePressLocation
Screen location of the mouse press, which is automatically updated after the input is received.
-
receiveKeyPress
public Parameter receiveKeyPress
A Boolean parameter to determine whether key presses are accepted.
-
receiveMousePress
public Parameter receiveMousePress
A Boolean parameter to determine whether mouse presses are accepted.
-
referredTableau
public StringParameter referredTableau
The parameter that contains the name of the TableauParameter to be used. It cannot be empty.
-
timeAdvance
public Parameter timeAdvance
The amount (in double) of model time advancement.
-
-
Constructor Detail
-
ReceiveInput
public ReceiveInput(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
Construct an event with the given name contained by the specified composite entity. The container argument must not be null, or a NullPointerException will be thrown. This event will use the workspace of the container for synchronization and version counts. If the name argument is null, then the name is set to the empty string. Increment the version of the workspace. This constructor write-synchronizes on the workspace.- Parameters:
container
- The container.name
- The name of the state.- Throws:
IllegalActionException
- If the state cannot be contained by the proposed container.NameDuplicationException
- If the name coincides with that of an entity already in the container.
-
-
Method Detail
-
clone
public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
Clone the state into the specified workspace. This calls the base class and then sets the attribute and port public members to refer to the attributes and ports of the new state.- Overrides:
clone
in classEvent
- Parameters:
workspace
- The workspace for the new event.- Returns:
- A new event.
- Throws:
java.lang.CloneNotSupportedException
- If a derived class contains an attribute that cannot be cloned.- See Also:
NamedObj.exportMoML(Writer, int, String)
,NamedObj.setDeferringChangeRequests(boolean)
-
fire
public Event.RefiringData fire(Token arguments) throws IllegalActionException
Process this event with the given arguments. The number of arguments provided must be equal to the number of formal parameters defined for this event, and their types must match. The actions of this event are executed.- Overrides:
fire
in classEvent
- Parameters:
arguments
- The arguments used to process this event, which must be either an ArrayToken or a RecordToken.- Returns:
- A refiring data structure that contains a non-negative double number if refire() should be called after that amount of model time, or null if refire() need not be called.
- Throws:
IllegalActionException
- If the number of the arguments or their types do not match, the actions cannot be executed, or any expression (such as guards and arguments to the next events) cannot be evaluated.- See Also:
refire(Token, RefiringData)
-
getTimeAdvanceText
public java.lang.String getTimeAdvanceText()
Return a string that represents the amount of model time advancement.- Specified by:
getTimeAdvanceText
in interfaceTimeAdvanceEvent
- Returns:
- The string.
-
refire
public Event.RefiringData refire(Token arguments, Event.RefiringData data) throws IllegalActionException
Continue the processing of this event with the given arguments from the previous fire() or refire(). The number of arguments provided must be equal to the number of formal parameters defined for this event, and their types must match. The actions of this event are executed.- Overrides:
refire
in classEvent
- Parameters:
arguments
- The arguments used to process this event, which must be either an ArrayToken or a RecordToken.data
- The refiring data structure returned by the previous fire() or refire().- Returns:
- A refiring data structure that contains a non-negative double number if refire() should be called after that amount of model time, or null if refire() need not be called.
- Throws:
IllegalActionException
- If the number of the arguments or their types do not match, the actions cannot be executed, or any expression (such as guards and arguments to the next events) cannot be evaluated.- See Also:
fire(Token)
-
-