Author: jdonnerstag
Date: Fri Oct 23 20:02:22 2009
New Revision: 829198

URL: http://svn.apache.org/viewvc?rev=829198&view=rev
Log:
fixed Date Validation - message formatting of the date
Issue: WICKET-2540

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/DateValidator.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java?rev=829198&r1=829197&r2=829198&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/AbstractValidator.java
 Fri Oct 23 20:02:22 2009
@@ -37,7 +37,6 @@
  * returns <code>null</code>. Validators that wish to validate the 
<code>null</code> value need to
  * override {...@link #validateOnNullValue()} and return <code>true</code>.
  * 
- * 
  * @author Jonathan Locke
  * @author Eelco Hillenius
  * @author Igor Vaynberg (ivaynberg)
@@ -200,7 +199,7 @@
         */
        protected Map<String, Object> variablesMap(IValidatable<T> validatable)
        {
-               final Map<String, Object> resourceModel = new HashMap<String, 
Object>(1);
+               final Map<String, Object> resourceModel = new HashMap<String, 
Object>();
                return resourceModel;
        }
 

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/DateValidator.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/DateValidator.java?rev=829198&r1=829197&r2=829198&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/DateValidator.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/validation/validator/DateValidator.java
 Fri Oct 23 20:02:22 2009
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.validation.validator;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Map;
 
@@ -35,10 +36,6 @@
  */
 public abstract class DateValidator extends AbstractValidator<Date>
 {
-
-       /**
-        * 
-        */
        private static final long serialVersionUID = 1L;
 
        /**
@@ -66,7 +63,24 @@
         */
        public static DateValidator range(Date minimum, Date maximum)
        {
-               return new RangeValidator(minimum, maximum);
+               return new RangeValidator(minimum, maximum, null);
+       }
+
+       /**
+        * @see #range(Date, Date)
+        * 
+        * @param minimum
+        *            the minimum <code>Date</code>
+        * @param maximum
+        *            the maximum <code>Date</code>
+        * @param format
+        *            The format string used to format the date with 
SimpleDateFormat
+        * 
+        * @return the requested <code>DateValidator</code>
+        */
+       public static DateValidator range(Date minimum, Date maximum, String 
format)
+       {
+               return new RangeValidator(minimum, maximum, format);
        }
 
        /**
@@ -91,7 +105,22 @@
         */
        public static DateValidator minimum(Date minimum)
        {
-               return new MinimumValidator(minimum);
+               return new MinimumValidator(minimum, null);
+       }
+
+       /**
+        * @see #minimum(Date)
+        * 
+        * @param minimum
+        *            the minimum <code>Date</code>
+        * @param format
+        *            The format string used to format the date with 
SimpleDateFormat
+        * 
+        * @return the requested <code>DateValidator</code>
+        */
+       public static DateValidator minimum(Date minimum, String format)
+       {
+               return new MinimumValidator(minimum, format);
        }
 
        /**
@@ -115,29 +144,58 @@
         */
        public static DateValidator maximum(Date maximum)
        {
-               return new MaximumValidator(maximum);
+               return new MaximumValidator(maximum, null);
        }
 
+       /**
+        * @see #maximum(Date)
+        * 
+        * @param maximum
+        *            the maximum <code>Date</code>
+        * @param format
+        *            The format string used to format the date with 
SimpleDateFormat
+        * 
+        * @return the requested <code>DateValidator</code>
+        */
+       public static DateValidator maximum(Date maximum, String format)
+       {
+               return new MaximumValidator(maximum, format);
+       }
 
+       /**
+        * 
+        */
        private static class RangeValidator extends DateValidator
        {
                private static final long serialVersionUID = 1L;
                private final Date minimum;
                private final Date maximum;
+               private final String format;
 
-               private RangeValidator(Date minimum, Date maximum)
+               private RangeValidator(Date minimum, Date maximum, String 
format)
                {
                        this.minimum = minimum;
                        this.maximum = maximum;
-
+                       this.format = format;
                }
 
                @Override
                protected Map<String, Object> variablesMap(IValidatable<Date> 
validatable)
                {
                        final Map<String, Object> map = 
super.variablesMap(validatable);
-                       map.put("minimum", minimum);
-                       map.put("maximum", maximum);
+                       if (format == null)
+                       {
+                               map.put("minimum", minimum);
+                               map.put("maximum", maximum);
+                               map.put("inputdate", validatable.getValue());
+                       }
+                       else
+                       {
+                               SimpleDateFormat sdf = new 
SimpleDateFormat(format);
+                               map.put("minimum", sdf.format(minimum));
+                               map.put("maximum", sdf.format(maximum));
+                               map.put("inputdate", 
sdf.format(validatable.getValue()));
+                       }
                        return map;
                }
 
@@ -158,26 +216,36 @@
                        {
                                error(validatable);
                        }
-
                }
-
        }
 
        private static class MinimumValidator extends DateValidator
        {
                private static final long serialVersionUID = 1L;
                private final Date minimum;
+               private final String format;
 
-               private MinimumValidator(Date minimum)
+               private MinimumValidator(Date minimum, String format)
                {
                        this.minimum = minimum;
+                       this.format = format;
                }
 
                @Override
                protected Map<String, Object> variablesMap(IValidatable<Date> 
validatable)
                {
                        final Map<String, Object> map = 
super.variablesMap(validatable);
-                       map.put("minimum", minimum);
+                       if (format == null)
+                       {
+                               map.put("minimum", minimum);
+                               map.put("inputdate", validatable.getValue());
+                       }
+                       else
+                       {
+                               SimpleDateFormat sdf = new 
SimpleDateFormat(format);
+                               map.put("minimum", sdf.format(minimum));
+                               map.put("inputdate", 
sdf.format(validatable.getValue()));
+                       }
                        return map;
                }
 
@@ -187,7 +255,6 @@
                        return "DateValidator.minimum";
                }
 
-
                @Override
                protected void onValidate(IValidatable<Date> validatable)
                {
@@ -196,26 +263,36 @@
                        {
                                error(validatable);
                        }
-
                }
-
        }
 
        private static class MaximumValidator extends DateValidator
        {
                private static final long serialVersionUID = 1L;
                private final Date maximum;
+               private final String format;
 
-               private MaximumValidator(Date maximum)
+               private MaximumValidator(Date maximum, String format)
                {
                        this.maximum = maximum;
+                       this.format = format;
                }
 
                @Override
                protected Map<String, Object> variablesMap(IValidatable<Date> 
validatable)
                {
                        final Map<String, Object> map = 
super.variablesMap(validatable);
-                       map.put("maximum", maximum);
+                       if (format == null)
+                       {
+                               map.put("maximum", maximum);
+                               map.put("inputdate", validatable.getValue());
+                       }
+                       else
+                       {
+                               SimpleDateFormat sdf = new 
SimpleDateFormat(format);
+                               map.put("maximum", sdf.format(maximum));
+                               map.put("inputdate", 
sdf.format(validatable.getValue()));
+                       }
                        return map;
                }
 
@@ -225,7 +302,6 @@
                        return "DateValidator.maximum";
                }
 
-
                @Override
                protected void onValidate(IValidatable<Date> validatable)
                {
@@ -234,8 +310,6 @@
                        {
                                error(validatable);
                        }
-
                }
-
        }
 }


Reply via email to