/*
 * File: StoplightGraphics.java
 * ----------------------------
 * This program illustrates the construction of a simple GUI using a
 * GraphicsProgram as the main class.
 */

import acm.program.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * This class displays four buttons at the south edge of the window.
 * Pressing a button lights the indicated lamp in the stoplight or
 * advances the stoplight to its next configuration.
 */

public class StoplightGraphics extends GraphicsProgram {

/** Initialize the buttons and create the stoplight */
	public void init() {
		add(new JButton("Green"), SOUTH);
		add(new JButton("Yellow"), SOUTH);
		add(new JButton("Red"), SOUTH);
		add(new JButton("Advance"), SOUTH);
		signal = new Stoplight();
		add(signal, getWidth() / 2, getHeight() / 2);
		addActionListeners();
	}

/** Listen for a button action */
	public void actionPerformed(ActionEvent e) {
		String command = e.getActionCommand();
		if (command.equals("Advance")) {
			signal.advance();
		} else if (command.equals("Green")) {
			signal.setState(Stoplight.GREEN);
		} else if (command.equals("Yellow")) {
			signal.setState(Stoplight.YELLOW);
		} else if (command.equals("Red")) {
			signal.setState(Stoplight.RED);
		}
	}

/* Private instance variables */
	private Stoplight signal;

/** Set the program dimensions */
	public static final int APPLICATION_WIDTH = 350;
	public static final int APPLICATION_HEIGHT = 250;

/* Standard Java entry point */
/* This method can be eliminated in most Java environments */
	public static void main(String[] args) {
		new StoplightGraphics().start(args);
	}
}
