/* ControlPanel class */
package ciips.animation;
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.net.*;
import java.util.*;
/**
 * This class extends the java.awt.Panel class to form
 * a panel which holds the buttons that control
 * the animation of the algorithm.
 * 
 * In this particular application, it only consists of four image buttons,
 * namely, run, stop, step, and skip.
 *
 * @see Panel
 */
public class ControlPanel extends Panel {
		private AlgAnimFrame frame;
		private Button control_buttons[];
		private Button runButton; 
		private Button stopButton;
		private Button stepButton, skipButton;
		private Font font;
		private static final String[] button_names = {
					"stop", "run", "step", "skip" };
		private static final int STOP_BTN = 0;
		private static final int RUN_BTN = 1;
		private static final int STEP_BTN = 2;
		private static final int SKIP_BTN = 3;
		/**
		 * Creates a panel to hold the control buttons of the animation
		 * tool.
		 * @param frame The parent window frame that contains this panel
		 * @param algname The algorithm name parsed from the applet parameter
		 */
		public ControlPanel(AlgAnimFrame frame, String algname) {
			setLayout( new FlowLayout(FlowLayout.LEFT) );
			this.frame = frame;
			final Font helv10 = frame.helv10;
			setBackground(Color.white);
			control_buttons = new Button[ button_names.length ];
			for( int k=0;kjava.awt.Button
		 * @return Run button to initiate the animation of the algorithm.
		 */
	public Button getRunButton() {
		return control_buttons[RUN_BTN];
		}
		/**
		 * Returns an instance of the stop ImageButton, which is
		 * cast to java.awt.Button
		 * @return Stop button to terminate the execution of algorithm.
		 */
	public Button getStopButton() {
		return control_buttons[STOP_BTN];
		}
		/**
		 * Returns an instance of the step ImageButton, which is
		 * casted to java.awt.Button
		 * @return Step button to trace through the execution of the algorithm.
		 * If the Run button has already been pressed, the
		 * execution mode will be switched from RUN to
		 * STEP.
		 */
	public Button getStepButton() {
		return control_buttons[STEP_BTN];
		}
		/**
		 * Returns an instance of the skip ImageButton, which is
		 * casted to java.awt.Button
		 * @return Skip button to bypass the animation of the algorithm.
		 */
		public Button getSkipButton() {
			return control_buttons[SKIP_BTN];
		}
} // class ControlPanel