svnno****@sourc*****
svnno****@sourc*****
2008年 11月 25日 (火) 18:21:07 JST
Revision: 1444 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1444 Author: shinsuke Date: 2008-11-25 18:21:07 +0900 (Tue, 25 Nov 2008) Log Message: ----------- compare start and end date. Modified Paths: -------------- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java scheduler/trunk/src/main/resources/application.properties scheduler/trunk/src/main/resources/application_ja.properties -------------- next part -------------- Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/OnetimeScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -19,6 +19,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -168,6 +169,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(onetimeScheduleForm.startDate, + onetimeScheduleForm.startTime, onetimeScheduleForm.endDate, + onetimeScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } return "confirm.jsp"; } @@ -201,6 +207,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(onetimeScheduleForm.startDate, + onetimeScheduleForm.startTime, onetimeScheduleForm.endDate, + onetimeScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); @@ -222,6 +233,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(onetimeScheduleForm.startDate, + onetimeScheduleForm.startTime, onetimeScheduleForm.endDate, + onetimeScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/admin/schedule/RepeatScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -19,6 +19,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -168,6 +169,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(repeatScheduleForm.startDate, + repeatScheduleForm.startTime, repeatScheduleForm.endDate, + repeatScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } return "confirm.jsp"; } @@ -201,6 +207,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(repeatScheduleForm.startDate, + repeatScheduleForm.startTime, repeatScheduleForm.endDate, + repeatScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); @@ -222,6 +233,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(repeatScheduleForm.startDate, + repeatScheduleForm.startTime, repeatScheduleForm.endDate, + repeatScheduleForm.endTime)) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/OnetimeScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -209,6 +210,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -243,6 +249,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); @@ -269,6 +280,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/facility/RepeatScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -207,6 +208,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -241,6 +247,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); @@ -267,6 +278,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/OnetimeScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.OnetimeScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -203,6 +204,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -237,6 +243,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); @@ -263,6 +274,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(onetimeScheduleForm.getStartDate(), + onetimeScheduleForm.getStartTime(), onetimeScheduleForm + .getEndDate(), onetimeScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); onetimeScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/action/user/schedule/RepeatScheduleAction.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -25,6 +25,7 @@ import jp.sf.pal.scheduler.service.FacilityService; import jp.sf.pal.scheduler.service.RepeatScheduleService; import jp.sf.pal.scheduler.service.UserInfoService; +import jp.sf.pal.scheduler.util.SchedulerUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -201,6 +202,11 @@ @Execute(validator = true, input = "edit.jsp") public String confirm() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } editable = true; return "confirm.jsp"; } @@ -235,6 +241,11 @@ @Execute(validator = true, input = "edit.jsp") public String create() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); @@ -261,6 +272,11 @@ @Execute(validator = true, input = "edit.jsp") public String update() { + if (!SchedulerUtil.compare(repeatScheduleForm.getStartDate(), + repeatScheduleForm.getStartTime(), repeatScheduleForm + .getEndDate(), repeatScheduleForm.getEndTime())) { + throw new ActionMessagesException("errors.invalid_end_date"); + } try { EventSchedule eventSchedule = createEventSchedule(); repeatScheduleService.store(eventSchedule); Modified: scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java =================================================================== --- scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/java/jp/sf/pal/scheduler/util/SchedulerUtil.java 2008-11-25 09:21:07 UTC (rev 1444) @@ -16,7 +16,82 @@ import jp.sf.pal.scheduler.db.exentity.EventScheduleMapping; import jp.sf.pal.scheduler.db.exentity.FacilityScheduleMapping; +import org.seasar.struts.exception.ActionMessagesException; + public class SchedulerUtil { + + public static boolean compare(String yyyymmdd1, String HHmm1, + String yyyymmdd2, String HHmm2) { + if (yyyymmdd1 == null) { + // invalid state + return false; + } + + if (yyyymmdd2 != null) { + if (yyyymmdd1.equals(yyyymmdd2)) { + if (HHmm1 == null || HHmm2 == null) { + return true; + } + // compare time + Date date1 = parseHHmm(HHmm1); + Date date2 = parseHHmm(HHmm2); + if (date1.getTime() < date2.getTime()) { + return true; + } else { + return false; + } + } else { + // compare date + Date date1 = parseYYYYMMDD(yyyymmdd1); + Date date2 = parseYYYYMMDD(yyyymmdd2); + if (date1.getTime() <= date2.getTime()) { + return true; + } else { + return false; + } + } + } else { + if (HHmm1 != null && HHmm2 != null) { + // compare time + Date date1 = parseHHmm(HHmm1); + Date date2 = parseHHmm(HHmm2); + if (date1.getTime() < date2.getTime()) { + return true; + } else { + return false; + } + } else { + // nothing + return true; + } + } + } + + public static Date parseYYYYMMDD(String yyyymmdd) { + try { + String[] values = yyyymmdd.trim().split("/"); + int year = Integer.parseInt(values[0]); + int month = Integer.parseInt(values[1]); + int date = Integer.parseInt(values[2]); + return DateUtil.get(year - 1900, month - 1, date); + } catch (Exception e) { + throw new ActionMessagesException("errors.invalid_date_format", + new Object[] { yyyymmdd }); + } + } + + public static Date parseHHmm(String HHmm) { + try { + String[] values = HHmm.trim().split(":"); + int hour = Integer.parseInt(values[0]); + int min = Integer.parseInt(values[1]); + return DateUtil.get(0, 0, 0, hour, min); + } catch (Exception e) { + throw new ActionMessagesException("errors.invalid_time_format", + new Object[] { HHmm }); + } + } + public static List<Map<String, Object>> createSideCalendar( Calendar targetCalendar) { List<Map<String, Object>> calendarDayItems = new LinkedList<Map<String, Object>>(); Modified: scheduler/trunk/src/main/resources/application.properties =================================================================== --- scheduler/trunk/src/main/resources/application.properties 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/resources/application.properties 2008-11-25 09:21:07 UTC (rev 1444) @@ -81,4 +81,6 @@ labels.to_next=Next labels.to_back=Back - +errors.invalid_date_format=Invalid date format({0}). +errors.invalid_time_format=Invalid time format({0}). +errors.invalid_end_date=To Date/Time must be after From Date/Time. Modified: scheduler/trunk/src/main/resources/application_ja.properties =================================================================== --- scheduler/trunk/src/main/resources/application_ja.properties 2008-11-25 08:38:33 UTC (rev 1443) +++ scheduler/trunk/src/main/resources/application_ja.properties 2008-11-25 09:21:07 UTC (rev 1444) @@ -51,3 +51,7 @@ labels.config=\u8a2d\u5b9a +errors.invalid_date_format=\u65e5\u4ed8\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093({0})\u3002 +errors.invalid_time_format=\u6642\u9593\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093({0})\u3002 +errors.invalid_end_date=To Date/Time must be after From Date/Time. +