Class SequenceTaskController

  • All Implemented Interfaces:
    com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable

    public class SequenceTaskController
    extends com.globalmentor.beans.BoundPropertyObject
    Abstract base class for managing progression of a sequence.
    Author:
    Garret Wilson
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static int CONFIRM_DELAY
      The length of time, in milliseconds, to wait for confirmation when applicable.
      static java.lang.String CONFIRM_NAVIGATION_PROPERTY
      The bound property of whether navigation should be confirmed, of type Boolean.
      • Fields inherited from class com.globalmentor.beans.BoundPropertyObject

        NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
    • Constructor Summary

      Constructors 
      Constructor Description
      SequenceTaskController​(com.globalmentor.model.SequenceTask task)
      Sequence task constructor.
    • Field Detail

      • CONFIRM_NAVIGATION_PROPERTY

        public static final java.lang.String CONFIRM_NAVIGATION_PROPERTY
        The bound property of whether navigation should be confirmed, of type Boolean.
      • CONFIRM_DELAY

        protected static final int CONFIRM_DELAY
        The length of time, in milliseconds, to wait for confirmation when applicable.
        See Also:
        Constant Field Values
    • Constructor Detail

      • SequenceTaskController

        public SequenceTaskController​(com.globalmentor.model.SequenceTask task)
        Sequence task constructor. This controller listens to bound properties of the task.
        Parameters:
        task - The sequence task being controlled.
        Throws:
        java.lang.NullPointerException - if the given task is null.
    • Method Detail

      • getStartActionPrototype

        public ActionPrototype getStartActionPrototype()
        Returns:
        The action prototype for starting the sequence.
      • getPreviousActionPrototype

        public ActionPrototype getPreviousActionPrototype()
        Returns:
        The action prototype for going to the previous step.
      • getNextActionPrototype

        public ActionPrototype getNextActionPrototype()
        Returns:
        The action prototype for going to the next step.
      • getFinishActionPrototype

        public ActionPrototype getFinishActionPrototype()
        Returns:
        The action prototype for finishing the sequence.
      • getConfirmActionPrototype

        public ActionPrototype getConfirmActionPrototype()
        Returns:
        The action prototype for confirming an action.
      • getConfirmingActionPrototype

        public ActionPrototype getConfirmingActionPrototype()
        Returns:
        The action prototype currently being confirmed and which, if confirmed, will be performed.
      • setConfirmingActionPrototype

        public void setConfirmingActionPrototype​(ActionPrototype newConfirmingActionPrototype)
        Starts the confirmation timer and, if confirmation is received within the required amount of time, the given action is taken. Alternatively, if no action is given, the confirmation process is stopped. If the action is already waiting for confirmation, no action is taken.
        Parameters:
        newConfirmingActionPrototype - The action to perform if confirmation is received, or null if no action should be pending confirmation.
      • isConfirmNavigation

        public boolean isConfirmNavigation()
        Returns:
        true if each navigation should be confirmed.
      • setConfirmNavigation

        public void setConfirmNavigation​(boolean newConfirmNavigation)
        Sets whether each navigation must be confirmed. This is a bound property of type Boolean.
        Parameters:
        newConfirmNavigation - true if each navigation must be confirmed.
        See Also:
        CONFIRM_NAVIGATION_PROPERTY
      • getTask

        public com.globalmentor.model.SequenceTask getTask()
        Returns:
        The sequence task being controlled.
      • update

        protected void update()
        Updates the condition of the controller based upon the state. This method is a convenience method for complex components that would like to perform wholesale updates any prototypes, enabled/disabled status, proxied actions, etc. This implementation updates the states of action prototypes.