/*
 * 作成日： 2005/11/26
 *
 * TODO この生成されたファイルのテンプレートを変更するには次を参照。
 * ウィンドウ ＞ 設定 ＞ Java ＞ コード・スタイル ＞ コード・テンプレート
 */
package aji;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseTrackListener;
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 yuu_s
 *
 * TODO この生成された型コメントのテンプレートを変更するには次を参照。
 * ウィンドウ ＞ 設定 ＞ Java ＞ コード・スタイル ＞ コード・テンプレート
 */
public class ServerSel {
		private Composite comp;
		private Singleton instance = Singleton.getInstance();
		private Label label,label2;
		private Text text,text2;
		private Combo sel1,sel2;
		private Image clear;
		private Font font;
		
		public ServerSel(){
		}
		public void visiWin(){

			instance.setbComp(comp);
			instance.setbComps(comp);
			comp.setVisible(false);
		}
		public void make_ServerSel(){
			
			comp = new Composite(instance.getShell(), SWT.NONE);
			comp.setSize(800,520);
			instance.getBaseWin().initFavorite();
			
			instance.setUserFlg(false);
			
			instance.setComp(comp);
			
			
			instance.getStatusBar().setText("あじのみちしるべ");
			label = new Label(comp,SWT.NULL);
		    label.setText("接続先:");
		    label.setBounds(240,42,45,20);
		    label.setBackground(new Color(instance.getDisplay(),255,212,85));
		    
		    text = new Text(comp,SWT.SINGLE|SWT.BORDER);
		    text.setBounds(285,40,150,20);
		    text.setText("c2182046");
		    text.setFocus();
		    
			label2 = new Label(comp,SWT.NULL);
		    label2.setText("ポート:");
		    label2.setBounds(250,72,35,20);
		    label2.setBackground(new Color(instance.getDisplay(),255,212,85));
		    
		    text2 = new Text(comp,SWT.SINGLE|SWT.BORDER);
		    text2.setBounds(285,70,150,20);
		    text2.setTextLimit(5);
		    text2.setText("54321");
		    text2.addListener(SWT.Verify,new IntegerCheck());
		    
////Font		    
		    font = new Font(instance.getDisplay(),"ＭＳ ゴシック",16,SWT.BOLD);
		    label.setFont(font);
		    label.setBounds(200,42,75,20);
		    label2.setFont(font);
		    label2.setBounds(200,72,75,20);
		    text.setFont(font);
		    text.setSize(160,27);
		    text2.setFont(font);
		    text2.setSize(160,27);
////    
		    
		    
	        Button 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 自動生成したメソッド・スタブ
					
				}
	        });
	        //Font font = new Font(instance.getDisplay(),"ＭＳ ゴシック",64,SWT.BOLD);

	        Button button1 = new Button(comp,SWT.FLAT);
	        button1.setBounds(150,200,500,200);
	        button1.setFont(font);
//	        button1.setText("接続|￣з￣)ゝ”");
	        Image img = new Image(instance.getDisplay(),"./sozai/Connection.bmp");
	        button1.setImage(img);
	        instance.getLinkedList().add(img);
	        
	        button1.addSelectionListener(new SelectionListener(){ 	  	
				public void widgetSelected(SelectionEvent arg0) {
					// TODO 自動生成されたメソッド・スタブ
					int flg = 0;
					instance.getStatusBar().setText("サーバに接続CHU....");
					try{
						Socket sc = new Socket(text.getText(),Integer.parseInt(text2.getText()));
						instance.setSoc(sc);
						instance.setOis(new ObjectInputStream(new BufferedInputStream(sc.getInputStream())));
					/**このReadは必須！！！！*/
						System.out.println(instance.getOis().readObject());
						instance.setOos(new ObjectOutputStream(new BufferedOutputStream(sc.getOutputStream())));
					}catch(UnknownHostException ue){
						instance.getStatusBar().setText("サーバに接続できませんでした＿|￣|○");
						MessageBox mes = new MessageBox(instance.getShell(), SWT.OK|SWT.ICON_ERROR|SWT.CLOSE);
			            mes.setText("サーバに接続できませんでした");
			            mes.setMessage("接続先が見つかりません。\n接続先をもう一度確認してください。");
			            if(mes.open()!=SWT.CANCEL){
			            	try{
			            		//instance.getShell().dispose();  // このアイテムが選択されたらウィンドウを閉じる
			            		flg = 1;
			    
			            	}catch(Exception ee){
			            		//System.exit(0);
			            	}
			           	}
					}catch(Exception e){
						
//						e.printStackTrace();
						instance.getStatusBar().setText("サーバに接続できませんでした＿|￣|○");
						MessageBox mes = new MessageBox(instance.getShell(), SWT.OK|SWT.ICON_ERROR|SWT.CLOSE);
			            mes.setText("サーバに接続できませんでした。");
			            mes.setMessage("サーバに接続できませんでした。");
			            if(mes.open()!=SWT.CANCEL){
			            	try{
			            		//instance.getShell().dispose();  // このアイテムが選択されたらウィンドウを閉じる
			            		flg = 1;
			    
			            	}catch(Exception ee){
			            		//System.exit(0);
			            	}
			           	}
					}
					if(flg ==0){
					instance.getStatusBar().setText("接続完了！( 'д)ﾋｿ('д`)ﾋｿ(д` )");
					visiWin();
//					IsConnect is = new IsConnect();
//					is.start();
					
//					try{
//					new MainWin().make_Win();
//					}catch(Exception e){}
					
					
					new UpdateMaterial().make_Win();
					instance.setJudge();
					new StartWindow().make_StartWin();
					if(!instance.getJudge()){
						ResidenceThread rt = new ResidenceThread();
						rt.start();
					}
					}
					
				}

				public void widgetDefaultSelected(SelectionEvent arg0) {
					// TODO 自動生成されたメソッド・スタブ
					
				}
	        });
	        button1.addMouseTrackListener(new MouseTrackListener(){

				public void mouseEnter(MouseEvent arg0) {
					// TODO 自動生成されたメソッド・スタブ
					instance.getStatusBar().setText("サーバに接続します。");
					
				}

				public void mouseExit(MouseEvent arg0) {
					// TODO 自動生成されたメソッド・スタブ
					instance.getStatusBar().setText("味のみちしるべ");
					
				}

				public void mouseHover(MouseEvent arg0) {
					// TODO 自動生成されたメソッド・スタブ
					
				}
	        	
	        });
	        button1.setToolTipText("さーばに接続！");
	//        button1.setFocus();
	        
	        button1.setFocus();
	        comp.setVisible(true);
	    }
}
