/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：JTUWebCommon
*	ソースファイル名：JTUWebCommon.java
*	作成者			：FJ
*	日付			：2011年04月05日
*＜機能概要＞
*	電話手続Ｗｅｂ共通アクセッサー部品です。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00.00	2011/04/05	FJ)楠神		新規作成
*	v4.00.00	2012/07/10	FJ)宮本		ANK-0398-00-00
*
**********************************************************************/

package eo.web.webview.common;


import java.text.ParseException;
import java.util.ArrayList;

import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;

import eo.common.constant.JTUStrConst;
import eo.common.util.JTUStringUtil;
import eo.common.util.JTUDateUtil;
import eo.web.webview.JCCWebBusinessLogic;

/**
 * 電話手続システムWeb共通アクセッサー部品<p>
 * <BR>
 * @author FJ
 */
public class JTUWebCommon extends JCCWebCommon
{

	/**
	 * オブジェクトに値が設定されているか判定します。
	 * <br>
	 * @param arg0 判定するオブジェクト
	 * @return オブジェクトに値が設定されていない場合はtrue
	 */
	public static boolean isNull(Object arg0) 
	{
		return JTUStringUtil.isNull(arg0);
	}
	
	/**
	 * 遷移先の画面情報を設定
	 * @param commoninfoBean
	 * @param nextScreenId
	 * @param nextScreenName
	 */
	public static void setNextScreenInfo(X31SDataBeanAccess commoninfoBean, String nextScreenId, String nextScreenName)
	{
		JTUDataBeanUtil.setNextScreenInfo(commoninfoBean, nextScreenId, nextScreenName);
	}
	
	/**
	 * 年、月、日に分かれた年月日を設定
	 * @param bean
	 * @param setKomoku
	 * @param yyyyName
	 * @param mmName
	 * @param ddName
	 */
	public static void setYMD(X31SDataBeanAccess bean, String setKomoku, String yyyyName, String mmName, String ddName)
	{
		bean.sendMessageString(setKomoku, X31CWebConst.DATABEAN_SET_VALUE, getYMD(bean, yyyyName, mmName, ddName));
	}
	
	/**
	 * 年、月、日、時に分かれた年月日時を設定
	 * @param bean
	 * @param setKomoku
	 * @param yyyyName
	 * @param mmName
	 * @param ddName
	 * @param hhName
	 */
	public static void setYMDH(X31SDataBeanAccess bean, String setKomoku, String yyyyName, String mmName, String ddName, String hhName)
	{
		bean.sendMessageString(setKomoku, X31CWebConst.DATABEAN_SET_VALUE, getYMDH(bean, yyyyName, mmName, ddName, hhName));
	}
	
	/**
	 * 選択されているプルダウンに紐づくコードを設定
	 * @param bean
	 * @param setKomoku
	 * @param listName
	 * @param idxName
	 * @param codeName
	 */
	public static void setListSelectedValue(X31SDataBeanAccess bean, String setKomoku, String listName, String idxName, String codeName)
	{
		bean.sendMessageString(setKomoku, X31CWebConst.DATABEAN_SET_VALUE, getListSelectedValue(bean, listName, idxName, codeName));
	}
	
	/**
	 * 選択されているラジオボタンに紐づくコードを設定
	 * @param bean
	 * @param setKomoku
	 * @param listName
	 * @param choiceName
	 * @param codeName
	 */
	public static void setRadioSelectedValue(X31SDataBeanAccess bean, String setKomoku, String listName, String choiceName, String codeName)
	{
		bean.sendMessageString(setKomoku, X31CWebConst.DATABEAN_SET_VALUE, getRadioSelectedValue(bean, listName, choiceName, codeName));
	}

	
	/**
	 * 対象キーからリストのインデックスを設定
	 * @param bean
	 * @param listName
	 * @param idxName
	 * @param keyName
	 * @param keyValue
	 */
	public static void setListIndex(X31SDataBeanAccess bean, String listName, String idxName, String keyName, String keyValue)
	{
		X31SDataBeanAccess listDataBean = bean.getDataBeanArray(listName).getDataBean(0);
		listDataBean.sendMessageString(idxName, X31CWebConst.DATABEAN_SET_VALUE, getListIndex(bean, listName, keyName, keyValue));
	}
	
	/**
	 * 行スタイルを設定
	 * @param bean
	 * @param msgListName
	 * @param rowStyleName
	 */
	public static void setRowStyle(X31SDataBeanAccess bean, String msgListName, String rowStyleName)
	{
		JTUDataBeanUtil.setRowStyle(bean, msgListName, rowStyleName);
	}
	
	/**
	 * プルダウンにNoを設定
	 * @param bean
	 * @param listName
	 * @param idxName
	 * @param codeName
	 * @return String
	 */
	public static void setListNo(X31SDataBeanAccess bean, String listName, String codeName)
	{
		JTUDataBeanUtil.setListNo(bean, listName, codeName);
	}

	/**
	 * 年、月、日に分かれた年月日を取得
	 * @param bean
	 * @param yyyyName
	 * @param mmName
	 * @param ddName
	 * @return String
	 */
	public static String getYMD(X31SDataBeanAccess bean, String yyyyName, String mmName, String ddName)
	{
		return JTUDataBeanUtil.getYMD(bean, yyyyName, mmName, ddName);
	}
	

	/**
	 * 年、月、日、時に分かれた年月日時を取得
	 * @param bean
	 * @param yyyyName
	 * @param mmName
	 * @param ddName
	 * @param hhName
	 * @return String
	 */
	public static String getYMDH(X31SDataBeanAccess bean, String yyyyName, String mmName, String ddName, String hhName)
	{
		return JTUDataBeanUtil.getYMDH(bean, yyyyName, mmName, ddName, hhName);
	}

	/**
	 * 選択されているプルダウンに紐づくコードを取得
	 * @param bean
	 * @param listName
	 * @param idxName
	 * @param codeName
	 * @return String
	 */
	public static String getListSelectedValue(X31SDataBeanAccess bean, String listName, String idxName, String codeName)
	{
		return JTUDataBeanUtil.getListSelectedValue(bean, listName, idxName, codeName);
	}
	
	

	/**
	 * 選択されているラジオボタンに紐づくコードを取得
	 * @param bean
	 * @param listName
	 * @param choiceName
	 * @param codeName
	 * @return String
	 */
	public static String getRadioSelectedValue(X31SDataBeanAccess bean, String listName, String choiceName, String codeName)
	{
		return JTUDataBeanUtil.getRadioSelectedValue(bean, listName, choiceName, codeName);
	}

	
	/**
	 * 対象キーからリストのインデックスを取得
	 * @param bean
	 * @param listName
	 * @param keyName
	 * @param keyValue
	 * @return String
	 */
	public static String getListIndex(X31SDataBeanAccess bean, String listName, String keyName, String keyValue)
	{
		return JTUDataBeanUtil.getListIndex(bean, listName, keyName, keyValue);
	}

	/**
	 * 対象日付の曜日を取得します。
	 * @param ymd 年月日
	 * @return String 年月日の曜日を返却する
	 */
	public static String getDowNm(String ymd)
	{
		return JTUDateUtil.getDowNm(ymd);
	}
	
	/**
	 * 指定した画面IDをKEYに戻るボタン表示フラグを取得する。
	 * @param arg0
	 * @param screenId
	 * @return String 「1：表示」/ 「0：非表示」
	 */
	public static String getBackDispFlg(JCCWebBusinessLogic  arg0, String screenId)
	{
		// 遷移元画面IDの存在チェック
		if(JTUSessionInfo.checkExistsScreenID(arg0, screenId))
		{
			return JTUStrConst.BACK_BTN_DSP_FLG_TRUE;
		}
		else
		{
			return JTUStrConst.BACK_BTN_DSP_FLG_FALSE;
		}
	}
	
	/**
	 * 指定した画面IDをKEYにセッション情報に遷移元画面IDが存在するかチェックする。
	 * @param arg0 
	 * @param screenId
	 * @return boolean 「true：存在する」/ 「false：存在しない」
	 */
	public static boolean checkExistsScreenID(JCCWebBusinessLogic  arg0, String screenId)
	{
		// 遷移元画面IDの存在チェック
		return JTUSessionInfo.checkExistsScreenID(arg0, screenId);
	}
	
	/**
	 * 配列にセットされたテキストボックスのキー情報を元にBeanをクリアする
	 * @param bean
	 * @param keyList
	 */
	public static void clearTxtBean(X31SDataBeanAccess bean, ArrayList<String> keyList)
	{
		JTUDataBeanUtil.clearTxtBean(bean, keyList);
	}
	
	/**
	 * プルダウンのコードを「,」区切りでセットする
	 * @param bean
	 * @param listName
	 * @param codeName
	 * @param setName
	 */
	public static void setCdCodeList(X31SDataBeanAccess bean, String listName, String codeName, String setName)
	{
		JTUDataBeanUtil.setCdCodeList(bean, listName, codeName, setName);
	}
	
	/**
	 * ラジオボタンのコードを「,」区切りでセットする
	 * @param bean
	 * @param listName
	 * @param codeName
	 * @param setName
	 */
	public static void setCdRadioButtonList(X31SDataBeanAccess bean, String listName, String codeName, String setName)
	{
		JTUDataBeanUtil.setCdRadioButtonList(bean, listName, codeName, setName);
	}
	
	/**
	 * 手動入力フラグの文字列値を返却する
	 * @param bean
	 * @param name
	 * @return String 「True→"1"/それ以外→"0"」
	 */
	public static String getStrManInputFlg(X31SDataBeanAccess bean, String name)
	{
		boolean bool = bean.sendMessageBoolean(name, X31CWebConst.DATABEAN_GET_VALUE);
		if(bool)
		{
			return JTUStrConst.MAN_INPUT_FLG_YK;
		}
		else
		{
			return JTUStrConst.MAN_INPUT_FLG_NON;
		}
	}
	
	/**
	 * 手動入力フラグをBeanに設定する
	 * @param bean
	 * @param name
	 * @param val
	 */
	public static void setBeanManInputFlg(X31SDataBeanAccess bean, String name, String val)
	{
		if(JTUStrConst.MAN_INPUT_FLG_YK.equals(val))
		{
			bean.sendMessageBoolean(name, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		else
		{
			bean.sendMessageBoolean(name, X31CWebConst.DATABEAN_SET_VALUE, false);
		}
	}
	
	/**
	 * 住所項目のクリア処理
	 * @param bean
	 * @param clearFlgName
	 * @param manInputFlgName
	 * @param clearKomokuName
	 */
	public static void clearAd(X31SDataBeanAccess bean, String clearFlgName, String[] clearKomokuName)
	{
		JTUDataBeanUtil.clearAd(bean, clearFlgName, clearKomokuName);
	}
	
	/**
	 * 住所編集パターン14を返します。
	 * @param stateNm 都道府県名
	 * @param cityNm 市区町村名
	 * @param oaztsuNm 大字通称名
	 * @param azchoNm 字丁目名
	 * @param bnchigo 番地号
	 * @param adrttm 住所補記・建物名
	 * @param adrrm 住所補記・部屋番号
	 * @return 「都道府県名+市区町村名」+"\r\n"+「大字通称名+字丁目名」+「番地号」+"\r\n"+「住所補記・建物名+住所補記・部屋番号」編集した値
	 */
	public static String getPtn14(String stateNm, String cityNm, String oaztsuNm, String azchoNm, String bnchigo, String adrttm, String adrrm) 
	{
		return JTUStringUtil.getPtn14(stateNm, cityNm, oaztsuNm, azchoNm, bnchigo, adrttm, adrrm);
	}
	
	/**
	 * 日付FROM-TO加減編集処理
	 * @param bean
	 * @param yyyymmddNameFrom
	 * @param yyyyNameFrom
	 * @param mmNameFrom
	 * @param ddNameFrom
	 * @param yyyymmddNameTo
	 * @param yyyyNameTo
	 * @param mmNameTo
	 * @param ddNameTo[
	 * @param prd
	 * @throws ParseException 
	 */
	public static void setDateFromTo(X31SDataBeanAccess bean, String yyyymmddNameFrom, String yyyyNameFrom, String mmNameFrom, String ddNameFrom
			, String yyyymmddNameTo, String yyyyNameTo, String mmNameTo, String ddNameTo, int prd) throws ParseException 
	{
		JTUDataBeanUtil.setDateFromTo(bean, yyyymmddNameFrom, yyyyNameFrom, mmNameFrom, ddNameFrom
				, yyyymmddNameTo, yyyyNameTo, mmNameTo, ddNameTo, prd);
	}
	
}
