/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	学習ログ詳細画面Actionクラス
//
//		変更履歴
//			2007.07.29  新規作成  yasu
//
//	機能
//
//	学習ログ詳細画面Actionクラスです。
//
/////////////////////////////////////////////////////////////////
package jp.co.ntt.lms.xmf.actions.xmo.LoLog;

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

import jp.co.ntt.lms.xmf.tools.xmo.Base.MenuTool;
import jp.co.ntt.lms.xmf.xmo.Base.Common;
import jp.co.ntt.lms.xmo.MenuData;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import jp.co.ntt.lms.lo.URL.*;;

/**
 * 学習ログ詳細Actionクラスです。
 * 
 * @author yasu
 * @version 1.0
 */
public class LaunchLoLogDetailAction extends Action
{
	/**
	 * strutsフレームワークから呼ばれるメソッドです。
	 * 
	 * @param mapping マッピングオブジェクト。
	 * @param form アクションフォームオブジェクト。
	 * @param request リクエストオブジェクト。
	 * ■パラメータ
	 * loID: LOID。
	 * returnURL: 戻りURL。
	 * ■アトリビュート
	 * launchURL: 学習ログ詳細URL。
	 * width: ウィンドウ幅。
	 * height: ウィンドウ高さ。
	 * @param response レスポンスオブジェクト。
	 * @return ActionForward アクションフォワードオブジェクト。
	 * @throws Exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception
	{
		try
		{
			// パラメータ取得
			String strLoID = request.getParameter("loID");
			String strReturnURL = request.getParameter("returnURL");
			
			// 戻りURLだけ先に設定しておく
			request.setAttribute("returnURL", strReturnURL);

			// ログインユーザー情報取得
			HttpSession session = request.getSession();
			String strUserID = (String)session.getAttribute(Common.USER_ID);
			String strPassword = (String)session.getAttribute(Common.PASSWORD);
			String strLoginID = (String)session.getAttribute(Common.LOGIN_ID);
			if (strUserID == null || strPassword == null || strLoginID == null)
				return mapping.findForward("error");


			
			// 学習ログ情報を取得
			MenuData data = MenuTool.getLoLogDetailMenuData(strLoID, strUserID, strLoginID, strPassword, strReturnURL);
			if (data == null)
				return mapping.findForward("error");
		
			// アトリビュート設定
			request.setAttribute("launchURL", data.getURL());
			request.setAttribute("width", data.getWidth());
			request.setAttribute("height", data.getHeight());
			
			return mapping.findForward("success");
		}
		catch (Exception e)
		{
			e.printStackTrace();
			
			request.setAttribute("message", "予期しないエラーが起きました。" + e.getMessage());
			request.setAttribute("detail", "");
			request.setAttribute("close", "on");
			
			return mapping.findForward("error");
		}
	}
}
