/** * <br> * [機 能] 初期表示を行う <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param userSid ユーザSID * @param reqMdl リクエスト情報 * @throws SQLException SQL実行時例外 */ public void setInitData( Connection con, Sml310ParamModel paramMdl, int userSid, RequestModel reqMdl) throws SQLException { List<AccountDataModel> adMdlList = new ArrayList<AccountDataModel>(); List<LabelDataModel> ldMdlList = new ArrayList<LabelDataModel>(); Sml310Dao dao = new Sml310Dao(con); // SmlCommonBiz comonBiz = new SmlCommonBiz(con, reqMdl); // //アカウントリストを取得 // adMdlList = dao.getAccountList(userSid); // paramMdl.setAcntList(comonBiz.getAcntCombo(reqMdl, adMdlList)); // アカウント名取得 int selectSacSid = paramMdl.getSmlAccountSid(); SmlAccountDao sacDao = new SmlAccountDao(con); SmlAccountModel sacMdl = sacDao.select(selectSacSid); paramMdl.setSml310accountName(sacMdl.getSacName()); // ラベルリストを取得 int dspCnt = paramMdl.getDspCount(); if (dspCnt == 0 && adMdlList.size() != 0) { paramMdl.setSmlAccountSid(adMdlList.get(0).getAccountSid()); paramMdl.setDspCount(1); } int selectAccountNum = paramMdl.getSmlAccountSid(); ldMdlList = dao.getLabelList(selectAccountNum); LabelDataModel sldDspMdl = null; int count = 0; // ラベルを画面表示用に加工する List<LabelDataModel> lbList = new ArrayList<LabelDataModel>(); for (LabelDataModel sldSetMdl : ldMdlList) { sldDspMdl = new LabelDataModel(); sldDspMdl.setLabelSid(sldSetMdl.getLabelSid()); sldDspMdl.setLabelName(sldSetMdl.getLabelName()); sldDspMdl.setLabelOrder(sldSetMdl.getLabelOrder()); sldDspMdl.setLbValue( __getRadioValueStr(sldSetMdl.getLabelSid(), sldSetMdl.getLabelOrder(), count)); count++; lbList.add(sldDspMdl); } paramMdl.setLbnList(lbList); // チェックされている並び順がNULLの場合、初期値設定 if (StringUtil.isNullZeroString(paramMdl.getSml310SortRadio()) && ldMdlList.size() > 0) { LabelDataModel sldMdl = ldMdlList.get(0); paramMdl.setSml310SortRadio( __getRadioValueStr(sldMdl.getLabelSid(), sldMdl.getLabelOrder(), 0)); } }
/** * <br> * [機 能] 順序変更処理 <br> * [解 説] <br> * [備 考] * * @param con コネクション * @param paramMdl パラメータ情報 * @param changeKbn 処理区分 0:順序をあげる 1:順序を下げる * @throws SQLException SQL実行時例外 */ public void updateSort(Connection con, Sml310ParamModel paramMdl, int changeKbn) throws SQLException { // 画面表示全キーリスト取得 String[] keyList = paramMdl.getSml310sortLabel(); if (keyList == null || keyList.length < 1) { return; } // ラジオ選択値取得 String selectedKey = paramMdl.getSml310SortRadio(); if (StringUtil.isNullZeroString(selectedKey)) { return; } String[] selectKeyList = selectedKey.split(SORT_SEPARATE); // 画面表示順 int selectedKeyDispNum = Integer.parseInt(selectKeyList[2]); log__.debug("画面表示順 = " + selectedKeyDispNum); // 画面の最初に表示されている項目 + 順位を上げる if (selectedKeyDispNum == 0 && changeKbn == GSConstSmail.SORT_UP) { return; // 画面の最後に表示されている項目 + 順位を下げる } else if (selectedKeyDispNum == keyList.length - 1 && changeKbn == GSConstSmail.SORT_DOWN) { return; } // 選択された項目のラベルSID + ソート順 int motoSid = Integer.parseInt(selectKeyList[0]); int motoSort = Integer.parseInt(selectKeyList[1]); int sakiSid = -1; int sakiSort = -1; int target = selectedKeyDispNum; if (changeKbn == GSConstSmail.SORT_UP) { target -= 1; } else if (changeKbn == GSConstSmail.SORT_DOWN) { target += 1; } // 画面表示全キーから入れ替え先のデータを探す TreeMap<Integer, String> sortMap = new TreeMap<Integer, String>(); for (String allKey : keyList) { String[] allKeyList = allKey.split(SORT_SEPARATE); int allKeyDispNum = Integer.parseInt(allKeyList[2]); if (allKeyDispNum == target) { sakiSid = Integer.parseInt(allKeyList[0]); sakiSort = Integer.parseInt(allKeyList[1]); } else if (allKeyDispNum > target) { sortMap.put(allKeyDispNum, allKey); } } if (sakiSid == -1 || sakiSort == -1) { return; } // 順序入れ替え if (motoSort == sakiSort) { motoSort++; } Sml310Dao dao = new Sml310Dao(con); dao.updateSort(motoSid, motoSort, sakiSid, sakiSort); int newSort = sakiSort; // 新しいキーを設定 paramMdl.setSml310SortRadio(__getRadioValueStr(motoSid, newSort, target)); }