/** * 表示すべき期間スケジュールが存在するかどうかを返します * * @return */ public boolean hasVisibleTerm() { for (AjaxTermScheduleDayContainer dayContainer : dayList) { if (dayContainer.isHasTerm()) { AjaxScheduleResultData rd = dayContainer.getTermResultData(); if (rd != null && (!rd.isPrivate() || rd.isLoginuser() || rd.isMember())) { return true; } } } return false; }
public boolean canAddTerm(AjaxScheduleResultData rd) { boolean canAdd = true; Date startDate = rd.getStartDate().getValue(); Date endDate = rd.getEndDate().getValue(); AjaxTermScheduleDayContainer con; int size = dayList.size(); for (int i = 0; i < size; i++) { con = dayList.get(i); Date conDate = con.getDate().getValue(); boolean isEmptyStartDate = ScheduleUtils.equalsToDate(ScheduleUtils.getEmptyDate(), startDate, false); boolean isEmptyEndDate = ScheduleUtils.equalsToDate(ScheduleUtils.getEmptyDate(), endDate, false); if (isEmptyStartDate && isEmptyEndDate) { // 開始日と入稿日が未設定の場合 if (con.isHasTerm()) { canAdd = false; } } else { if (isEmptyStartDate) { // 開始日が未設定の場合 if (ScheduleUtils.equalsToDate(endDate, conDate, false) || conDate.before(endDate)) { if (con.isHasTerm()) { canAdd = false; } } } else if (isEmptyEndDate) { // 入稿日が未設定の場合 if (ScheduleUtils.equalsToDate(startDate, conDate, false) || conDate.after(startDate)) { if (con.isHasTerm()) { canAdd = false; } } } else { // 開始日と入稿日が設定されている場合 if ((ScheduleUtils.equalsToDate(startDate, conDate, false) || conDate.after(startDate)) && (ScheduleUtils.equalsToDate(endDate, conDate, false) || conDate.before(endDate))) { if (con.isHasTerm()) { canAdd = false; } } } } } return canAdd; }
/** * Term をコンテナに格納します。 * * @param rd */ public void addTermResultData(int index, AjaxScheduleResultData rd) { int span = rd.getRowspan(); AjaxTermScheduleDayContainer con = dayList.get(index); con.setHasTerm(true); con.setTermResultData(rd); for (int i = 1; i < span; i++) { con = dayList.get(index + i); con.setHasTerm(true); } }