/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	GetMenuAction.java(ポップアップメニュー情報作成)
//
//		変更履歴
//			2005.01.31  新規作成  OGA
//
//	機能
//
//	個別ログ参照画面のポップアップメニュー情報を作成します
//
/////////////////////////////////////////////////////////////////
/*
 * 作成日: 2005/02/18
 *
 * TODO この生成されたファイルのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
package jp.co.ntt.lms.xmf.actions.lo.scorm.individuallog;

import java.util.StringTokenizer;
import java.util.Vector;

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

import jp.co.ntt.lms.lo.scorm.ScormLoEnv;
import jp.co.ntt.lms.xmf.xms.common.constant;
import jp.co.ntt.lms.xms.framework.Constant;

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

/**
 * @author Administrator
 *
 * TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
public class GetMenuAction extends Action{

		public ActionForward execute(ActionMapping mapping, ActionForm form,
				HttpServletRequest request, HttpServletResponse response)
				throws Exception {

			
			////////////////////////////////////////////////////////////////
			// パラメータ取得
			// 	・loID			loID								必須
			// 	・structType	教材構造タイプ(セクションorAU）		必須
			// 	・auID			表示ツリーパス						必須
			// 	・selectID		G03で選択されたグループorユーザID	必須
			// 	・loType		G03で選択されたLoType(固定)			必須
			////////////////////////////////////////////////////////////////
			
			String strLoID		= request.getParameter( "loID" );
			String strStType	= request.getParameter( "structType" );
			String strAuID		= request.getParameter( "auID" );
			String strUserID	= request.getParameter( "selectID" );
			String strLoType	= request.getParameter( "loType" );

			// 取得したパスから、LOIDのみを取得
			StringTokenizer objToken = new StringTokenizer( strLoID, "/" );
			if ( objToken.hasMoreTokens() ) {
				strLoID = objToken.nextToken();
			}

			///////////////////////////////////////////
			// パラメータチェック
			///////////////////////////////////////////
			if( strLoID == null || strStType == null || strUserID == null ||
				strAuID == null || strLoType == null) {
				request.setAttribute("message", "PARAMERR");
				request.setAttribute("detail", "");
				request.setAttribute("close", "on");

				return mapping.findForward("error");
			}

			String strMenuUrl = "&userId=" + strUserID + "&LoID=" + strLoID + "&LoType=" + strLoType + "&UID=" + strAuID ;
			String strMenuUrl2 = "?userId=" + strUserID + "&LoID=" + strLoID + "&LoType=" + strLoType + "&UID=" + strAuID ;

			try{

				Vector vecWork = null;

				// フレームワークサーブレットへのリザルトコード

				// 進捗状況一覧（ユーザ指定）
				String strProgressUser =
					ScormLoEnv.PROGRESSSTATUS + "$" + Constant.ALIAS_SERVLET
						+ "?action_id=ScormUserProgressStatus" + strMenuUrl+ "$_blank;";

				// 進捗状況一覧（グループ指定）
				String strProgressGroup =
					ScormLoEnv.PROGRESSSTATUS + "$" + Constant.ALIAS_SERVLET
						+ "?action_id=ScormGroupProgressStatus" + strMenuUrl+ "$_blank;";
				// 演習回答状況（ユーザ指定）
				String strReplyUser =
					ScormLoEnv.REPLYSTATUS + "$" + constant.RESOURCE_ROOT + "/view/lo/scorm/individuallog/UserReplyStatus.do"
						+ strMenuUrl2 + "$_blank;";
				// 演習回答状況（グループ指定）
				String strReplyGroup =
					ScormLoEnv.REPLYSTATUS + "$" + constant.RESOURCE_ROOT + "/view/lo/scorm/individuallog/GroupReplyStatus.do"
						+ strMenuUrl2 + "$_blank;";
				// 演習成績分析
				String strResultAnalysis =
					ScormLoEnv.RESULT_ANALYSIS + "$" + constant.RESOURCE_ROOT + "/view/lo/scorm/individuallog/ResultAnalysis.do"
						+ strMenuUrl2+ "$_blank;";
				// ＣＳＶ出力（グループ指定）
				String strCsv =
					ScormLoEnv.CSV_OUTPUT + "$" + constant.RESOURCE_ROOT + "/view/lo/scorm/individuallog/CsvMenuFrameset.vm"
						+ strMenuUrl2 + "$_blank;";
				

				String strResult = "";

				if ( strUserID.startsWith( "PE" ) ) {
					strResult = strProgressUser + strReplyUser ;
				}
				else {
					strResult = strProgressGroup + strReplyGroup + strResultAnalysis + strCsv;
				}

				request.setAttribute("strResult", strResult);

			}catch(Exception e){
				e.printStackTrace();
				request.setAttribute("message", "ERR");
				request.setAttribute("detail", "");
				request.setAttribute("close", "on");

				return mapping.findForward("error");
			}
			return mapping.findForward("success");

		}

}
