免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1326 | 回复: 0
打印 上一主题 下一主题

作圖JFreeChart [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-04 23:02 |只看该作者 |倒序浏览
项目到了年底,郁闷的不得了,原本不是中国做的JFreeChart由中国做了,并且给我做了,以前做过.Net的web统计图.Java,呵呵,我是半路出家.
不过还是硬着头皮做了下来,几天时间画了6个JFreeChart.由于这些图是原来运行的Unix下的用Unix C语言写的(佩服写程序的人)所以很难运用JFreeChart画的跟原来一样,索性日本娘们就在中国,可以随时QA所以基本没有费多大的力气就搞定了,由于做的太快,小日本居然一个个的都跑到我这里看效果,Fuck,PM拉着我和他照相,真搞笑呵呵.
搞得根什么似的,其实本人对于人家写好的框架再次开发并不感兴趣.作完了只能说JFreeChart功能还是不行.其实也不能怪JFreeChart是Web层的错误.
代码复制下来,留自己以后用赫赫.


/*
* DgmAction
* $Id: DgmAction.java,v 1.21 2006/01/04 11:40:06 liukx Exp $
* Copyright (c)
*/
package jp.co.mhcb.obs.web.riskreport.dgm.action;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jp.co.mhcb.obs.biz.bean.riskreport.DgmBean;
import jp.co.mhcb.obs.biz.bean.riskreport.DgmDeltaMapGraphBean;
import jp.co.mhcb.obs.biz.bean.riskreport.DgmGammaMapGraphBean;
import jp.co.mhcb.obs.biz.facade.riskreport.dgm.DgmFacade;
import jp.co.mhcb.obs.biz.service.common.master.selection.CommonSelectConstants;
import jp.co.mhcb.obs.biz.service.common.master.selection.DealerForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.DeptForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.PortfolioForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.SectionForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.master.selection.UnitForReportSelectTargetImpl;
import jp.co.mhcb.obs.biz.service.common.print.PdfData;
import jp.co.mhcb.obs.biz.service.risk.FrontFileConst;
import jp.co.mhcb.obs.common.ObsApplicationException;
import jp.co.mhcb.obs.framework.core.api.FwMessage;
import jp.co.mhcb.obs.framework.core.api.FwMessageManager;
import jp.co.mhcb.obs.framework.core.api.FwThreadContext;
import jp.co.mhcb.obs.framework.web.struts.action.ActionForwardException;
import jp.co.mhcb.obs.framework.web.struts.action.InitializableAction;
import jp.co.mhcb.obs.persis.entity.Currency;
import jp.co.mhcb.obs.persis.entity.Dept;
import jp.co.mhcb.obs.persis.entity.Portfolio;
import jp.co.mhcb.obs.persis.entity.Section;
import jp.co.mhcb.obs.persis.entity.Unit;
import jp.co.mhcb.obs.persis.entity.UserId;
import jp.co.mhcb.obs.web.common.confirm.action.ConfirmAction;
import jp.co.mhcb.obs.web.common.print.action.PdfPrintAction;
import jp.co.mhcb.obs.web.risk.transactionsearch.action.TransactionSearchAction;
import jp.co.mhcb.obs.web.riskreport.RiskReportConst;
import jp.co.mhcb.obs.web.riskreport.closingcsv.action.ClosingCsvAction;
import jp.co.mhcb.obs.web.riskreport.closingreport.action.ClosingReportAction;
import jp.co.mhcb.obs.web.riskreport.common.action.RiskReportCsvAction;
import jp.co.mhcb.obs.web.riskreport.dgm.form.DgmForm;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;
import org.apache.struts.util.LabelValueBean;
/**
* DELTA MAP & GAMMA MAPのAction
* @version $Revision: 1.21 $
* @author $Author: liukx $
*/
public class DgmAction extends MappingDispatchAction implements InitializableAction {
    /** 確認画面メッセージID  */
    private static final String SCREEN_CONFIRM_MSGKEY = "Q14001";
    /** FORM定数設定 */
    private static final String DGM_FORM = "dgmForm";
    /** Sessionキー : 画面隠蔵項目remark */
    private static final String SESSION_DGM_FORM_REMARK = "DGM.FORM.REMARK";
    /** Sessionキー : DgmBean */
    private static final String SESSION_DGM_BEAN = "DGM.BEAN.DGM.BEAN";
    /** Sessionキー : DgmDeltaBean */
    private static final String SESSION_DGM_DELTA_GRAPH_BEAN = "DGM.DELTA.GRAPH.BEAN";
    /** Sessionキー : DgmGammaBean */
    private static final String SESSION_DGM_GAMMA_GRAPH_BEAN = "DGM.GAMMA.GRAPH.BEAN";
    /** Sessionキー : 計表(PDF)ファイルパス */
    private static final String SESSION_DGM_PDF_PATH = "DGM.PDF_PATH";
    /** Sessionキー : 計表(CSV)ファイルパス */
    private static final String SESSION_DGM_CSV_PATH = "DGM.CSV_PATH";
    /** 確認画面タイトル */
    private static final String SCREEN_TITLE = "Delta Map & Gamma Map";
    /** 計表番号の3~5桁目を取得 */
    private static final int LRA_TWO = 2;
    /** FwMessageManagerオブジェクト */
    private FwMessageManager messageManager;
    /**
     * FwMessageManagerを設定する
     * @param messageManager 設定する値
     */
    public void setMessageManager(FwMessageManager messageManager) {
        this.messageManager = messageManager;
    }
    /** DgmFacadeの設定 */
    private DgmFacade dgmFacade;
    /**
     * このアクションが使用するfacadeがDIされるように、セッタメソッドを用意
     * @param dgmFacade オブジェクト
     */
    public void setDgmFacade(DgmFacade dgmFacade) {
        this.dgmFacade = dgmFacade;
    }
    /**
     * 初期表示処理
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward start(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報を取得する
        DgmForm form = (DgmForm) argForm;
        // Sessionに設定したデータをクリアする。
        HttpSession session = req.getSession();
        session.removeAttribute(SESSION_DGM_BEAN);
        session.removeAttribute(SESSION_DGM_PDF_PATH);
        session.removeAttribute(SESSION_DGM_CSV_PATH);
        session.removeAttribute(SESSION_DGM_FORM_REMARK);
        boolean accessFlg;
        try {
            // 初期表示チェック      
            accessFlg = dgmFacade.checkPrepare();
        } catch (ObsApplicationException e) {
            throw new ActionForwardException("fail", e);
        }
        // 初期表示データ設定
        initializeForm(form, accessFlg);
        return mapping.findForward("init");
    }
    /**
     * 換算対象商品「SWAP SETS」選択時の処理
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @return 転送先アクションフォワード
     * @throws Exception closingReport画面呼出処理時の例外
     */
    public ActionForward refresh(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報を取得する
        DgmForm form = (DgmForm) argForm;
        if (FrontFileConst.EQUIVALENT_SWAP_SETS.equals(form.getEquivalent())) {
            form.setEquivalentItemsVisable(true);
            form.setEquivalentItems(null);
        } else if (FrontFileConst.EQUIVALENT_FUTURES.equals(form.getEquivalent())) {
            form.setEquivalentItemsVisable(false);
        }
        return mapping.findForward("refresh");
    }
    /**
     * Weight3設定
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward weight(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        return mapping.findForward("weight");
    }
    /**
     * 日締め計表出力
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward closingReport(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        String reportId = null;
        try {
            // 計表フォーマット番号取得
            reportId = dgmFacade.getReportId(null);
        } catch (ObsApplicationException e) {
            throw new ActionForwardException("fail", e);
        }
        req.setAttribute(ClosingReportAction.REQUEST_CLOSING_REPORT_ID, reportId);
        req.setAttribute(ClosingReportAction.REQUEST_CLOSING_REPORT_CANCEL_URL, "/DgmCancel.do");
        return mapping.findForward("closingReport");
    }
    /**
     * 確認画面(共通)に遷移
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward closingCsv(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        List messageList = new ArrayList();
        messageList.add("get CSV files");
        //OKボタン押下時に呼ばれるメソッド 削除処理
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_TITLE, SCREEN_TITLE);
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_OK_URL, "/DgmClosingCsvExec.do");
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_NG_URL, "/DgmCancel.do");
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGEID, SCREEN_CONFIRM_MSGKEY);
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGELIST, messageList);
        return mapping.findForward("common");
    }
    /**
     * 日締め計表CSV出力の実行
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward closingCsvExec(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        String reportId = null;
        try {
            // 計表フォーマット番号取得
            reportId = StringUtils.substring(dgmFacade.getReportId(null), LRA_TWO);
        } catch (ObsApplicationException e) {
            throw new ActionForwardException("fail", e);
        }
        req.setAttribute(ClosingCsvAction.REQUEST_CLOSING_CSV_REPORT_ID, reportId);
        req.setAttribute(ClosingCsvAction.REQUEST_CLOSING_CSV_CANCEL_URL, "/DgmCancel.do");
        return mapping.findForward("closingCsv");
    }
    /**
     * 対象取引選択
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward selectGroup(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // 共通画面遷移先の選択
        if (FrontFileConst.GROUP_BY_DEPARTMENT.equals(form.getGroupBy())) {
            // 『DEPARTMENT』が選択されている場合
            selectDept(req);
        } else if (FrontFileConst.GROUP_BY_SECTION.equals(form.getGroupBy())) {
            // 『SECTION』が選択されている場合
            selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_SECTION_FOR_REPORT, "/DgmSelectSectionOk.do");
        } else if (FrontFileConst.GROUP_BY_UNIT.equals(form.getGroupBy())) {
            // 『UNIT』が選択されている場合
            selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_UNIT_FOR_REPORT, "/DgmSelectUnitOk.do");
        } else if (FrontFileConst.GROUP_BY_DEALER.equals(form.getGroupBy())) {
            // 『DEALER』が選択されている場合
            selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_DEALER_FOR_REPORT, "/DgmSelectDealerOk.do");
        } else if (FrontFileConst.GROUP_BY_PORTFOLIO.equals(form.getGroupBy())) {
            // 『PORTFOLIO』が選択されている場合getGroupBy
            selectOtherGroup(req, CommonSelectConstants.TARGET_KEY_PORTFOLIO_FOR_REPORT, "/DgmSelectPortfolioOk.do");
        } else if (FrontFileConst.GROUP_BY_TRAN_SEARCH.equals(form.getGroupBy())) {
            // TODO 未実装『TRAN.SEARCH』が選択されている場合、TransactionSearch画面へ遷移
            transSearchForReport(req);
            return mapping.findForward("transsearch");
        } else if (FrontFileConst.GROUP_BY_ALL.equals(form.getGroupBy())) {
            // 『ALL』が選択されている場合、共通画面に遷移しない
            // 集計単位選択項目に『ALL』をセット
            form.setGroupBySelected(FrontFileConst.GROUP_BY_ALL);
            form.setGroupBySelectedList(null);
            form.setGroupBySelectName(null);
            return mapping.findForward("success");
        }
        // 共通リクエストパラメータのセット
        req.setAttribute(CommonSelectConstants.SCREEN_ID, FrontFileConst.SCREEN_ID_DGM);
        req.setAttribute(CommonSelectConstants.FORWARD_CANCEL, "/DgmCancel.do");
        return mapping.findForward("common");
    }
    /**
     * Dept画面への遷移
     * @param req リクエスト
     * @throws Exception
     */
    private void selectDept(HttpServletRequest req) throws Exception {
        // リクエストパラメータセット
        Map paramMap = new HashMap();
        String userId = null;
        try {
            // USER_IDエンティティ取得
            userId = dgmFacade.dept();
        } catch (ObsApplicationException e) {
            throw new ActionForwardException("fail", e);
        }
        paramMap.put(DeptForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
        // 共通画面遷移パラメータ設定
        req.setAttribute(CommonSelectConstants.TARGET, CommonSelectConstants.TARGET_KEY_DEPT_FOR_REPORT);
        req.setAttribute(CommonSelectConstants.FORWARD_OK, "/DgmSelectDeptOk.do");
        req.setAttribute(CommonSelectConstants.MULTIPLE, Boolean.FALSE);
        req.setAttribute(CommonSelectConstants.PARAMS, paramMap);
    }
    /**
     * TransactionSearch画面への遷移
     * @param req リクエスト
     * @throws Exception 例外が起こった時、スローする
     */
    public void transSearchForReport(HttpServletRequest req) throws Exception {
        // ポートフォリオ選択画面(共通)に遷移
        req.setAttribute(TransactionSearchAction.TRANSACTION_SEARCH_STRING_EXIT, "/DgmCancel.do");
    }
    /**
     * Section, Unit, Dealer, Portfolio画面への遷移
     * @param req リクエスト
     * @param target タグ
     * @param forward 転送先アクションフォワード
     * @throws Exception
     */
    private void selectOtherGroup(HttpServletRequest req, String target, String forward) throws Exception {
        String userId = null;
        Map paramMap = new HashMap();
        Map addParamMap = new HashMap();
        try {
            // USER_IDエンティティ取得
            userId = dgmFacade.otherGroup();
        } catch (ObsApplicationException e) {
            throw new ActionForwardException("fail", e);
        }
        // コンテキストから実行権限チェック結果取得
        Boolean accessFlg = (Boolean) FwThreadContext.getAttribute(DgmFacade.ATTRIBUTE_DGM_ACCESS_FLG);
        if (CommonSelectConstants.TARGET_KEY_SECTION_FOR_REPORT.equals(target)) {
            // Sectionの場合のパラメータ
            paramMap.put(SectionForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
            addParamMap.put(SectionForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
        } else if (CommonSelectConstants.TARGET_KEY_UNIT_FOR_REPORT.equals(target)) {
            // Unitの場合のパラメータ
            paramMap.put(UnitForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
            addParamMap.put(UnitForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
        } else if (CommonSelectConstants.TARGET_KEY_DEALER_FOR_REPORT.equals(target)) {
            // Dealerの場合のパラメータ
            paramMap.put(DealerForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
            addParamMap.put(DealerForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
        } else if (CommonSelectConstants.TARGET_KEY_PORTFOLIO_FOR_REPORT.equals(target)) {
            // Portfolioの場合のパラメータ
            paramMap.put(PortfolioForReportSelectTargetImpl.PARAMS_KEY_USER_ID, userId);
            addParamMap.put(PortfolioForReportSelectTargetImpl.PARAMS_KEY_ACCESS_PRIVILEGE_CHECK_FLG, accessFlg);
        }
        // 共通画面遷移パラメータ設定
        req.setAttribute(CommonSelectConstants.TARGET, target);
        req.setAttribute(CommonSelectConstants.FORWARD_OK, forward);
        req.setAttribute(CommonSelectConstants.MULTIPLE, Boolean.TRUE);
        req.setAttribute(CommonSelectConstants.PARAMS, paramMap);
        req.setAttribute(CommonSelectConstants.ADDPARAMS, addParamMap);
    }
    /**
     * 部署選択後の処理。
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward deptForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // リクエストから選択した組織情報の取得
        List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
        // 単一選択
        if (selectedList != null && !selectedList.isEmpty()) {
            Object[] objects = (Object[]) selectedList.get(0);
            form.setGroupBySelectName(((Dept) objects[0]).getFullName());
            // Dept選択
            form.setGroupBySelected(FrontFileConst.GROUP_BY_DEPARTMENT);
            form.setGroupBySelectedList(selectedList);
        }
        return mapping.findForward("success");
    }
    /**
     * 課班選択後の処理。
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward sectionForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req,
            HttpServletResponse res) throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // リクエストから選択した組織情報の取得
        List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
        if (selectedList != null && !selectedList.isEmpty()) {
            if (selectedList.size() > 1) {
                // 複数選択の場合
                form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
            } else {
                // 単一選択の場合
                Object[] objects = (Object[]) selectedList.get(0);
                form.setGroupBySelectName(((Section) objects[0]).getFullName());
            }
            // Section選択
            form.setGroupBySelected(FrontFileConst.GROUP_BY_SECTION);
            form.setGroupBySelectedList(selectedList);
        }
        return mapping.findForward("success");
    }
    /**
     * ユニット選択後の処理。
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward unitForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // リクエストから選択した組織情報の取得
        List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
        if (selectedList != null && !selectedList.isEmpty()) {
            if (selectedList.size() > 1) {
                form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
            } else {
                Object[] objects = (Object[]) selectedList.get(0);
                form.setGroupBySelectName(((Unit) objects[1]).getFullName());
            }
            // Unit選択
            form.setGroupBySelected(FrontFileConst.GROUP_BY_UNIT);
            form.setGroupBySelectedList(selectedList);
        }
        return mapping.findForward("success");
    }
    /**
     * ディーラー選択後の処理。
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward dealerForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req,
            HttpServletResponse res) throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // リクエストから選択した組織情報の取得
        List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
        if (selectedList != null && !selectedList.isEmpty()) {
            if (selectedList.size() > 1) {
                form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
            } else {
                form.setGroupBySelectName(((UserId) selectedList.get(0)).getFullName());
            }
            // Dealer選択
            form.setGroupBySelected(FrontFileConst.GROUP_BY_DEALER);
            form.setGroupBySelectedList(selectedList);
        }
        return mapping.findForward("success");
    }
    /**
     * Portfolio選択画面よりの戻り処理
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward portfolioForReportSet(ActionMapping mapping, ActionForm argForm, HttpServletRequest req,
            HttpServletResponse res) throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // リクエストから選択した組織情報の取得
        List selectedList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
        if (selectedList != null && !selectedList.isEmpty()) {
            if (selectedList.size() > 1) {
                form.setGroupBySelectName(FrontFileConst.MULTI_SELECT);
            } else {
                form.setGroupBySelectName(((Portfolio) selectedList.get(0)).getFullName());
            }
            // Portfolio選択
            form.setGroupBySelected(FrontFileConst.GROUP_BY_PORTFOLIO);
            form.setGroupBySelectedList(selectedList);
        }
        return mapping.findForward("success");
    }
    /**
     * 対象通貨画面への遷移。
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward currency(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 通貨情報選択画面(共通)に遷移
        req.setAttribute(CommonSelectConstants.TARGET, CommonSelectConstants.TARGET_KEY_CURRENCY);
        req.setAttribute(CommonSelectConstants.SCREEN_ID, FrontFileConst.SCREEN_ID_DGM);
        req.setAttribute(CommonSelectConstants.FORWARD_OK, "/DgmCurrencyOk.do");
        req.setAttribute(CommonSelectConstants.FORWARD_CANCEL, "/DgmCancel.do");
        req.setAttribute(CommonSelectConstants.FORWARD_ALL, "/DgmSelectCurrencyAll.do");
        req.setAttribute(CommonSelectConstants.MULTIPLE, new Boolean(false));
        return mapping.findForward("common");
    }
    /**
     * 対象通貨選択後の処理。(OKボタン押下時)
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward currencyReturn(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // リクエストから選択した対象通貨の取得
        List currencyList = (List) req.getAttribute(CommonSelectConstants.LIST_SELECTED);
        StringBuffer stringBuffer = new StringBuffer();
        if (currencyList != null) {
            // NO DATAの場合はnull
            for (Iterator itr = currencyList.iterator(); itr.hasNext();) {
                if (stringBuffer.length() > 0) {
                    stringBuffer.append(" ");
                }
                stringBuffer.append(((Currency) itr.next()).getShortName());
            }
        }
        // formのプロジェクトの属性は設ける
        form.setCurrency(stringBuffer.toString());
        return mapping.findForward("success");
    }
    /**
     * 対象通貨選択後の処理。(ALLボタン押下時)
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward crrencyAll(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // ALLが選択された場合、「ALL」を表示
        form.setCurrency(FrontFileConst.CURRENCY_ALL);
        return mapping.findForward("success");
    }
    /**
     * 対象期間
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward term(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        return mapping.findForward("success");
    }
    /**
     * 計表作成確認画面への遷移
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @return 転送先アクションフォワード
     * @throws Exception 計表作成確認画面呼出処理時の例外
     */
    public ActionForward create(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // DgmBean作成
        DgmBean dgmBean = new DgmBean();
        // 画面項目をDgmBeanへセット
        BeanUtils.copyProperties(dgmBean, form);
        // 通貨を選択
        String[] equivalentItems = req.getParameterValues("equivalentItems");
        if(equivalentItems == null)
        {
            equivalentItems = new String[0];
            dgmBean.setEquivalentItems(equivalentItems);            
        }
        else
        {
            dgmBean.setEquivalentItems(equivalentItems);            
        }
        dgmBean.setEquivalentItems(equivalentItems);
        dgmBean.setFreeGridList((List) req.getSession().getAttribute(
                DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_FREE_GRID_DATE_LIST));
        dgmBean.setTermId((String) req.getSession().getAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID));
        dgmBean.setRemark((String) req.getSession().getAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_REMARK));
        dgmBean.setTermIdSel((String) req.getSession().getAttribute(
                DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID_SEL));
        try {
            // 計表作成前処理(チェックと画面項目以外の項目取得)
            dgmBean = dgmFacade.prepareCreate(dgmBean);
        } catch (ObsApplicationException e) {
            throw new ActionForwardException("fail", e);
        }
        // 確認画面パラメータセット
        List messageList = new ArrayList();
        messageList.add("make the report");
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_TITLE, SCREEN_TITLE);
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGEID, SCREEN_CONFIRM_MSGKEY);
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_MESSAGELIST, messageList);
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_OK_URL, "/DgmCreateExec.do");
        req.setAttribute(ConfirmAction.REQUEST_CONFIRM_NG_URL, "/DgmCancel.do");
        // Beanをsessionにセットする
        req.getSession().setAttribute(SESSION_DGM_BEAN, dgmBean);
        if (FrontFileConst.TERM_FREE.equals(dgmBean.getTerm())) {
            messageManager.addMessage(new FwMessage("I03001", new String[] { "SWAP EQ.", "FREE TERM" }));
        }
        return mapping.findForward("common");
    }
    /**
     * 計表作成
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @return 転送先アクションフォワード
     * @throws Exception 計表作成時の例外
     */
    public ActionForward createFile(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報取得
        DgmForm form = (DgmForm) argForm;
        // DgmBean取得
        DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
        // TP1サーバによる計表作成処理
        String[] filePath = null;
        try {
            // TP1サーバによる計表作成処理
            filePath = dgmFacade.create(dgmBean);
        } catch (ObsApplicationException e) {
            throw new ActionForwardException("fail", e);
        }
        // グラフデータのファールパス
        String[] graphFile = new String[2];
        graphFile[0] = filePath[FrontFileConst.FILE_PATH_GRAPH1];
        graphFile[1] = filePath[FrontFileConst.FILE_PATH_GRAPH2];
        dgmBean.setGraphFile(graphFile);
        // グラフデータのファールパス
        DgmDeltaMapGraphBean dgmDeltaMapGraphBean = dgmBean.getDgmDeltaMapGraphBean();
        DgmGammaMapGraphBean dgmGammaMapGraphBean = dgmBean.getDgmGammaMapGraphBean();
        String[] currencyDelta = dgmDeltaMapGraphBean.getCurrencyList();
        String[] currencyGamma = dgmGammaMapGraphBean.getCurrencyList();
        if (currencyDelta.length == currencyGamma.length) {
            int currencyCountDelta = dgmDeltaMapGraphBean.getCurrencyCount();
            int currencyCountGamma = dgmGammaMapGraphBean.getCurrencyCount();
            if (currencyCountDelta == currencyCountGamma) {
                LabelValueBean[] labelValueBeanGraphCurrency = new LabelValueBean[currencyCountGamma];
                for (int i = 0; i
                List graphCurrencyList = Arrays.asList(labelValueBeanGraphCurrency);
                form.setGraphCurrencyList(graphCurrencyList);
                form.setGraphCurrency(currencyDelta[0]);
            } else {
                form.setGraphCurrencyList(null);
            }
        }
        // 計表ファイルパスをSessionに保存
        HttpSession session = req.getSession();
        session.setAttribute(SESSION_DGM_PDF_PATH, filePath[FrontFileConst.FILE_PATH_PDF]);
        session.setAttribute(SESSION_DGM_CSV_PATH, filePath[FrontFileConst.FILE_PATH_CSV]);
        // 計表作成済みフラグセット
        form.setCreateExecFlg(true);
        form.setEquivalentItems(dgmBean.getEquivalentItems());
        return mapping.findForward("success");
    }
    /**
     * PDF作成
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @return 転送先アクションフォワード
     * @throws Exception 計表作成時の例外
     */
    public ActionForward createPdf(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 計表(PDF)ファイルパスをSessionから取得
        String filePath = (String) req.getSession().getAttribute(SESSION_DGM_PDF_PATH);
        try {
            // PDFデータの生成を行う
            PdfData pdf = dgmFacade.createPdf(filePath);
            // 生成されたPFDデータをリクエストコンテキストに保存
            req.setAttribute(PdfPrintAction.PDF_DATA, pdf);
        } catch (ObsApplicationException e) {
            // なんらかの例外が発生した場合のページ遷移指定
            throw new ActionForwardException("fail", e);
        }
        return mapping.findForward("success");
    }
    /**
     * CSV作成
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @return 転送先アクションフォワード
     * @throws Exception 計表作成時の例外
     */
    public ActionForward createCsv(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 計表(CSV)ファイルパスをSessionから取得
        String filePath = (String) req.getSession().getAttribute(SESSION_DGM_CSV_PATH);
        req.setAttribute(RiskReportCsvAction.REQUEST_CSV_PATH, filePath);
        return mapping.findForward("success");
    }
    /**
     * グラフ表示(Delta Map)
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward deltaDisplay(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // Sessionに設定したデータをクリアする。
        HttpSession session = req.getSession();
        // DgmBean取得
        DgmBean dgmBean = (DgmBean) session.getAttribute(SESSION_DGM_BEAN);
        DgmDeltaMapGraphBean dgmDeltaMapGraphBean = dgmBean.getDgmDeltaMapGraphBean();
        dgmDeltaMapGraphBean.setCurrency(form.getGraphCurrency());
        dgmDeltaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
        try {
            // Deltaグラフを作成する
            dgmFacade.deltaDisplay(dgmBean);
        } catch (ObsApplicationException bizex) {
            throw new ActionForwardException("fail", bizex);
        }
        
        session.setAttribute(SESSION_DGM_DELTA_GRAPH_BEAN, dgmBean.getDgmDeltaMapGraphBean());
        
        return mapping.findForward("success");
    }
    /**
     * グラフ表示(Gamma Map)
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward gammaDisplay(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // Sessionに設定したデータをクリアする。
        HttpSession session = req.getSession();
        // DgmBean取得
        DgmBean dgmBean = (DgmBean) session.getAttribute(SESSION_DGM_BEAN);
        DgmGammaMapGraphBean dgmGammaMapGraphBean = dgmBean.getDgmGammaMapGraphBean();
        dgmGammaMapGraphBean.setCurrency(form.getGraphCurrency());
        dgmGammaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
        try {
            // Gammaグラフを作成する            
            dgmFacade.gammaDisplay(dgmBean);
        } catch (ObsApplicationException bizex) {
            throw new ActionForwardException("fail", bizex);
        }
        
        req.getSession().setAttribute(SESSION_DGM_GAMMA_GRAPH_BEAN, dgmBean.getDgmGammaMapGraphBean());
        return mapping.findForward("success");
    }
    /**
     * グラフ出力(Delta Map)
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward deltaExtract(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // DgmBean取得する
        DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
        DgmDeltaMapGraphBean dgmDeltaMapGraphBean = dgmBean.getDgmDeltaMapGraphBean();
        dgmDeltaMapGraphBean.setCurrency(form.getGraphCurrency());
        dgmDeltaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
        try {
            // DeltaのCSVを作成する
            dgmFacade.deltaExtract(dgmBean, res);
        } catch (ObsApplicationException bizex) {
            throw new ActionForwardException("fail", bizex);
        }
        return mapping.findForward("success");
    }
    /**
     * グラフ出力(Gamma Map)
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward gammaExtract(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // DgmBean取得する
        DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
        DgmGammaMapGraphBean dgmGammaMapGraphBean = dgmBean.getDgmGammaMapGraphBean();
        dgmGammaMapGraphBean.setCurrency(form.getGraphCurrency());
        dgmGammaMapGraphBean.setEquivalent(dgmBean.getEquivalent());
        try {
            // GammaのCSVを作成する
            dgmFacade.gammaExtract(dgmBean, res);
        } catch (ObsApplicationException bizex) {
            throw new ActionForwardException("fail", bizex);
        }
        return mapping.findForward("success");
    }
    /**
     * 共通画面でCANCELボタン押下時に呼ばれるメソッド。
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @return 転送先アクションフォワード
     * @throws Exception 例外が起こった時、スローする
     */
    public ActionForward commonCancel(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        // 画面情報の取得
        DgmForm form = (DgmForm) argForm;
        // DgmBean取得
        DgmBean dgmBean = (DgmBean) req.getSession().getAttribute(SESSION_DGM_BEAN);
        
        form.setEquivalentItems(dgmBean.getEquivalentItems());
        return mapping.findForward("success");
    }
    /**
     * 画面終了
     * @param mapping アクションマッピング
     * @param argForm アクションフォーム
     * @param req リクエスト
     * @param res レスポンス
     * @throws Exception 例外が起こった時、スローする
     * @return 転送先アクションフォワード
     */
    public ActionForward exit(ActionMapping mapping, ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
            throws Exception {
        try {
            // 終了処理
            dgmFacade.exit();
        } catch (ObsApplicationException bizex) {
            throw new ActionForwardException("fail", bizex);
        }
        // Sessionに設定したデータをクリアする。
        HttpSession session = req.getSession();
        session.removeAttribute(DGM_FORM);
        session.removeAttribute(SESSION_DGM_BEAN);
        session.removeAttribute(SESSION_DGM_PDF_PATH);
        session.removeAttribute(SESSION_DGM_CSV_PATH);
        session.removeAttribute(SESSION_DGM_FORM_REMARK);
        session.removeAttribute(SESSION_DGM_DELTA_GRAPH_BEAN);
        session.removeAttribute(SESSION_DGM_GAMMA_GRAPH_BEAN);
        session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_FREE_GRID_DATE_LIST);
        session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID);
        session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_REMARK);
        session.removeAttribute(DgmFreeTermScheduleAction.SESSION_DGM_FREE_TERM_SCHEDULE_TERM_ID_SEL);
        return mapping.findForward("success");
    }
    /**
     * 初期表示用Formを作成する
     * @param form
     */
    private void initializeForm(DgmForm form, boolean accessFlg) {
        // 集計単位プルダウン
        // 実行権限有無により、初期値を設定
        if (accessFlg) {
            form.setGroupByList(RiskReportConst.GROUP_BY_LIST_AUTH_NO_HEDGE_PORTFOLIO);
            form.setGroupBy(FrontFileConst.GROUP_BY_ALL);
            form.setGroupBySelected(FrontFileConst.GROUP_BY_ALL);
        } else {
            form.setGroupByList(RiskReportConst.GROUP_BY_LIST_NOTAUTH_NO_HEDGE_PORTFOLIO);
            form.setGroupBy(FrontFileConst.GROUP_BY_SECTION);
            // リクエストから選択した組織情報の取得
            List sectionList = (List) FwThreadContext.getAttribute(DgmFacade.COMMON_SELECT_SECTION_LIST);
            if (sectionList != null && !sectionList.isEmpty()) {
                // 単一選択の場合
                Object[] objects = (Object[]) sectionList.get(0);
                form.setGroupBySelectName(((Section) objects[0]).getFullName());
            }
            // Section選択
            form.setGroupBySelected(FrontFileConst.GROUP_BY_SECTION);
            form.setGroupBySelectedList(sectionList);
        }
        // 初期値セット
        form.setGroupBySelectName(null);
        form.setGroupBySelectedList(null);
        form.setCurrency(FrontFileConst.CURRENCY_ALL);
        form.setCurrencyInccyFlg(null);
        form.setEuroTotal(FrontFileConst.EURO_TOTAL_DETAILS);
        form.setEuroExchange(FrontFileConst.EURO_EXCHANGE_NO);
        form.setPosition(FrontFileConst.POSITION_REAL_POSITION);
        form.setMarketInfo(FrontFileConst.MARKET_MASTER_MAIN);
        form.setModel(FrontFileConst.MODEL_MB);
        form.setTerm(FrontFileConst.TERM_IMM);
        form.setEquivalent(FrontFileConst.EQUIVALENT_FUTURES);
        form.setEquivalentItems(null);
        form.setFixFloat(FrontFileConst.FIX_FLOAT_ALL);
        form.setCreateExecFlg(false);
        form.setMarketErrorFlg(false);
        form.setMarketErrorMessage(null);
    }
}

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3787/showart_65428.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP