/*************************************************
 * File
 * ~caviness/Class/CISC367/exer-solutions/TrafficLightThread/soln2/TLApplet.java
 *************************************************/

import java.applet.*;		// for Class Applet
import java.awt.*;		// for Color

public class TLApplet extends Applet
{
   TrafficLight trafficLight = new TrafficLight( Color.green );
   PedestrianLight pedLight = new PedestrianLight( "Walk" );
   TrafficLightThread tlThread = null;
   PedestrianLightThread plThread = null;
   FlasherCoordinator f = new FlasherCoordinator();

   public void init()
   {
      System.out.println("TLApplet's init() method called");
      setLayout( new BorderLayout() );
      add( "Center", trafficLight );
      add( "South", pedLight );
   }

   public void start()
   {
      System.out.println("TLApplet's start() method called");
      if ( tlThread == null )
      {
         System.out.println("TLApplet creating & starting threads.");
         tlThread = new TrafficLightThread( f, trafficLight, pedLight );
         plThread = new PedestrianLightThread( f, pedLight );
         tlThread.start();
         plThread.start();
      }
      else
      {
         System.out.println("TLApplet resuming threads.");
         tlThread.resume();
         plThread.resume();
      }
   }

   public void stop()
   {
      System.out.println("TLApplet's stop() method called");
      tlThread.suspend();		 // Stop thread when Applet is stopped.
      plThread.suspend();
   }

   public void destroy()
   {
      System.out.println("TLApplet's destroy() method called");
      tlThread.stop();		 // Stop thread when Applet is stopped.
      tlThread = null;
      plThread.stop();
      plThread = null;
   }
}
