/////////////////////////////////////////////////////////////////
//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_PageControlAction extends Action
{
	/**
	 * ユーザIDのセッションキー文字列。
	 */
	public final String USER_ID = "userId";
	/**
	 * 学習者の判断用キー文字列定数。
	 */ 
	public final String LEANER = "learner";
	
	/**
	 * 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 strUserID = (String)request.getSession().getAttribute( USER_ID );
		String strLearner = (String)request.getSession().getAttribute( LEANER );

		///////////////////////////////////////////
		// セッション変数のチェック
		///////////////////////////////////////////
		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	ツリータイプ		必須
		// 	・searchStr			検索文字列
		// 	・ini_menu			初期メニュー
		/////////////////////////////////////////////////////////////
		String strTreeViewType 	= request.getParameter("tree_view_type");	// tree_view_type
		String strSearch    	= request.getParameter("txtSearch" );		// 検索文字列
		String strSearchType 	= request.getParameter("rdoSearchType");	// 検索対象
		String strIniMenu 		= request.getParameter("ini_menu"); 		// IniMenu
		String strSearchFlg		= request.getParameter("SearchFlg");		// 検索開始フラグ
		String strDisplayRenge	= request.getParameter("DisplayRenge");		// 表示範囲レンジ(1ページに表示する件数)
		String strMaxRecCount	= request.getParameter("MaxRecCount");		// 検索時の最大件数
		String strDisplayFrom	= request.getParameter("DisplayFrom");		// 表示範囲の開始位置
		String strDisplayTo		= request.getParameter("DisplayTo");		// 表示範囲の終了位置
		String strPrevSearchID	= request.getParameter("PrevSearchID");		// 戻るページ用検索条件ID(グループであればグループID)
		String strNextSearchID	= request.getParameter("NextSearchID");		// 次ページ用の検索条件ID(グループであればグループID)
		String strEndPageFlg	= request.getParameter("EndPageFlg");		// 最終ページであればフラグ"END"を立てる。以外は""となる。
		String strEndPageTo		= request.getParameter("EndPageTo");		// 最終ページに表示するToの件数
		String strSearchWinType = request.getParameter("search_window_type" );

		if ( strTreeViewType == null)
		{
			strTreeViewType = "";
		}
		if ( strSearch == null)
		{
			strSearch = "";
		}
		if ( strSearchType == null)
		{
			strSearchType = "";
		}
		if( strIniMenu == null )
		{
			strIniMenu = "";
		}
		if ( strSearchFlg == null)
		{
			strSearchFlg = "";
		}
		if ( strDisplayRenge == null)
		{
			strDisplayRenge = "";
		}
		if ( strMaxRecCount == null)
		{
			strMaxRecCount = "";
		}
		if ( strDisplayFrom == null)
		{
			strDisplayFrom = "";
		}
		if ( strDisplayTo == null)
		{
			strDisplayTo = "";
		}
		if ( strEndPageFlg == null)
		{
			strEndPageFlg = "";
		}
		if ( strEndPageTo == null)
		{
			strEndPageTo = "";
		}
		if (strSearchWinType == null)
		{
			strSearchWinType = "";
		}
		
		// リクエストに変数をセット
		request.setAttribute("strSearchFlg", strSearchFlg);
		request.setAttribute("strSearch", strSearch);
		request.setAttribute("strDisplayRenge", strDisplayRenge);
		request.setAttribute("strMaxRecCount", strMaxRecCount);
		request.setAttribute("strDisplayFrom", strDisplayFrom);
		request.setAttribute("strDisplayTo", strDisplayTo);
		request.setAttribute("strTreeViewType", strTreeViewType);
		request.setAttribute("strIniMenu", strIniMenu);
		request.setAttribute("strSearchType", strSearchType);
		request.setAttribute("strPrevSearchID", strPrevSearchID);
		request.setAttribute("strNextSearchID", strNextSearchID);
		request.setAttribute("strEndPageFlg", strEndPageFlg);
		request.setAttribute("strEndPageTo", strEndPageTo);
		
		if (strSearchWinType.equals("method"))
		{
			return mapping.findForward("method");
		}
		else
		{
			return mapping.findForward("success");
		}
	}

}
