
//*****************************************************//
//*                                                   *//
//*迷路コントロールパネル DEVELOPMENT DATE: 2005/ 4/ 2*//
//*                                                   *//
//*****************************************************//

//**************************************//
//*このプログラムで使うパッケージの宣言*//
//**************************************//
import java.awt.*;
import java.awt.event.*;

//**************************************//
//*   コントロールパネルの作成・設定   *//
//**************************************//

public class ControlPanel extends Frame implements ActionListener,ItemListener{
	private Label label1;
	private Label label2;
	private Button btn1; 											//"DRAW"ボタン生成の準備
	private Button btn2; 											//"SEARCH"ボタン生成の準備
	private Button btn3;											//"CLEAR"ボタン生成の準備
	private Panel panel1;
	private Panel panel2;
	private CheckboxGroup group1;
	private CheckboxGroup group2;
	private Checkbox cb1;
	private Checkbox cb2;
	private Checkbox cb3;
	private Checkbox cb4;
	private Checkbox cb5;
	meiro_1 m1;														//meiro_1インスタンス変数の宣言
	public ControlPanel(meiro_1 m1,String name){
		this.m1 = m1;												//インスタンス変数のセット
		this.setTitle(name);										//タイトルバーの名前の設定
		this.setLocation(300,100);									//コントロールパネルの配置位置の設定
		this.setSize(370,200);										//コントロールパネルのサイズの設定
		this.setBackground(Color.GRAY);								//コントロールパネルの背景色の設定
		this.setLayout(new FlowLayout(FlowLayout.CENTER,15,15));	    //コントロールパネルのレイアウトの設定
		Font textfont = new Font("SanSerif",Font.PLAIN,18);			//コントロールパネルのフォントの設定
		btn1 = new Button("DRAW");									//"DRAW"ボタン生成
		btn2 = new Button("SEARCH");								//"SEARCH"ボタン生成
		btn3 = new Button("CLEAR");									//"CLEAR"ボタン生成
		btn1.setFont(textfont);										//"DRAW"ボタンの文字のフォントに先程指定したフォントを採用
		btn2.setFont(textfont);										//"SEARCH"ボタンの文字のフォントに先程指定したフォントを採用
		btn3.setFont(textfont);										//"CLEAR"ボタンの文字のフォントに先程指定したフォントを採用
		this.add(btn1);												//"DRAW"ボタンをコントロールパネルに追加
		this.add(btn2);												//"SEARCH"ボタンをコントロールパネルに追加
		this.add(btn3);												//"CLEAR"ボタンをコントロールパネルに追加
		btn1.addActionListener(this);								//"DRAW"ボタンにaddActionListenerを追加し、ボタンクリックを有効にする。
		btn2.addActionListener(this);								//"SEARCH"ボタンにaddActionListenerを追加し、ボタンクリックを有効にする
		btn3.addActionListener(this);								//"CLEAR"ボタンにaddActionListenerを追加し、ボタンクリックを有効にする
		btn1.enable();
		btn2.disable();												//"SEARCH"ボタンのActionListenerを一時的に無効にする。
		btn3.disable();												//"CLEAR"ボタンのActionListenerを一時的に無効にする。
		label1 = new Label("壁の表示色");
		label1.setFont(new Font("SanSerif",Font.PLAIN,14));
		this.add(label1,BorderLayout.CENTER);
		panel1 = new Panel();
		panel1.setBackground(Color.GRAY);
		group1 = new CheckboxGroup();
		cb1 = new Checkbox("BLACK",true,group1);
		cb2 = new Checkbox("RED",false,group1);
		cb3 = new Checkbox("BLUE",false,group1);
		cb1.setFont(new Font("SanSerif",Font.PLAIN,14));
		cb2.setFont(new Font("SanSerif",Font.PLAIN,14));
		cb3.setFont(new Font("SanSerif",Font.PLAIN,14));
		panel1.add(cb1);
		panel1.add(cb2);
		panel1.add(cb3);
		this.add(panel1,BorderLayout.CENTER);
		cb1.addItemListener(this);
		cb2.addItemListener(this);
		cb3.addItemListener(this);
		label2 = new Label("アニメーション　　");
		label2.setFont(new Font("SanSerif",Font.PLAIN,14));
		this.add(label2,BorderLayout.CENTER);
		panel2 = new Panel();
		panel2.setBackground(Color.GRAY);
		group2 = new CheckboxGroup();
		cb4 = new Checkbox("有　",false,group2);
		cb5 = new Checkbox("無　　　　",true,group2);
		cb4.setFont(new Font("SanSerif",Font.PLAIN,14));
		cb5.setFont(new Font("SanSerif",Font.PLAIN,14));
		panel2.add(cb4);
		panel2.add(cb5);
		this.add(panel2,BorderLayout.CENTER);
		cb4.addItemListener(this);
		cb5.addItemListener(this);
		this.show();												//コントロールパネルを表示させる
	}
	public void actionPerformed(ActionEvent ae){					//ボタンがクリックされた時の処理
		String color = ae.getActionCommand();						  //クリックされたボタンにつけられた名前を取得する。
		if(color.equals("DRAW")){									  //"DRAW"ボタンが押された時	
			m1.getMap();											    //meiro_1.javaのgetMap()を呼び出す。
			btn1.disable();											    //"DRAW"ボタンのActionListenerを一時的に無効にする。
			btn2.enable();											    //"SEARCH"ボタンのActionListenerを有効にする。
																	  //
		}else{
			if(color.equals("SEARCH")){								    //"SEARCH"ボタンが押された時
				m1.searchMap();										  	  //meiro_1.javaのsearchMap()を呼び出す。
				btn2.disable();										  	  //"SEARCH"ボタンのActionListenerを一時的に無効にする。
				btn3.enable();											  //"CLEAR"ボタンのActionListenerを有効にする。
																	    //
			}else{													    //"CLEAR"ボタンが押された時
				if(color.equals("CLEAR")){
					m1.clearMap();										      //meiro_1.javaのclearMap()を呼び出す。
					btn1.enable();
					btn3.disable();											  //"CLEAR"ボタンのActionListenerを一時的に無効にする
				}
																	    //
			}
		}
		                                                              //
	}
																	//
	public void itemStateChanged(ItemEvent e){
		if(cb1.getState()){
			m1.KaBecolor = Color.black;
		}else{
			if(cb2.getState()){
				m1.KaBecolor = Color.red;
			}else{
				m1.KaBecolor = Color.blue;
			}
		}
		if(cb4.getState()){
			m1.anim_flag = true;
		}else{
			m1.anim_flag = false;
		}
	}
	
}

			
