/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JCCSetMessage
*   ソースファイル名：JCCSetMessage.java
*   作成者          ：富士通
*   日付            ：2011年04月01日
*＜機能概要＞
*  メッセージIDを基にメッセージ定義ファイルよりメッセージを取得し、
*  共有フォームBeanのMESSAGE_LISTにメッセージを設定します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v18.00.00   2015/08/11   FJ) 阪口   【ANK-2631-00-00】ワンストップ案件（ＳＴＥＰ１）※koptWebBからkoptWebAへコピー
*
**********************************************************************/

package eo.web.webview.commonOneStop;

import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import eo.common.util.JCCFrameworkException;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;

public class JCCSetMessage
{
	/**　　ブランク文字　*/
	private static final String STR_BLANK = "";
	
	/**
	 * メッセージをメッセージエリアに設定する処理です。
	 * <br>
	 * @param vl		VIEWロジックインスタンス
	 * @param msgId		メッセージID
	 * @exception 		JCCFrameworkExceptionがスローされます。
	 */
	public void setMessageInfo(X31BWebBusinessLogic vl, String msgId) throws JCCFrameworkException
	{
		// メッセージを取得する。
		String strMessage = JCCMessageCache.getMessage(msgId);
		
		// 共有フォームBeanにメッセージを設定する。
		setMessageBean(vl, msgId, strMessage, JCCSetMessage.STR_BLANK);
	}
	
	/**
	 * 置換メッセージをメッセージエリアに設定する処理です。
	 * <br>
	 * @param vl		VIEWロジックインスタンス
	 * @param msgId		メッセージID
	 * @param rep		置換文字の配列
	 * @exception 		JCCFrameworkExceptionがスローされます。
	 */
	public void setMessageInfo(X31BWebBusinessLogic vl, String msgId, String[] rep) throws JCCFrameworkException
	{
		// メッセージを取得する。
		String strMessage = JCCMessageCache.getMessage(msgId, rep);
		
		// 共有フォームBeanにメッセージを設定する。
		setMessageBean(vl, msgId, strMessage, JCCSetMessage.STR_BLANK);
	}

	/**
	 * フロント画面の場合置換メッセージをエラーのあった項目の上に表示します。
	 * バックヤード画面の場合置換メッセージはメッセージエリアに表示し、
	 * エラーのあった項目の背景を赤く設定します。
	 * <br>
	 * @param vl		VIEWロジックインスタンス
	 * @param arg1		メッセージID
	 * @param msgId		置換文字の配列
	 * @param itemId	項目ID
	 * @exception 		JCCFrameworkExceptionがスローされます。
	 */
	public void setMessageInfo(X31BWebBusinessLogic vl, String msgId, String[] rep, String itemId) throws JCCFrameworkException
	{
		// メッセージを取得する。
		String strMessage = JCCMessageCache.getMessage(msgId, rep);
		
		// 共有フォームBeanにメッセージを設定する。
		setMessageBean(vl, msgId, strMessage, itemId);
	}

	/**
	 * フロント画面の場合メッセージをエラーのあった項目の上に表示します。
	 * バックヤード画面の場合メッセージはメッセージエリアに表示し、
	 * エラーのあった項目の背景を赤く設定します。
	 * 項目IDに設定がない場合は
	 * <br>
	 * @param vl		VIEWロジックインスタンス
	 * @param arg1		メッセージID
	 * @param msgId		置換文字の配列
	 * @param itemId	項目ID
	 * @exception 		JCCFrameworkExceptionがスローされます。
	 */
	public void setMessageInfo(X31BWebBusinessLogic vl, String msgId, String itemId) throws JCCFrameworkException
	{
		// メッセージを取得する。
		String strMessage = JCCMessageCache.getMessage(msgId);
		
		// 共有フォームBeanにメッセージを設定する。
		setMessageBean(vl, msgId, strMessage, itemId);
	}
	
	/**
	 * メッセージエリアの背景色を共有フォームBeanに設定する処理です。
	 * 0:背景色白、1:背景色黄となります。
	 * <br>
	 * @param vl			VIEWロジックインスタンス
	 * @param emFlg			強調フラグ
	 */
	public void setMessageAreaBackColor(X31BWebBusinessLogic vl, String emFlg)
	{
		// 共有フォームBeanを取得する。
		X31SDataBeanAccess commonbean = vl.getCommonInfoBean();
		// 共有フォームBeanにメッセージエリアの背景色を設定する。
		commonbean.sendMessageString("強調フラグ", X31CWebConst.DATABEAN_SET_VALUE, emFlg);
	}
	
	/**
	 * メッセージを共有フォームBeanに設定する処理です。
	 * 引数にセットされているメッセージ情報を共有フォームBeanの"MESSAGES_LIST"に設定します。
	 * <br>
	 * @param vl			 VIEWロジックインスタンス
	 * @param msgId			メッセージID
	 * @param strMessage 	メッセージ
	 * @param itemId 		項目ID
	 */
	private void setMessageBean(X31BWebBusinessLogic vl, String msgId, String strMessage, String itemId)
	{
		// 共有フォームBeanを取得する。
		X31SDataBeanAccess commonbean = vl.getCommonInfoBean();
		// 共有フォームBeanからMESSAGE_LISTデータタイプBeanを取得する。
		X31SDataBeanAccessArray commonBeanArray = commonbean.getDataBeanArray(CommonInfoCFConst.MESSAGES_LIST);
		// MESSAGE_LISTにメッセージを追加する。
		X31SDataBeanAccess commonSubbean = commonBeanArray.addDataBean();
		commonSubbean.sendMessageString(CommonInfoCFConst.MESSAGE_ID_02, X31CWebConst.DATABEAN_SET_VALUE, msgId);
		commonSubbean.sendMessageString(CommonInfoCFConst.MESSAGE_02, X31CWebConst.DATABEAN_SET_VALUE, strMessage);
		commonSubbean.sendMessageString("項目ＩＤ", X31CWebConst.DATABEAN_SET_VALUE, itemId);
	}
}
