import awt.*;
import browser.Applet;
/** 
 Program: 	EssentialRunner application
 Purpose: 	simple demonstration of a runnable applet 
 @author 	john@december.com 
 @version	1.54; 22 July 1995
 */

public class EssentialRunner extends Applet implements Runnable {

    private Thread flow;
    boolean done, pause;
    static int width = 500;
    static int interval = 5;
    int x, y, cycle;

    public void init() {
	resize(width, width);
    }

    public void paint(Graphics g) {
	g.SetColor(Color.green);
	g.drawLine(width/2, width/2, x, y);
        y = y + interval;
        if (y > width) {
            y = 0; 
            cycle++;
            if ((cycle%2) == 0)
               x = cycle*interval;
            else 
               x = width - cycle*interval;
        }
    }

    public void update(Graphics g) {
	paint(g);
    }

    public void start() {
        done = false;
        pause = false;
        x = 0;
        y = 0;
        cycle = 0;
        flow = new Thread(this);
        flow.start();
    }

    public void run() {
        try {
            while (!done) {
	       Thread.sleep(interval);
               if (!pause) repaint();
            }
        }
    }

    public void stop() {
       done = true;
       flow.stop();
    }
     
    public void mouseUp(int x, int y) { 
       pause = !pause;
    }
}
