/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	検索入力画面表示Actionクラス。
//
//		変更履歴
//			2005.02.16  新規作成  氏名 石崎賢太郎
//			2005.05.26	seart_window_typeパラメタ追加	koji
//
//	機能
//
//	検索入力画面Actionクラスです。
//
/////////////////////////////////////////////////////////////////
package jp.co.ntt.lms.xmf.actions.xmo.Search;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * 検索入力画面Actionクラスです。
 * 
 * @author Kentaro Ishizaki (UNITEC)
 * @version 1.0
 */
public class SearchFrame_ConditionAction extends Action
{
	/**
	 * 学習者の判断用キー文字列定数。
	 */ 
	public final String LEANER = "learner";

	/**
	 * グールプツリーフラグセッションキー文字列定数。
	 */
	public final String GR_TREE_TYPE = "GR_tree_type";
	
	/**
	 * strutsフレームワークから呼ばれるメソッドです。
	 * 
	 * @param mapping マッピングオブジェクト。
	 * @param form アクションフォームオブジェクト。
	 * @param request リクエストオブジェクト。
	 * @param response レスポンスオブジェクト。
	 * @return ActionForward アクションフォワードオブジェクト。
	 * @throws Exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
	{
		///////////////////////////////////////////
		// セッション変数の取得
		// ・userID		ユーザID	必須
		// ・isLeaner	学習者種別	任意
		///////////////////////////////////////////
		String strLearner = (String)request.getSession().getAttribute( LEANER );

		//ロール権限を含んだツリータイプ(tree_view_type)＝"1"かを判断用
		String strGroupTreeType = (String)request.getSession().getAttribute(GR_TREE_TYPE);

		
		///////////////////////////////////////////
		// セッション変数のチェック
		///////////////////////////////////////////
		if( strLearner == null ) {
			request.setAttribute("message", "");
			request.setAttribute("detail", "");
			request.setAttribute("close", "on");
			request.setAttribute("errorurl", "../Com/ComLoginRedirector.vm");
			return mapping.findForward("error");
		}

		////////////////////////////////////////////////////////////////
		// パラメータ取得
		// 	・tree_view_type	ツリータイプ		必須
		// 	・ini_menu			初期メニュー		必須
		////////////////////////////////////////////////////////////////
		String strTreeViewType = request.getParameter("tree_view_type" ); 	// ツリータイプ
		if (strTreeViewType == null)
		{
			strTreeViewType = "";
		}

		String strIniMenu      = request.getParameter( "ini_menu" );		// 初期メニュー
		if (strIniMenu == null)
		{
			strIniMenu = "";
		}

		String strSearchWinType = request.getParameter("search_window_type" );
		if (strSearchWinType == null)
		{
			strSearchWinType = "";
		}

		//G03がカリキュラムを表示している場合、LOのラジオボタンをデフォルトチェックとする
		String strUserChecked = "";
		String strLOChecked = "";
		if (strTreeViewType.equals("2") || strSearchWinType.equals("method"))
		{
			strLOChecked = "checked";
		}
		else
		{
			strUserChecked = "checked";
		}
		
		
		// リクエストに変数をセット
		request.setAttribute("strTreeViewType", strTreeViewType);
		request.setAttribute("strIniMenu", strIniMenu);
		request.setAttribute("strUserChecked", strUserChecked);
		request.setAttribute("strLOChecked", strLOChecked);
		request.setAttribute("strLearner", strLearner);
		request.setAttribute("strGroupTreeType", strGroupTreeType);

		if (strSearchWinType.equals("method"))
		{
			return mapping.findForward("method");
		}
		else
		{
			return mapping.findForward("success");
		}
	}

}
