import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Event;
import java.util.Date;
import java.util.StringTokenizer;

public class ClockThread extends Canvas implements Runnable {
  private String time = "", day = "";
  private boolean affTime = true;
  private Thread t = null;

  public ClockThread() {
    Init.println("ClockThread", "Construct Thread");
    t = new Thread(this);
    t.start();
  }

  public void run () {
    try {
      Init.println("ClockThread", "sleep 10s");
      t.sleep(10000);
      while (true) {
        StringTokenizer st = new StringTokenizer(new Date().toString());
        day = "";
        for (int pos = 0; st.hasMoreTokens(); pos++) {
	  String tmp = st.nextToken();
          if (pos<3) day += tmp+" ";
          if (pos==3) time = tmp;
          if (st.countTokens()==0)
            day += tmp;
        }
        Init.println("ClockThread", "Day:"+day+" time:"+time);
        repaint();
	t.yield();
        t.sleep(1000);	
      }
    } catch (InterruptedException ie) {
      System.out.println("ClockThread: Exception attrapee.");
    }
  }

  public void paint(Graphics g) {
    g.setColor(Color.blue);
    g.drawString(affTime?time:day, 0, 30);
  }

  public boolean mouseDown(Event ev, int x, int y) {
    affTime = !affTime;
    repaint();
    return true;
  }

  public Dimension preferredSize() {
    return new Dimension(110, 50);
  }

}
