Class 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. The timeAdvance 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)
    • 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 class Event
        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 class Event
        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 interface TimeAdvanceEvent
        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 class Event
        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)
      • stop

        public void stop()
        Request that the event cease execution altogether.
        Overrides:
        stop in class Event