package com.interpress_project.modernshare.client.view.wizard;

import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;

import com.interpress_project.modernshare.client.controller.model.RootStatus;

/**
 * @stereotype Confirm page
 */
public class RegConfirmPage extends WizardPage {
	private Label lblPath = null;
	private Label lblTagName = null;
	private Label lblActive = null;
	private Label lblPc2host = null;
	private RootStatus status;
	private boolean bPc2host;

	/**
	 * RegConfirmPage
	 */
	public RegConfirmPage() {
		super("RegConfirmPage");

		setTitle("ホットショット・フォルダの登録確認");
		setDescription("以下の内容でホットショット・フォルダを登録します。");
		setPageComplete(true);
	}

	/**
	 * createControl
	 */
	public void createControl(Composite parent) {
		Composite composite = new Composite(parent, SWT.NULL);
		GridLayout layout = new GridLayout();
		composite.setLayout(layout);
		layout.numColumns = 2;
		layout.verticalSpacing = 9;

		new Label(composite, SWT.NONE).setText("ホットショット・フォルダ: ");
		lblPath = new Label(composite, SWT.NONE);
		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
		lblPath.setLayoutData(gd);

		new Label(composite, SWT.NONE).setText("タグ名: ");
		lblTagName = new Label(composite, SWT.NONE);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		lblTagName.setLayoutData(gd);

		new Label(composite, SWT.NONE).setText("監視状況:  ");
		lblActive = new Label(composite, SWT.NONE);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		lblActive.setLayoutData(gd);

		new Label(composite, SWT.NONE).setText("同期ポリシー: ");
		lblPc2host = new Label(composite, SWT.NONE);
		gd = new GridData(GridData.FILL_HORIZONTAL);
		lblPc2host.setLayoutData(gd);

		setControl(composite);
	}

	/**
	 * setPath
	 * @param path String
	 */
	public void setPath(String path) {
		lblPath.setText(path);
	}

	/**
	 * getPath
	 * @return
	 */
	public String getPath() {
		return lblPath.getText();
	}

	/**
	 * setTagName
	 * @param name
	 */
	public void setTagName(String name) {
		lblTagName.setText(name);
	}

	/**
	 * getTagName
	 * @return
	 */
	public String getTagName() {
		return lblTagName.getText();
	}

	/**
	 * setStatus
	 * @param status
	 */
	public void setStatus(RootStatus status) {
		this.status = status;
		switch (status) {
			case active:
				lblActive.setText("有効");
				lblActive.setToolTipText("ホットショット・フォルダはプロパティで指定された周期に従ってデータセンタ間で自動同期されます。");
				break;

			case deactive:
			case disable:
				lblActive.setText("無効");
				lblActive.setToolTipText("ホットショット・フォルダに対する自動更新は行われません。手動でデータセンタとの同期を行う必要があります。");
				break;
		}
	}

	/**
	 * getStatus
	 * @return
	 */
	public RootStatus getStatus() {
		return status;
	}

	/**
	 * setPc2host
	 * @param b
	 */
	public void setPc2host(boolean b) {
		this.bPc2host = b;
		if (b) {
			lblPc2host.setText("ホットショットフォルダの内容でデータセンタを更新");
			lblPc2host.setToolTipText("常にホットショット・フォルダに格納されたデータを、データセンタへ更新します。");
		}
		else {
			lblPc2host.setText("データセンタの内容でホットショットフォルダを更新");
			lblPc2host.setToolTipText("常にデータセンタに格納されるデータでホットショット・フォルダを更新します。ホットショット・フォルダを読込専用の共有にする場合に便利です。");
		}
	}

	/**
	 * getPc2host
	 * @return
	 */
	public boolean getPc2host() {
		return bPc2host;
	}
}
