package jp.co.cybec.laxide.wizards;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import org.eclipse.jface.viewers.IStructuredSelection;

/**
 * 新規LAXファイル作成ウィザード1クラス.
 * 
 * <p>
 * 新規LAX作成用「ウィザード画面−１」の画面内部を管理するクラスです。<br>
 * ウィザード画面の初期設定、画面入力値のバリデーション処理を保持します。
 * </p>
 * 
 * @author cybec
 */
public class LetsAjaxNewWizardPage extends LetsAjaxWizardNewFileCreationPage {

	/** ページID */
	public static final String PAGE_ID = "Wizard.NewWizardPage";

	/**
	 * コンストラクタ.
	 * 
	 * @param pageName
	 * @param selection
	 */
	public LetsAjaxNewWizardPage( String pageName, IStructuredSelection selection ) {

		super( pageName, selection, LetsAjaxWizardNewFileCreationPage.WIZARD_TYPE_NEWFILE );
	}

	/**
	 * 新規作成するファイルの内容を作成します.
	 */
	protected InputStream getInitialContents() {

		try {

			// 作成するLAXファイルの内容を作成
			StringBuffer sb = new StringBuffer();
			sb.append( "テストLAXファイルです。" );

			return new ByteArrayInputStream( sb.toString().getBytes() );

		} catch ( Exception ex ) {
			ex.printStackTrace();
		}

		return null;
	}

	/**
	 * 入力値のバリデーション.
	 */
	protected boolean validatePage() {

		boolean valid = super.validatePage();

		if ( valid ) {

			// 拡張子はlaxのみ許可
			if ( !getFileName().endsWith( ".lax" ) ) {
				setMessage( "拡張子がlaxではありません。", org.eclipse.jface.dialogs.IMessageProvider.ERROR );
				return false;
			}

		}

		return valid;
	}
}