/** * <br> * 1行分の時間帯モデルを生成する <br> * [備考]出力済みの時間帯情報はHashMapに格納します * * @param tzhList 時間帯情報 * @param map 出力済みの時間帯情報情報 * @param admConf タイムカード基本設定 * @param dspList 表示情報リスト * @return ArrayList */ private ArrayList<TcdTimezoneMeiModel> __getDailyLineMdl( ArrayList<TcdTimezoneMeiModel> tzhList, HashMap<String, TcdTimezoneMeiModel> map, TcdAdmConfModel admConf, ArrayList<TcdTimezoneMeiModel> dspList) { TcdTimezoneMeiModel valueMdl = null; TcdTimezoneMeiModel tzMdl = null; int tzSid = 0; int maxRows = __getMaxRowsCount(admConf.getTacInterval()); int endIndex = 1; for (int i = 0; i < tzhList.size(); i++) { tzMdl = tzhList.get(i); tzSid = tzMdl.getTimeZoneSID(); if (map.containsKey(String.valueOf(tzSid))) { // 出力済みは除外 continue; } // 空白部分を設定 valueMdl = __getBlankTimeZone(tzMdl, admConf, endIndex); if (valueMdl != null) { dspList.add(valueMdl); endIndex = endIndex + valueMdl.getRows(); log__.debug("空白部分==>" + valueMdl.getRows()); } // 時間帯部分を設定 int rows = __getRows(tzMdl, admConf, endIndex); log__.debug("時間帯部分row==>" + rows); valueMdl = new TcdTimezoneMeiModel(); valueMdl.setRows(rows); valueMdl.setTimeZoneSID(tzMdl.getTimeZoneSID()); valueMdl.setTimeZoneKbn(tzMdl.getTimeZoneKbn()); valueMdl.setTimeZoneStr(tzMdl.getTimeZoneStr()); valueMdl.setIndex(endIndex); dspList.add(valueMdl); endIndex = endIndex + rows; map.put(String.valueOf(tzSid), tzMdl); // 格納先インデックスがMAXの場合breakする if (endIndex == maxRows) { break; } } // 表示終了時刻までの空白を設定 valueMdl = __getEndBlankTimeZone(tzMdl, admConf, endIndex); if (valueMdl != null) { dspList.add(valueMdl); endIndex = endIndex + valueMdl.getRows(); } return dspList; }
/** * <br> * TcdTimezoneMeiModelからHTML文字列を取得します。 <br> * 1ユーザの日間タイムカード情報 * * @param writer ライター * @param admConf 基本設定情報 * @param valueList 画面表示用時間帯設定 * @throws Exception IOエラー時にスロー */ private static void __writeHtmlString( JspWriter writer, TcdAdmConfModel admConf, ArrayList<TcdTimezoneMeiModel> valueList) throws Exception { TcdTimezoneMeiModel valueMdl = null; GsMessage gsMsg = new GsMessage(); String memory = gsMsg.getMessage(req__, "cmn.memory"); String timeBelt = gsMsg.getMessage(req__, "tcd.tcd070.01"); // タイムチャート部分出力 writer.println("<td width=\"40%\" align=\"center\" valign=\"top\">"); writer.println( " <table width=\"200\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"" + " class=\"tl0\">"); writer.println(" <tr>"); writer.println(" <th width=\"0%\" class=\"td_gray\" scope=\"col\"></th>"); writer.println(" <th width=\"0%\" class=\"td_gray\" scope=\"col\">"); writer.println( " <img src=\"./images/space10.gif\" alt=\"" + memory + "\" width=\"3\" height=\"7\">"); writer.println(" </th>"); writer.println( " <th width=\"100%\" align=\"center\" class=\"td_gray\" scope=\"col\">" + timeBelt); writer.println(" </th>"); writer.println(" </tr>"); // 0時~23時ループ int dspHour = 0; int counter = __getHourRowsCount(admConf.getTacInterval()); int hourRows = __getHourRowsCount(admConf.getTacInterval()); int maxRows = __getMaxRowsCount(admConf.getTacInterval()); for (int i = 0; i < maxRows; i++) { if (counter == hourRows) { writer.println("<tr align=\"center\">"); writer.println( "<th class=\"td_gray\" width=\"30\"" + " rowspan=\"" + hourRows + "\" nowrap>"); writer.println("" + dspHour + "</th>"); writer.println("<td class=\"td_gray\">"); writer.println( "<img src=\"./images/space10.gif\" alt=\"" + memory + "\"" + " width=\"3\" height=\"7\">"); writer.println("</td>"); dspHour++; counter = 1; } else { writer.println("<tr align=\"center\">"); writer.println("<td class=\"td_gray\">"); writer.println( "<img src=\"./images/space10.gif\" alt=\"" + memory + "\"" + " width=\"3\" height=\"7\">"); writer.println("</td>"); counter++; } // 挿入する時間帯を検索 valueMdl = __getTargetModel(valueList, i + 1); if (valueMdl != null) { // 時間帯情報セット if (valueMdl.getTimeZoneSID() != GSConstTimecard.BLANK_ZONE_SID) { String time = valueMdl.getTimeZoneStr(); String title = __getTitleString(Integer.parseInt(valueMdl.getTimeZoneKbn())); String color = __getStyleBgColor(Integer.parseInt(valueMdl.getTimeZoneKbn())); writer.println( "<td class=\"" + color + "\" " + " title=\"" + time + " " + title + "\"" + " rowspan=\"" + valueMdl.getRows() + "\">"); if (valueMdl.getRows() > GSConstTimecard.MAIN_DSP_HOURS) { writer.println("" + time + "<br>"); writer.println("" + title + ""); } } else { writer.println("<td class=\"td_type1\""); writer.println("rowspan=\"" + valueMdl.getRows() + "\" >"); } writer.println("</td>"); } writer.println("</tr>"); } writer.println("</table>"); writer.println("</td>"); }