[pal-cvs 3709] [1444] compare start and end date.

Back to archive index

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.
+


pal-cvs メーリングリストの案内
Back to archive index