/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：BackyardHeaderAreaTagHandler
*   ソースファイル名：BackyardHeaderAreaTagHandler.java
*   作成者          ：富士通
*   日付            ：2011年04月09日
*＜機能概要＞
*   バックヤード画面のヘッダータグ出力部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/04/09   FST）山下    新規作成
*   v55.00.00   2021/10/06   GDC)k.abuan  ANK-4182-00-00
**********************************************************************/
package eo.web.webview.common;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;

import javax.servlet.jsp.JspException;

import com.fujitsu.futurity.web.x31.X31CHashMap;
import com.fujitsu.futurity.web.x33.X33CUtil;
import com.fujitsu.futurity.web.x33.X33VCustomTagBase;
import com.fujitsu.futurity.web.x33.X33WSessionDataManager;


/**
 * 
 * バックヤード画面のヘッダータグ出力拡張タグクラスです。
 * <BR>
 * @author 富士通
 *
 */
@SuppressWarnings("serial")
public class JCCBackyardHeaderArea extends X33VCustomTagBase {

	/** 拡張タグ表示モード */
	private String _mode;

	public void setMode( String mode ) {
		_mode = mode;
	}
	
	@Override
	public int doStartTag() throws JspException
	{
		/** ユーザーＩＤ */
		String userid = null;
		/** ユーザー名 */
		String username = null;
		/** 遷移先画面ＩＤ */
		String screenid = null;
		/** 遷移先画面名 */
		String scrennname = null;
		
		// 拡張タグのmode要素がSYSTEMの場合で、かつ共有フォームBeanが取得できない場合
		if ( (_mode != null && _mode.equals("SYSTEM")) && !checkCommonInfo() ) {
			// ユーザーIDを取得できないため空文字を設定する。
			userid = "";
			// ユーザー名を取得できないため空文字を設定する。
			username = "";
			// 共通エラー画面の画面IDを設定する。
			screenid = JCCScreenConst.SCREEN_ID_CCW00101;
			// 共通エラー画面名を設定する。
			scrennname = "共通エラー画面";
		} else {
			/** 共有フォームBeanのユーザーＩＤ */
			userid = getSFBeanData_String("TagTemplate001","USER_ID");
			
			/** 共有フォームBeanのユーザー名 */
			username = getSFBeanData_String("TagTemplate001","USER_NM");
			
			/** 共有フォームBeanの遷移先画面ＩＤ */
			screenid = getSFBeanData_String("TagTemplate001","NEXT_SCREEN_ID");
			
			/** 共有フォームBeanの遷移先画面名 */
			scrennname = getSFBeanData_String("TagTemplate001","NEXT_SCREEN_NAME");
			
// 2011/09/05 画面情報をセッションにセット start
			// セッションID取得
			String sessionId = pageContext.getSession().getId();
			// セッション取得
			X33WSessionDataManager dataManager = X33CUtil.getSessionData(sessionId);
			// セッションから画面情報を取得
			X31CHashMap screenInfoMap = dataManager.getSessionInfo("sessionScreenInfo");
			// 画面情報をセッションにセットする。
			if( screenInfoMap == null )
			{
				HashMap<String, String> detailMap = new HashMap<String, String>();
				detailMap.put(screenid, scrennname);
				dataManager.putSessionInfo("sessionScreenInfo", detailMap);
			}else{
				HashMap<String, String> readMap = (HashMap<String, String>)screenInfoMap.get(true);
				readMap.put(screenid, scrennname);
				dataManager.putSessionInfo("sessionScreenInfo", readMap);
			}
		}
// 2011/09/05 画面情報をセッションにセット end
		
		SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		String date = format.format(new Date());
		
// 2011/08/15 環境識別コードおよびシステムIDを取得 start
		String kankyoSkbtCd = JCCWebCommon.getApplicationConst("KANKYO_SKBT_CD");
		if (kankyoSkbtCd == null || "".equals(kankyoSkbtCd) || "eo".equals(kankyoSkbtCd))
		{
			kankyoSkbtCd = "";
		}else{
			kankyoSkbtCd = "[" + kankyoSkbtCd + "]";
		}
		
		String sysCd = null;
		if(screenid == null || screenid.length() < 2){
			sysCd = "STYLE=\"width:100%; border-style:double; background-color:#00FFE0;\">";
		}else{
			sysCd = "STYLE=\"width:100%; border-style:double\" CLASS=\"" + screenid.substring(0, 2) + "_Title\">";
		}
// 2011/08/15 環境識別コードおよびシステムIDを取得 end
		
		outputHtml("<div class=\"HeaderMain\" id=\"header\">\n");
		outputHtml("<TABLE CLASS=\"noline\" STYLE=\"width:100%;\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"0\">\n");
		outputHtml("<COLGROUP>\n");
		outputHtml("<COL STYLE=\"width:32%; text-align:left;\">\n");
		outputHtml("<COL STYLE=\"width:38%;\">\n");
		outputHtml("<COL STYLE=\"width:30%; text-align:right;\">\n");
		outputHtml("</COLGROUP>\n");
		// ANK-4182-00-00 MOD START
		outputHtml("<TR>\n");
		outputHtml("<TD id=\"accessTime\" style=\"border:none;\">\n");
		outputHtml("アクセス日時：" + date + "\n");
		outputHtml("</TD>\n");
		outputHtml("<TD CLASS=\"noline\" style=\"text-align: center;\">\n");
// 2011/08/15 環境識別コードおよびシステムIDタイトルを設定 start
		outputHtml("<B id=\"title\" " + sysCd + "\n");
		outputHtml( scrennname + ":" + screenid + kankyoSkbtCd + "\n");
// 2011/08/15 環境識別コードおよびシステムIDタイトルを設定 end
		outputHtml("</B>\n");
		outputHtml("</TD>\n");
		outputHtml("<TD style=\"border:none; text-align: right;\">" + userid + "　" + username + "</TD>\n");
		outputHtml("</TR>\n");
		outputHtml("</TABLE>\n");
		outputHtml("</div>\n");
		
		// ANK-4182-00-00 MOD END
		
		return SKIP_BODY;
	}
	
	/**
	 * 共有フォームBeanが取得できるか調べる。
	 * @return
	 */
	private boolean checkCommonInfo() {
		try {
			countSFBeanList("TagTemplate001","USER_ID");
			return true;
		} catch (Exception e) {
			return false;
		}
	}
}
