/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//	アサイン更新処理　アサイン更新画面表示Actionクラス
//
//		変更履歴
//			2005.02.10  新規作成  氏名 石崎賢太郎
//
//	機能
//
//	メニューからアサイン更新を選択した際に開かれるアサイン更新画面Actionクラスです。
//
/////////////////////////////////////////////////////////////////
package jp.co.ntt.lms.xmf.actions.xmo.Assignments;

import java.net.URLEncoder;

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

import jp.co.ntt.lms.xmf.xmo.Assignments.AssignmentsConstants;

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 org.apache.struts.util.MessageResources;

/**
 * アサイン更新画面Actionクラスです。
 * 
 * @author Kentaro Ishizaki (UNITEC)
 * @version 1.0
 */
public class AssignmentsUpdateAction extends Action
{
	/**
	 * 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
	{
		// キャッシュ無効処理
		response.setHeader("cache-control", "no-cache");

		///////////////////////////////////////////
		// パラメータ取得
		// 	・tree_view_type		ツリータイプ (1:グループ, 2:Ｌｏ)		必須
		// 	・selectparentID		選択されたグループ or 人の親ＩＤ		必須
		// 	・selectID			選択されたグループ or 人のＩＤ		必須
		// 	・returnURL			戻りページ							必須
		///////////////////////////////////////////
		String strTreeViewType_o = request.getParameter("tree_view_type");
		String strParentID_o = request.getParameter("parentID");
		String strSelectID_o = request.getParameter("selectID");
		String strReturnURL_o = request.getParameter("returnURL");
		String strXmoID_o = request.getParameter("xmo_id");

		// メッセージリソース取得
		MessageResources resources = getResources(request, "msg.xmf.xmo.Assignments.MessageResources");
		
		///////////////////////////////////////////
		// パラメータチェック
		///////////////////////////////////////////
		if (strTreeViewType_o == null || strTreeViewType_o.equals(""))
		{
			request.setAttribute("message", resources.getMessage("M062009"));
			request.setAttribute("detail", resources.getMessage("D062009"));
			request.setAttribute("close", "on");
			return mapping.findForward("error");
		}

		if (strParentID_o == null || strParentID_o.equals(""))
		{
			if (strTreeViewType_o.equals("1"))
			{
				request.setAttribute("message", resources.getMessage("M062001"));
				request.setAttribute("detail", resources.getMessage("D062001"));
			}
			else
			{
				request.setAttribute("message", resources.getMessage("M062006"));
				request.setAttribute("detail", resources.getMessage("D062006"));
			}
			request.setAttribute("close", "on");
			return mapping.findForward("error");
		}
		if (strSelectID_o == null || strSelectID_o.equals(""))
		{
			if (strTreeViewType_o.equals("1"))
			{
				request.setAttribute("message", resources.getMessage("M062002"));
				request.setAttribute("detail", resources.getMessage("D062002"));
			}
			else
			{
				request.setAttribute("message", resources.getMessage("M062007"));
				request.setAttribute("detail", resources.getMessage("D062007"));
			}
			request.setAttribute("close", "on");
			return mapping.findForward("error");
		}
		if (strReturnURL_o == null || strReturnURL_o.equals(""))
		{
			request.setAttribute("message", resources.getMessage("M062003"));
			request.setAttribute("detail", resources.getMessage("D062003"));
			request.setAttribute("close", "on");
			return mapping.findForward("error");
		}
		if (strXmoID_o == null || strXmoID_o.equals(""))
		{
			request.setAttribute("message", resources.getMessage("M062013"));
			request.setAttribute("detail", resources.getMessage("D062013"));
			request.setAttribute("close", "on");
			return mapping.findForward("error");
		}

		strReturnURL_o = URLEncoder.encode(strReturnURL_o, "UTF-8");

		// XMOIDをセッションに格納する
		request.getSession().setAttribute(AssignmentsConstants.ASSIGN_XMO_ID, strXmoID_o);
		
		// リクエストに変数をセット
		request.setAttribute("strTreeViewType_o", strTreeViewType_o);
		request.setAttribute("strParentID_o", strParentID_o);
		request.setAttribute("strSelectID_o", strSelectID_o);
		request.setAttribute("strReturnURL_o", strReturnURL_o);
		
		return mapping.findForward("success");
	}
}
