/*
 * 作成日: 2005/12/28
 *
 * TODO この生成されたファイルのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
package aji;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Text;

/**
 * @author Kazuya
 *
 * TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
public class UserLoginWindow {

	private Singleton instance = Singleton.getInstance();
	private Composite comp;
	private Label label,label2;
	private Text text,text2;
	private Combo sel1,sel2;
	private Image clear;
	private Font font;
	private String str[];
	private String vaildValues;
	private Button button1,button2;
	
	public UserLoginWindow(){
		comp = new Composite(instance.getShell(), SWT.NONE);
		comp.setSize(800,520);
		instance.setComp(comp);
		
	}
	public void visiWin(){

		instance.setbComp(comp);
		instance.setbComps(comp);
		comp.setVisible(false);
	}
	
	public void make_UserLoginWin(){
		
		label = new Label(comp,SWT.NULL);
	    label.setText("ID");
	    label.setBounds(200,22,45,30);
	    label.setBackground(new Color(instance.getDisplay(),255,212,85));
	    
	    text = new Text(instance.getComp(),SWT.SINGLE|SWT.BORDER);
	    text.setBounds(250,20,150,30);
	    for(char i = 'A';i <= 'Z';i++){
			vaildValues += (char)i;
//			System.out.println(i);
		}
		for(char i = 'a';i <= 'z';i++){
			vaildValues += (char)i;
//			System.out.println(i);
		}
		for(char i = '0';i <= '9';i++){
			vaildValues += (char)i;
//			System.out.println(i);
		}
		text.addListener(SWT.Verify,new NumericCheck(vaildValues));
	    text.setFocus();
	    
		label2 = new Label(comp,SWT.NULL);
	    label2.setText("パスワード");
	    label2.setBounds(110,52,120,30);
	    label2.setBackground(new Color(instance.getDisplay(),255,212,85));
	    
	    text2 = new Text(instance.getComp(),SWT.SINGLE|SWT.BORDER);
	    text2.setBounds(250,60,150,30);
	    text2.setTextLimit(16);
	    text2.setEchoChar('*');
		for(char i = 'A';i <= 'Z';i++){
			vaildValues += (char)i;
		}
		for(char i = 'a';i <= 'z';i++){
			vaildValues += (char)i;
		}
		for(char i = '0';i <= '9';i++){
			vaildValues += (char)i;
		}
		text2.addListener(SWT.Verify,new NumericCheck(vaildValues));
		text2.addKeyListener(new KeyListener(){

			public void keyPressed(KeyEvent arg0) {
				// TODO 自動生成されたメソッド・スタブ
				
			}

			public void keyReleased(KeyEvent arg0) {
				// TODO 自動生成されたメソッド・スタブ
				if(arg0.keyCode == SWT.SHIFT){
					System.out.println("shiftを押すと夢の世界へ");
					try{
						str = new String[2];
						if(!text.getText().equals("") && !text2.getText().equals("") ){
							MyPac mp=new MyPac();
							
							System.out.println("");
							System.out.println("UID## 			" + (str[0] = text.getText()));
							System.out.println("pass## 			" + (str[1] = text2.getText()));

							mp.setObj(str);
							//mp.setEndFlg(1);//終了フラグいれてみる
							mp.setFlag(63);//フラグ
							
							System.out.println("###1st送信中###");
							instance.getOos().writeObject(mp);
							instance.getOos().flush();
							mp = null;
							
							System.out.println("###送信終了###");
							
							try{
								
								MyPac myp2;
								System.out.println("ログイン1");
								myp2 = (MyPac)instance.getOis().readObject();
								System.out.println("ログイン2:"+myp2.getObj());
								MessageBox mes = new MessageBox(instance.getShell(),SWT.OK);
								
								if(myp2.getFlg() == 917){
									System.out.println("ログイン失敗");
									mes.setText("NO");
									mes.setMessage((String)myp2.getObj());
									mes.open();
									
								}else if(myp2.getFlg() == 163){							
									System.out.println("ログイン成功");
									mes.setText("OK");
									mes.setMessage((String)myp2.getObj());
									mes.open();
									visiWin();
									try{
										instance.setUserDate(text.getText());
										instance.setUserFlg(true);
										instance.getBaseWin().addFavorite();
										new MainWin().make_Win();
										
									}catch(Exception ee){}
								
								}/*else if(myp2.getFlg() == 917){
									mes.setText("");
									mes.setMessage((String)myp2.getObj());
									mes.open();
									
								}*/
								
							}catch(Exception ee){
								ee.printStackTrace();
								System.out.println("ユーザーログイン失敗");
							}
						
						
						}else{
							String msg = "";
							if(text.getText().equals(""))
								msg += "・ＩＤが入力されていません！\n";
							if(text2.getText().equals(""))
								msg += "・パスワードが入力されていません！";
						
							MessageBox mes = new MessageBox(instance.getShell(),SWT.OK);
							mes.setText("エラー");
							mes.setMessage(msg);
							mes.open();
						}
						}catch(Exception exc){
							exc.printStackTrace();
						}
						try{
						instance.getOos().reset();
						}catch(Exception ee){}
				}
			}
			
		});
//	    text2.addMouseListener()
////Font		    
	    font = new Font(instance.getDisplay(),"ＭＳ ゴシック",16,SWT.BOLD);
	    label.setFont(font);
	    label2.setFont(font);
	    text.setFont(font);
	    text2.setFont(font);

////
	    
	    
        button2 = new Button(comp, SWT.PUSH);
        button2.setBounds(450,40,100,50);
        button2.setText("クリア");
        clear = new Image(instance.getDisplay(), "./sozai/clear.jpg");
        button2.setImage(clear);
        
        button2.addSelectionListener(new SelectionListener(){ 	  	
			public void widgetSelected(SelectionEvent arg0) {
				text.setText("");
				text2.setText("");
			}

			public void widgetDefaultSelected(SelectionEvent arg0) {
				// TODO 自動生成したメソッド・スタブ
				
			}
        });

        button1 = new Button(comp,SWT.FLAT);
        button1.setBounds(150,200,500,200);
        button1.setFont(font);
//        button1.setText("接続");
        Image img = new Image(instance.getDisplay(),"./sozai/Login.bmp");
        button1.setImage(img);
        
        button1.addSelectionListener(new SelectionAdapter(){
			public void widgetSelected(SelectionEvent e){
				try{
				str = new String[2];
				if(!text.getText().equals("") && !text2.getText().equals("") ){
					MyPac mp=new MyPac();
					
					System.out.println("");
					System.out.println("UID## 			" + (str[0] = text.getText()));
					System.out.println("pass## 			" + (str[1] = text2.getText()));

					mp.setObj(str);
					//mp.setEndFlg(1);//終了フラグいれてみる
					mp.setFlag(63);//フラグ
					
					System.out.println("###1st送信中###");
					instance.getOos().writeObject(mp);
					instance.getOos().flush();
					mp = null;
					
					System.out.println("###送信終了###");
					
					try{
						
						MyPac myp2;
						System.out.println("ログイン1");
						myp2 = (MyPac)instance.getOis().readObject();
						System.out.println("ログイン2:"+myp2.getObj());
						MessageBox mes = new MessageBox(instance.getShell(),SWT.OK);
						
						if(myp2.getFlg() == 917){
							System.out.println("ログイン失敗");
							mes.setText("NO");
							mes.setMessage((String)myp2.getObj());
							mes.open();
							
						}else if(myp2.getFlg() == 163){							
							System.out.println("ログイン成功");
							mes.setText("OK");
							mes.setMessage((String)myp2.getObj());
							mes.open();
							visiWin();
							try{
								instance.setUserDate(text.getText());
								instance.setUserFlg(true);
								instance.getBaseWin().addFavorite();
								new MainWin().make_Win();
								
							}catch(Exception ee){}
						
						}/*else if(myp2.getFlg() == 917){
							mes.setText("");
							mes.setMessage((String)myp2.getObj());
							mes.open();
							
						}*/
						
					}catch(Exception ee){
						ee.printStackTrace();
						System.out.println("ユーザーログイン失敗");
					}
				
				
				}else{
					String msg = "";
					if(text.getText().equals(""))
						msg += "・ＩＤが入力されていません！\n";
					if(text2.getText().equals(""))
						msg += "・パスワードが入力されていません！";
				
					MessageBox mes = new MessageBox(instance.getShell(),SWT.OK);
					mes.setText("エラー");
					mes.setMessage(msg);
					mes.open();
				}
				}catch(Exception exc){
					exc.printStackTrace();
				}
				try{
				instance.getOos().reset();
				}catch(Exception ee){}
			}
		});
        
		
		comp.setVisible(true);
	}
}
