// Mikael Bonnier 2001-06-04
// Uppgift 4b

package uppg4b;

import java.util.*;

public class Tid extends Thread {
  private TidListener lyssnare;
  private int intervall;

  public Tid() {
    this(1000);
  }

  public Tid(int intervall) {
    setIntervall(intervall);
    start();
  }

  public void setIntervall(int intervall) {
    this.intervall = intervall;
  }

  public void addTidListener(TidListener lyssnare) {
    this.lyssnare = lyssnare;
  }

  public void removeListener(TidListener lyssnare) {
    if(this.lyssnare == lyssnare)
      this.lyssnare = null;
  }

  public void run() {
    Calendar cal = Calendar.getInstance();
    int sekunder;
    try {
      for(;;) {
        if(lyssnare != null) {
          cal.setTime(new Date());
          sekunder = 3600*cal.get(Calendar.HOUR_OF_DAY);
          sekunder += 60*cal.get(Calendar.MINUTE);
          sekunder += cal.get(Calendar.SECOND);
          lyssnare.nyTid(new TidEvent(this, sekunder));
        }
        Thread.sleep(intervall);
      }
    } catch(InterruptedException e) {}
  }
}

