/** (C) 1999 World Xiangqi League, Confidential, All Rights Reserved */

import java.awt.*;
import java.applet.*;
import java.text.*; // for date junk (the key word here is junk)
import java.util.*;

public class BootApplet extends Applet {
  public long bootTime = System.currentTimeMillis();
  
  public void init() {
    String[] classes = {
      "ChatPanel", "Club", "Connection", "FormLayout", "GameCanvas",
      "GamePanel", "GameRule", "ImageButton", "Login", "PlayerCanvas",
      "RadioMenu", "SliderCanvas", "SponsorCanvas", "Stickup", "Tables" 
    };
    super.init();
    setLayout(null);
    ProgressBar bar = new ProgressBar("World Xiangqi League - Load Progress",
				      classes.length+4, this);
    bar.show();

    for (int i = 0; i < classes.length; i++) {
      try {
	Class c = Class.forName(classes[i]);
	bar.tick("Loaded "+classes[i]);
      }
      catch (Exception e) {
	System.out.println("ClassPreLoader error: "+classes[i]);
      }
    }

    try {
      Login login = new Login(this,bar);
      login.startup();
    } catch (Exception e) {
      System.out.println("Boot Login error: "+e);
    } finally {
      bar.dispose();
    }
  }

  public boolean handleEvent(Event event) {
    if (event.id == Event.WINDOW_DESTROY) {
      status("Goodbye.");
      destroy();
      return true;
    }
    return super.handleEvent(event);
  }
  private String status;
  public void status(String message) {
    if (message==null) return;
    try {
      showStatus(message);	// Applet Status Line
      System.out.println(message); // Java Console
    } catch(Exception e) {
      System.out.println("BootApplet.showStatus! "+message+" "+e);
    }
    status = message;
    paint(getGraphics());	// Applet area on webpage
  }
  public void update(Graphics g) {
    paint(g);
  }
  public void paint(Graphics g) {
    Dimension dim  = size();
    if (g==null) return;
    g.setColor(Color.white);
    g.fillRect(0,0, dim.width,dim.height);
    g.setColor(Color.blue);    
    g.drawString(status,10,20);
  }
}
