// @topic S-0330-14-15-30 Java MVC JTable Demo
// @brief Worker thread to animate elevator movements

package gui_demo;

public class ThreadAnimation implements Runnable {
    //------------------------------
    // data
    //------------------------------
    private static final long ANIMATION_TIMEOUT_MS = 500; // half second
    private ControllerDemo controller;
    
    //------------------------------
    // constructors
    //------------------------------
    public ThreadAnimation( ControllerDemo controller )
    {
        this.controller = controller;
    }//ThreadAnimation
    
    //------------------------------
    // operations
    //------------------------------
    @Override
    public void run()
    {
        for (;;) {
            try {
                Thread.sleep( ANIMATION_TIMEOUT_MS );
            } catch ( InterruptedException ex ) {
                System.out.println( ex.getMessage() );
                ex.printStackTrace();
                return;
            }
            //System.out.println( "Thread woke up!" );
            controller.animate();
        }
    }//run
}//class ThreadAnimation