Class RMAnimator

  • All Implemented Interfaces:
    Archivable, RMPropertyChanger, java.lang.Cloneable

    public class RMAnimator
    extends RMObject
    implements Archivable
    This class represents a timer for animation, holding things like a current time and max time.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  RMAnimator.Listener
      An interface for classes that want to receive notification of certain animator events.
    • Constructor Summary

      Constructors 
      Constructor Description
      RMAnimator()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addAnimatorListener​(RMAnimator.Listener aListener)
      Adds an animator listener.
      void addFreezeFrame()
      Adds a freeze frame for the animator's current time to the freeze-frame list.
      void addNewborn​(java.lang.Object anObj)
      Declare newBorn shapes so that if they are added at non-zero time, we won't get bogus initial values (after an explicit time change, they will start to accept changes).
      boolean canFreezeFrame()
      Returns whether the current time is not currently a key-frame.
      RMAnimator clone()
      Standard clone implementation.
      void frameBackward()
      This method tells the animator to move one frame backward (based on the frame rate).
      void frameForward()
      This method tells the animator to move one frame forward (based on the frame rate).
      java.lang.Object fromXML​(RXArchiver anArchiver, RXElement anElement)
      XML unarchival.
      java.lang.String getEndAction()
      Returns the action to be performed at the end of animation.
      float getFrameRate()
      Returns the frame rate for this animator.
      int getInterval()
      Returns the update interval of the animator in milliseconds.
      java.util.List<java.lang.Integer> getKeyFrameTimes()
      Returns the list of key-frames present in animator owner's children.
      java.util.List<java.lang.Integer> getKeyFrameTimes​(java.util.List<RMShape> theShapes, boolean includeImplied)
      Returns the list of key-frames present in the given list of shapes (assumed to be animator owner's descendants).
      boolean getLoops()
      Returns whether this animator loops when time hits max time.
      int getMaxTime()
      Returns the max time for this animator.
      float getMaxTimeSeconds()
      Returns the animator max time in seconds.
      RMParentShape getOwner()
      Returns the owner of the animator.
      int getPlayStartTime()
      Returns the play start time.
      boolean getResetTimeOnStop()
      Returns whether the time is reset to start value when animator stops.
      int getScopeTime()
      Returns the key-frame time that new anim records should be made relative to.
      float getSecondsElapsed()
      Returns the number of seconds the animator has been playing for.
      int getTime()
      Returns the current time of the animator.
      float getTimeSeconds()
      Returns the animator time in seconds.
      boolean isEmpty()
      Returns whether animator owner's children are devoid of any animation records.
      boolean isEnabled()
      Returns whether the animator owner's children should accept changes.
      boolean isNewborn​(java.lang.Object anObj)
      Returns whether the given objects was created while at the current time.
      boolean isRunning()
      Returns whether the animator is currently in the act of playing.
      void play()
      Initiates a Swing timer to start automatically incrementing the animator's time (by frame rate increments).
      void removeAnimatorListener​(RMAnimator.Listener aListener)
      Removes an animator listener.
      void removeFramesAtTime​(int aTime)
      Removes records of the animator owner's children at a given time.
      void removeFramesBetweenTimes​(int startTime, int endTime, boolean inclusive)
      Removes records of the animator owner's children in the given time range.
      protected void resetShapeTimeline​(RMShape aShape)
      Resets a shape's timeline.
      void scaleFrames​(int aStartTime, int newMaxTime)
      Scales records of the animator owner's children in the range from start to start + length to a given new length.
      void setEnabled​(boolean aFlag)
      Sets whether the animator owner's children should accept changes.
      void setEndAction​(java.lang.String anAction)
      Sets the action to be performed at the end of animation.
      void setFrameRate​(float aValue)
      Sets the frame rate for this animator.
      void setInterval​(int anInterval)
      Sets the update interval of the animator in milliseconds.
      void setLoops​(boolean aValue)
      Sets whether this animator loops when time hits max time.
      void setMaxTime​(int aMaxTime)
      Sets the max time for this animator.
      void setMaxTimeSeconds​(float aTime)
      Sets the max time in seconds.
      void setOwner​(RMParentShape anObj)
      Sets the owner of the animator.
      void setResetTimeOnStop​(boolean aFlag)
      Sets whether the time is reset to start value when animator stops.
      void setScopeTime​(java.lang.Integer aValue)
      Sets the key-frame time that new anim records should be made from.
      void setTime​(int aTime)
      Sets the current time of the animator (clamped to maxTime), tells owner to setTime as well.
      void setTimeSeconds​(float aTime)
      Sets the time in seconds.
      void shiftFrames​(int fromTime, int aShiftTime)
      Shifts records of animator owner's children from the given from-time on, by the given by-time.
      void stop()
      Disables the Swing timer to stop automatically incrementing the animator's time.
      java.lang.String toString()
      Returns a string description of the animator.
      RXElement toXML​(RXArchiver anArchiver)
      XML archival.
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RMAnimator

        public RMAnimator()
    • Method Detail

      • getOwner

        public RMParentShape getOwner()
        Returns the owner of the animator.
      • setOwner

        public void setOwner​(RMParentShape anObj)
        Sets the owner of the animator.
      • getTime

        public int getTime()
        Returns the current time of the animator.
      • setTime

        public void setTime​(int aTime)
        Sets the current time of the animator (clamped to maxTime), tells owner to setTime as well.
      • getMaxTime

        public int getMaxTime()
        Returns the max time for this animator.
      • setMaxTime

        public void setMaxTime​(int aMaxTime)
        Sets the max time for this animator. May also call setTime() if animator's current time is beyond new max.
      • getTimeSeconds

        public float getTimeSeconds()
        Returns the animator time in seconds.
      • setTimeSeconds

        public void setTimeSeconds​(float aTime)
        Sets the time in seconds.
      • getMaxTimeSeconds

        public float getMaxTimeSeconds()
        Returns the animator max time in seconds.
      • setMaxTimeSeconds

        public void setMaxTimeSeconds​(float aTime)
        Sets the max time in seconds.
      • getInterval

        public int getInterval()
        Returns the update interval of the animator in milliseconds.
      • setInterval

        public void setInterval​(int anInterval)
        Sets the update interval of the animator in milliseconds.
      • getFrameRate

        public float getFrameRate()
        Returns the frame rate for this animator.
      • setFrameRate

        public void setFrameRate​(float aValue)
        Sets the frame rate for this animator.
      • getEndAction

        public java.lang.String getEndAction()
        Returns the action to be performed at the end of animation. For example: Loop, Loop:5, Loop:5,3, Page:Next, Page:Last, etc.
      • setEndAction

        public void setEndAction​(java.lang.String anAction)
        Sets the action to be performed at the end of animation.
      • getLoops

        public boolean getLoops()
        Returns whether this animator loops when time hits max time.
      • setLoops

        public void setLoops​(boolean aValue)
        Sets whether this animator loops when time hits max time.
      • getResetTimeOnStop

        public boolean getResetTimeOnStop()
        Returns whether the time is reset to start value when animator stops.
      • setResetTimeOnStop

        public void setResetTimeOnStop​(boolean aFlag)
        Sets whether the time is reset to start value when animator stops.
      • getKeyFrameTimes

        public java.util.List<java.lang.Integer> getKeyFrameTimes()
        Returns the list of key-frames present in animator owner's children.
      • getKeyFrameTimes

        public java.util.List<java.lang.Integer> getKeyFrameTimes​(java.util.List<RMShape> theShapes,
                                                                  boolean includeImplied)
        Returns the list of key-frames present in the given list of shapes (assumed to be animator owner's descendants).
      • canFreezeFrame

        public boolean canFreezeFrame()
        Returns whether the current time is not currently a key-frame.
      • addFreezeFrame

        public void addFreezeFrame()
        Adds a freeze frame for the animator's current time to the freeze-frame list.
      • getScopeTime

        public int getScopeTime()
        Returns the key-frame time that new anim records should be made relative to.
      • setScopeTime

        public void setScopeTime​(java.lang.Integer aValue)
        Sets the key-frame time that new anim records should be made from.
      • play

        public void play()
        Initiates a Swing timer to start automatically incrementing the animator's time (by frame rate increments).
      • stop

        public void stop()
        Disables the Swing timer to stop automatically incrementing the animator's time.
      • frameForward

        public void frameForward()
        This method tells the animator to move one frame forward (based on the frame rate).
      • frameBackward

        public void frameBackward()
        This method tells the animator to move one frame backward (based on the frame rate).
      • isRunning

        public boolean isRunning()
        Returns whether the animator is currently in the act of playing.
      • getSecondsElapsed

        public float getSecondsElapsed()
        Returns the number of seconds the animator has been playing for.
      • getPlayStartTime

        public int getPlayStartTime()
        Returns the play start time.
      • addAnimatorListener

        public void addAnimatorListener​(RMAnimator.Listener aListener)
        Adds an animator listener.
      • removeAnimatorListener

        public void removeAnimatorListener​(RMAnimator.Listener aListener)
        Removes an animator listener.
      • shiftFrames

        public void shiftFrames​(int fromTime,
                                int aShiftTime)
        Shifts records of animator owner's children from the given from-time on, by the given by-time.
      • scaleFrames

        public void scaleFrames​(int aStartTime,
                                int newMaxTime)
        Scales records of the animator owner's children in the range from start to start + length to a given new length.
      • isEmpty

        public boolean isEmpty()
        Returns whether animator owner's children are devoid of any animation records.
      • removeFramesAtTime

        public void removeFramesAtTime​(int aTime)
        Removes records of the animator owner's children at a given time.
      • removeFramesBetweenTimes

        public void removeFramesBetweenTimes​(int startTime,
                                             int endTime,
                                             boolean inclusive)
        Removes records of the animator owner's children in the given time range.
      • resetShapeTimeline

        protected void resetShapeTimeline​(RMShape aShape)
        Resets a shape's timeline.
      • isEnabled

        public boolean isEnabled()
        Returns whether the animator owner's children should accept changes.
      • setEnabled

        public void setEnabled​(boolean aFlag)
        Sets whether the animator owner's children should accept changes. This can be used strategically to disable the Animator so that it does not receive certain events (like each of the discrete moves in a mouse drag loop). Should be followed by enable (they can be nested).
      • isNewborn

        public boolean isNewborn​(java.lang.Object anObj)
        Returns whether the given objects was created while at the current time.
      • addNewborn

        public void addNewborn​(java.lang.Object anObj)
        Declare newBorn shapes so that if they are added at non-zero time, we won't get bogus initial values (after an explicit time change, they will start to accept changes).
      • toString

        public java.lang.String toString()
        Returns a string description of the animator.
        Overrides:
        toString in class RMObject