import com.nttdocomo.ui.*;


//------------------------------------------------  
//リモートデスクトップの認証と画面を作成するクラス 
//------------------------------------------------
class AuthPanel extends Panel implements ComponentListener,SoftKeyListener{
Label label=new Label ("<認証待ち>");//認証の状態を表示するラベル
Button button=new Button ("<接続>");//id と pass をサーバーに送信ボタン
TextBox id=new TextBox("id",30,1,TextBox.DISPLAY_ANY);//IDを入力するテキストボックス
TextBox pass=new TextBox("pass",30,1,TextBox.DISPLAY_ANY);//PASSを入力するテキストボックス
Remote parent;//親クラスの格納用
int key=0;//認証フラグ
int flag=0;//認証失敗フラグ

//----------------------------------------------
//親クラスを登録し、コンポーネントをレイアウト//
//----------------------------------------------
	AuthPanel(Remote pparent){
		int x=getWidth();//携帯画面の大きさを取得
		int y=getHeight();//携帯画面の大きさを取得
		int x_x=0;//始点座標
		int y_y=0;//始点座標
		setSoftLabel(SOFT_KEY_1,"終了");
		setLayoutManager(null);//レイアウトマネジャの機能をオフにして、絶対指定に設定
		label.setLocation(x_x,y/2-label.getHeight()/2);//ラベルの位置の設定
		id.setLocation(x_x,y_y);//idの位置の設定
		pass.setLocation(x_x,y_y+30);//passの位置の設定
		button.setLocation(x_x,y_y+30*2);//ボタンの位置の設定
		parent=pparent;//親クラス登録
		setComponentListener(this);//コンポーネントのリスナーの登録
		setSoftKeyListener(this);//キーのリスナーの登録
		setTitle("認証画面");//各種コンポーネント登録
		add(id);
		add(pass);
		add(label);
		add(button);
		Display.setCurrent(this);//画面に表示
	}

//----------------------------------------------
//コンポーネントのイベント		      //
//----------------------------------------------
	public void componentAction(Component source,int type,int param){
	if(key==0){
		if(type==BUTTON_PRESSED){//もしボタンが押されたなら TRUE
		label.setText("<<<認証中>>>");//ラベルに新しく設定
			if(source==button){
			HttpAcess Auth=new HttpAcess();//ネットワーク
			Auth.send(id.getText()+"&"+pass.getText(),"act.cgi");//認証開始
			String auth=Auth.receive("dataW.dat");//認証データ取得
				if(auth.equals("0000")){//認証できていれば　TRUE
				key=1;//認証フラグを立てる
				label.setText("<<<認証成功：接続開始>>>");//ラベルに新しくセット				
				}else{
				label.setText("<<<認証失敗>>>");
				flag=1;//認証が失敗したので失敗フラグを立てる
				}
			}
		}
		if(type==TEXT_CHANGED){//テキストが変更された時に反応
			if(flag==1){//失敗フラグがたっていれば　TRUE
			label.setText("<<<再認証>>>");//ラベルにセット
			flag=0;//失敗フラグを戻す
			}
		}
	}else{
	label.setText("<<<接続中なので動かさないでください>>>");//ラベルにセット
	}
	}

//----------------------------------------------
//キーが押された時のイベント		      //
//----------------------------------------------
	public void softKeyPressed(int softKey){
	}
//----------------------------------------------
//キーが離された時のイベント		      //
//----------------------------------------------
	public void softKeyReleased(int softKey){
	if(softKey==SOFT_KEY_1)parent.terminate();
	}
}
