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

import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;

import com.interpress_project.modernshare.AppKeys;

public class PreferenceClient extends FieldEditorPreferencePage {
	/**
	 * PreferenceClient
	 */
	protected PreferenceClient() {
		super(GRID);

		setTitle("クライアント設定");
		setDescription("HotShot Clientに関する情報を設定します。");
	}

	/**
	 * createFieldEditors
	 */
	@Override
	protected void createFieldEditors() {
		Composite composite = getFieldEditorParent();
		composite = new Composite(composite, SWT.NONE);
		GridLayout layout = new GridLayout();
		composite.setLayout(layout);
		layout.numColumns = 2;
		layout.verticalSpacing = 9;

		LabelFieldEditor sp1 = new LabelFieldEditor("", composite);
		addField(sp1);

		LabelFieldEditor msg1 = new LabelFieldEditor(
			"ホットショット・フォルダ変更検出後、データセンタとの同期が開始されるまでの\n時間を指定します。規定値は3分です。(1-60分)", composite);
		addField(msg1);

		IntegerFieldEditor ifePort = new IntegerFieldEditor(AppKeys.SVN_DURATION, "更新実施時間(分): ", composite);
		ifePort.setTextLimit(1);
		ifePort.setValidRange(1, 60);
		ifePort.setEmptyStringAllowed(false);
		addField(ifePort);

		LabelFieldEditor sp2 = new LabelFieldEditor("", composite);
		addField(sp2);

		LabelFieldEditor msg2 = new LabelFieldEditor("データセンタ・ビューに表示されるリビジョン情報の最大値を指定します。\n"
		    + "推奨値は12です。(12-255)", composite);
		addField(msg2);

		IntegerFieldEditor ifeCache = new IntegerFieldEditor(AppKeys.SVN_MAXCACHE, "リストキャッシュ値: ", composite);
		ifeCache.setTextLimit(3);
		ifeCache.setValidRange(12, 255);
		ifeCache.setEmptyStringAllowed(false);
		addField(ifeCache);

		LabelFieldEditor sp3 = new LabelFieldEditor("", composite);
		addField(sp3);

		LabelFieldEditor msg3 = new LabelFieldEditor("クライアントに対する任意のIDを設定します。\n"
		    + "会社や自宅などPC毎に異なるIDを付けることでホットショットフォルダ情報を\n個別に管理することができます。", composite);
		addField(msg3);

		StringFieldEditor sfeClientId = new StringFieldEditor(AppKeys.CLIENTID, "クライアントID: ", composite);
		sfeClientId.setTextLimit(64);
		sfeClientId.setEmptyStringAllowed(false);
		addField(sfeClientId);
	}
}
