Class AbstractAnimation

java.lang.Object
org.opensourcephysics.controls.AbstractAnimation
All Implemented Interfaces:
Runnable, javajs.async.SwingJSUtils.StateMachine, Animation
Direct Known Subclasses:
AbstractSimulation

public abstract class AbstractAnimation extends Object implements Animation, Runnable, javajs.async.SwingJSUtils.StateMachine
AbstractAnimation is a template for simple animations. Implement the doStep method to create an animation. This method is called from the run method and when the stepAnimation button is pressed.
Version:
1.0
Author:
Wolfgang Christian
  • Field Details

    • mainFrame

      protected OSPFrame mainFrame
    • control

      protected Control control
    • animationThread

      protected volatile Thread animationThread
    • delayTime

      protected int delayTime
    • sciFormat

      protected DecimalFormat sciFormat
      Field decimalFormat can be used to display time and other numeric values.
    • decimalFormat

      protected DecimalFormat decimalFormat
      Field decimalFormat can be used to display time and other numeric values.
  • Constructor Details

    • AbstractAnimation

      public AbstractAnimation()
  • Method Details

    • setControl

      public void setControl(Control control)
      Sets the Control for this model and initializes the control's values.
      Specified by:
      setControl in interface Animation
      Parameters:
      control -
    • setDelayTime

      public void setDelayTime(int delay)
      Sets the preferred delay time in ms between animation steps.
      Parameters:
      delay -
    • getDelayTime

      public int getDelayTime()
      Gets the preferred delay time in ms between animation steps.
      Returns:
    • getMainFrame

      public OSPFrame getMainFrame()
      Gets the main OSPFrame. The main frame will usually exit program when it is closed.
      Returns:
      OSPFrame
    • getMainFrameSize

      public int[] getMainFrameSize()
      Gets the Main Frame size.
    • getOSPApp

      public OSPApplication getOSPApp()
      Gets the main OSPFrame. The main frame will usually exit program when it is closed.
      Returns:
      OSPFrame
    • addChildFrame

      public void addChildFrame(JFrame frame)
      Adds a child frame that depends on the main frame. Child frames are closed when this frame is closed.
      Parameters:
      frame - JFrame
    • clearChildFrames

      public void clearChildFrames()
      Clears the child frames from the main frame.
    • getChildFrames

      public Collection<JFrame> getChildFrames()
      Gets a copy of the ChildFrames collection.
      Returns:
      Collection
    • getControl

      public Control getControl()
      Gets the Control.
      Returns:
      the control
    • initializeAnimation

      public void initializeAnimation()
      Initializes the animation by reading parameters from the control.
      Specified by:
      initializeAnimation in interface Animation
    • doStep

      protected abstract void doStep()
      Does an animation step.
    • stopAnimation

      public void stopAnimation()
      Stops the animation. Sets animationThread to null and waits for a join with the animation thread.
      Specified by:
      stopAnimation in interface Animation
    • isRunning

      public final boolean isRunning()
      Determines if the animation is running.
      Returns:
      boolean
    • stepAnimation

      public void stepAnimation()
      Steps the animation.
      Specified by:
      stepAnimation in interface Animation
    • startAnimation

      public void startAnimation()
      Starts the animation. Use this method to start a timer or a thread.
      Specified by:
      startAnimation in interface Animation
    • resetAnimation

      public void resetAnimation()
      Resets the animation to a predefined state.
      Specified by:
      resetAnimation in interface Animation
    • stateLoop

      public boolean stateLoop()
      Specified by:
      stateLoop in interface javajs.async.SwingJSUtils.StateMachine
    • run

      public void run()
      Implementation of Runnable interface. DO NOT access this method directly.
      Specified by:
      run in interface Runnable
    • getLoader

      public static XML.ObjectLoader getLoader()
      Returns an XML.ObjectLoader to save and load data for this object.
      Returns:
      the object loader