/********************************************
 * File
 * ~caviness/Class/CISC367/exer-solutions/TrafficLightThreads/soln2/PedestrianLight.java
 ********************************************/

import java.awt.*;

public class PedestrianLight extends Canvas
{
   /************************
    * Class variables
    ************************/  
 static Font messageFont = new Font("TimesRoman", Font.BOLD, 24);
 static int en,
            fontAscent,
            fontDescent;
 static                         // Initialize class variables
 {
  FontMetrics f = Toolkit.getDefaultToolkit().getFontMetrics(messageFont);
  en = f.charWidth('n');
  fontAscent = f.getAscent();
  fontDescent = f.getDescent();
 }
/*********************************************
  * Instance variables
  ********************************************/
 String message;
 int messageWidth;
 
/********************************************
 * Constructor
 ********************************************/
 
 public PedestrianLight (String s) {
  System.out.println("Entering PedestrianLight constructor");
  setMsg( s );
 }
/*******************************************
 * Instance methods
 *******************************************/
 
 public void setMsg( String msg )
 {
    message = msg;
    FontMetrics f = getFontMetrics(messageFont);
    messageWidth = f.stringWidth(message);
    repaint();
 }
 
/*******************************************/
 public void paint(Graphics g) {
   System.out.println("Painting pedestrian light again");
   Dimension d = size();
   g.drawRect(0,0,d.width-1,d.height-1);
   g.setFont(messageFont);
   Point p = new Point( (d.width - messageWidth)/2, 
                        (d.height + fontAscent - fontDescent)/2);
   g.drawString(message, p.x, p.y);
 }
 
/*******************************************/
 public Dimension minimumSize() {return new Dimension(200, 50);}
 
 public Dimension preferredSize() {return new Dimension(200, 50);}
}
