
package edu.hws.GA;

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class Launcher extends Applet implements ActionListener {

   private Button launchButton;
   private boolean frameIsOpen;
   private GAFrame frame;

   public void init() {
      setLayout(new BorderLayout());
      launchButton = new Button("Start the World");
      add(launchButton, BorderLayout.CENTER);
      launchButton.addActionListener(this);
   }
   
   synchronized void frameHasOpened() {
      frameIsOpen = true;
      launchButton.setEnabled(true);
      launchButton.setLabel("End the World");
   }
   
   synchronized void frameHasClosed() {
      frameIsOpen = false;
      launchButton.setLabel("Start the World");
      frame = null;
   }
   
   synchronized public void destroy() {
      if (frame != null) {
         frame.close();
         frame = null;
      }
   }
   
   synchronized public void actionPerformed(ActionEvent evt) {
      if (frame == null) {
         launchButton.setEnabled(false);
         try {
            frame = new GAFrame(this);
         }
         catch (Exception e) {
            launchButton.setEnabled(true);
            launchButton.setLabel("Error! Try Again?");
         }
      }
      else
         frame.close();
   }
}
