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

import java.io.File;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Hashtable;
import java.util.LinkedList;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;


/**
 * @author yuu_s
 *
 * TODO この生成された型コメントのテンプレートを変更するには次を参照。
 * ウィンドウ ＞ 設定 ＞ Java ＞ コード・スタイル ＞ コード・テンプレート
 * 
 ** 使い方 **
 * 	Singletonを使用する各クラスに、
 * 		Singleton instance = Singleton.getInstance();
 * 	を追加し、
 * 		instance.get〜()
 *  でもってそれぞれのinstanceをゲットする。
 *
 *  Singletonには、実体をひとつ生成すればよいオブジェクトを格納する
 */
public class Singleton {
	private static Singleton instance = new Singleton();
	
	private boolean boot = false;
	private Shell shell;
	private Display display;
	private StatusBar bar;
	private ObjectOutputStream oos;
	private ObjectInputStream ois;
	private Socket sc;
	private Composite comp;
	private Composite bcomp;
	private Composite bcomps[];
	private MyPac mp,up;
	private String UserDate;
	private File file;
	private LinkedList ll = null;
	private Hashtable ht = null;
	private int bCompCnt;
	private boolean hantei,judge;
	private Font font;
	private BaseWin bw;
	
	/**コンストラクタ*/
	private Singleton(){
		ll = new LinkedList();
		ht = new Hashtable();
		bCompCnt = 0;
	}
	public void setJudge(){
		judge = true;
	}
	public boolean getJudge(){
		return judge;
	}
	public LinkedList getLinkedList(){
		return ll;
	}
	public void setFile(File file){
		this.file = file;
	}
	public File getFile(){
		return file;
	}
	public void setMyPac(MyPac mp){
		this.mp = mp;
	}
	public MyPac getMyPac(){
		return mp;
	}
	/**現在のCompositeを記憶する*/
	public void setComp(Composite comp){
		this.comp = comp;
		Color col = new Color(instance.getDisplay(), 255,212,85);
	    comp.setBackground(col);
	}
	/**現在のCompositeを返す*/
	public Composite getComp(){
		return comp;
	}
//---前に戻る系
	/**配列に前の画面のCompositeを記憶させていく*/
	public void setbComps(Composite comp){
		this.bcomps[bCompCnt++] = comp;
	}
	public Composite getbComps(){
		return bcomps[bCompCnt];
	}
	public void decbCompCnt(){
		if(bCompCnt != 0)
			--bCompCnt;
	}
	public void initializeComps(){
		bcomps = new Composite[100];
		bCompCnt = 0;
	}
//---ココまで
	/**一つ前の戻る用*/
	public void setbComp(Composite comp){
		this.bcomp = comp;
	}
	public Composite getbComp(){
		return bcomp;
	}
	/**Socket記憶用*/
	public void setSoc(Socket sc){
		this.sc = sc;
	}
	public Socket getSoc(){
		return sc;
	}
	/**ObjectOutputStreamをセット*/
	public void setOos(ObjectOutputStream oos){
		this.oos = oos;
	}
	/**ObjectOutputStreamをゲット*/	
	public ObjectOutputStream getOos(){
		return oos;
	}
	/**ObjectInputStreamをセット*/	
	public void setOis(ObjectInputStream ois){
		this.ois = ois;
	}
	/**ObjectInputStreamをゲット*/	
	public ObjectInputStream getOis(){
		return ois;
	}
	/**Shellセット*/
	public void setShell(Shell shell){
		this.shell = shell;
	}
	/**Shellゲット*/
	public Shell getShell(){
		return shell;
	}
	/**Displayセット*/
	public void setDisplay(Display dis){
		this.display = dis;
	}
	/**Displayゲット*/
	public Display getDisplay(){
		return display;
	}
	/**StatusBarセット*/
	public void setStatusBar(StatusBar bar){
		this.bar = bar;
	}
	/**StatusBarゲット*/
	public StatusBar getStatusBar(){
		return bar;
	}
	/**Singletonゲット*/
	public static Singleton getInstance(){
		return instance;
	}
	public Hashtable getHashtable(){
		return ht;
	}
	/**ユーザーのIDを保存**/
	public void setUserDate(String UserDate){
		this.UserDate = UserDate;
	}
	public String getUserDate(){
		return UserDate;
	}
	public void setUserFlg(boolean hantei){
		this.hantei = hantei;
	}
	public boolean getUserFlg(){
		return hantei;
	}
	public Font getFont(){
		font = new Font(instance.getDisplay(),"ＭＳ ゴシック",20,SWT.BOLD);
		return font;
	}
	public void setBaseWin(BaseWin bs){
		this.bw = bs;
	}
	public BaseWin getBaseWin(){
		return bw;
	}
}
