You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gc...@apache.org on 2010/07/22 18:49:55 UTC

svn commit: r966740 - in /myfaces/trinidad/trunk/trinidad-impl/src/main: java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java javascript/META-INF/adf/jsLibs/CoreFormat.js

Author: gcrawford
Date: Thu Jul 22 16:49:55 2010
New Revision: 966740

URL: http://svn.apache.org/viewvc?rev=966740&view=rev
Log:
TRINIDAD-1818 TrDateTimeRangeValidator should validate using date object, not date string

Modified:
    myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java
    myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java?rev=966740&r1=966739&r2=966740&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java Thu Jul 22 16:49:55 2010
@@ -108,7 +108,8 @@ public class DateTimeRangeValidator exte
     String hintRange = this.getHintNotInRange();
     
     Map<String, String> cMessages = null;
-    if(messageDetailMax != null || messageDetailMin != null || messageDetailRange != null || hintMax != null || hintMin != null|| hintRange != null)
+    if (messageDetailMax != null || messageDetailMin != null || messageDetailRange != null || 
+        hintMax != null || hintMin != null || hintRange != null)
     {
       cMessages = new HashMap<String, String>();
       cMessages.put("max", messageDetailMax);
@@ -119,7 +120,10 @@ public class DateTimeRangeValidator exte
       cMessages.put("hintRange", hintRange);
     }
     
-    return _getTrDateTimeRangeValidator(context, component, maxStr, minStr, cMessages);
+    return _getTrDateTimeRangeValidator(context, component, maxStr, minStr, 
+                                        max != null ? Long.toString(max.getTime()) : "null", 
+                                        min != null ? Long.toString(min.getTime()) : "null", 
+                                        cMessages);
   }
   
   public String getClientLibrarySource(
@@ -133,6 +137,8 @@ public class DateTimeRangeValidator exte
       UIComponent component,
       String max,
       String min,
+      String maxMilli,
+      String minMilli,
       Map<String, String> messages)
   {
     StringBuilder outBuffer = new StringBuilder(31 + min.length() + max.length());
@@ -156,6 +162,10 @@ public class DateTimeRangeValidator exte
         outBuffer.append("null");
       }
     }
+    outBuffer.append(',');
+    outBuffer.append(maxMilli);
+    outBuffer.append(',');
+    outBuffer.append(minMilli);
     outBuffer.append(')');
 
     return outBuffer.toString();

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js?rev=966740&r1=966739&r2=966740&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js Thu Jul 22 16:49:55 2010
@@ -568,17 +568,17 @@ TrLengthValidator.prototype.validate  = 
 }
 
 function TrDateTimeRangeValidator(
-  maxValueString,
-  minValueString,
+  maxDateString,
+  minDateString,
   messages,
-  maxValueObject,
-  minValueObject
+  maxDateMilliseconds,
+  minDateMilliseconds
   )
 {
-  this._maxValue = maxValueString;
-  this._minValue = minValueString;
-  this._maxValueObject = maxValueObject;
-  this._minValueObject = minValueObject;
+  this._maxDateString = maxDateString;
+  this._minDateString = minDateString;
+  this._maxDateMilliseconds = maxDateMilliseconds;
+  this._minDateMilliseconds = minDateMilliseconds;
   this._messages = messages;
   // for debugging
   this._class = "TrDateTimeRangeValidator";
@@ -589,12 +589,14 @@ TrDateTimeRangeValidator.prototype.getHi
   converter
   )
 {
-  var max = null;
-  var min = null;
-  if (this._maxValue)
-    max = this._maxValue;
-  if (this._minValue)
-    min = this._minValue;
+  if (this._maxDateString == null && this._maxDateMilliseconds != null)
+    this._maxDateString = converter.getAsString(new Date(this._maxDateMilliseconds));
+  
+  if (this._minDateString == null && this._minDateMilliseconds != null)
+    this._minDateString = converter.getAsString(new Date(this._minDateMilliseconds));
+    
+  var max = this._maxDateString ? this._maxDateString : null;
+  var min = this._minDateString ? this._minDateString : null;
 
   return _returnRangeHints(
     this._messages,
@@ -608,24 +610,31 @@ TrDateTimeRangeValidator.prototype.getHi
     "hintRange"
   );
 }
+
 TrDateTimeRangeValidator.prototype.validate  = function(
   value,
   label,
   converter
 )
 {
+  if (this._maxDateString == null && this._maxDateMilliseconds != null)
+    this._maxDateString = converter.getAsString(new Date(this._maxDateMilliseconds));
+  
+  if (this._minDateString == null && this._minDateMilliseconds != null)
+    this._minDateString = converter.getAsString(new Date(this._minDateMilliseconds));
+    
   dateTime = value.getTime();
   var facesMessage;
   //range
-  if (this._minValue && this._maxValue)
+  if (this._minDateString && this._maxDateString)
   {
     try
     {
-      minDate = this._minValueObject ? this._minValueObject.getTime() : 
-        converter.getAsObject(this._minValue).getTime();
+      minDate = (this._minDateMilliseconds != null) ? this._minDateMilliseconds : 
+        converter.getAsObject(this._minDateString).getTime();
         
-      maxDate = this._maxValueObject ? this._maxValueObject.getTime() : 
-        converter.getAsObject(this._maxValue).getTime();
+      maxDate = (this._maxDateMilliseconds != null) ? this._maxDateMilliseconds : 
+        converter.getAsObject(this._maxDateString).getTime();
     }
     catch (e)
     {
@@ -633,41 +642,42 @@ TrDateTimeRangeValidator.prototype.valid
       // client conversion fails
       return value;
     }
-    if(dateTime >= minDate && dateTime <= maxDate)
+    
+    if (dateTime >= minDate && dateTime <= maxDate)
     {
       return value;
     }
     else
     {
       var key = "org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.NOT_IN_RANGE";
-      if(this._messages && this._messages["range"])
-        {
+      if (this._messages && this._messages["range"])
+      {
           facesMessage = _createCustomFacesMessage(TrMessageFactory.getSummaryString(key),
                                         this._messages["range"],
                                         label,
                                         ""+converter.getAsString(value),
-                                        ""+this._minValue,
-                                        ""+this._maxValue);
-        }
+                                        ""+this._minDateString,
+                                        ""+this._maxDateString);
+      }
       else
       {
           facesMessage = _createFacesMessage(key,
                                         label,
                                         ""+converter.getAsString(value),
-                                        ""+this._minValue,
-                                        ""+this._maxValue);
+                                        ""+this._minDateString,
+                                        ""+this._maxDateString);
       }
     }
   }
   else
   {
     //only min
-    if(this._minValue)
+    if (this._minDateString)
     {
       try
       {
-        minDate = this._minValueObject ? this._minValueObject.getTime() : 
-          converter.getAsObject(this._minValue).getTime();
+        minDate = (this._minDateMilliseconds != null) ? this._minDateMilliseconds : 
+          converter.getAsObject(this._minDateString).getTime();
       }
       catch (e)
       {
@@ -676,37 +686,37 @@ TrDateTimeRangeValidator.prototype.valid
         return value;
       }
 
-      if(dateTime >= minDate)
+      if (dateTime >= minDate)
       {
         return value;
       }
       else
       {
         var key = "org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.MINIMUM";
-      if(this._messages && this._messages["min"])
+        if (this._messages && this._messages["min"])
         {
           facesMessage = _createCustomFacesMessage(TrMessageFactory.getSummaryString(key),
                                         this._messages["min"],
                                         label,
                                         ""+converter.getAsString(value),
-                                        ""+this._minValue);
+                                        ""+this._minDateString);
         }
-      else
-      {
+        else
+        {
           facesMessage = _createFacesMessage(key,
                                         label,
                                         ""+converter.getAsString(value),
-                                        ""+this._minValue);
-      }
+                                        ""+this._minDateString);
+        }
       }
     }
     //max only
-    else if(this._maxValue)
+    else if (this._maxDateString)
     {
       try
       {
-        maxDate = this._maxValueObject ? this._maxValueObject.getTime() : 
-          converter.getAsObject(this._maxValue).getTime();
+        maxDate = (this._maxDateMilliseconds != null) ? this._maxDateMilliseconds : 
+          converter.getAsObject(this._maxDateString).getTime();
       }
       catch (e)
       {
@@ -714,27 +724,28 @@ TrDateTimeRangeValidator.prototype.valid
         // client conversion fails
         return value;
       }
-      if(dateTime <= maxDate)
+      
+      if (dateTime <= maxDate)
       {
         return value;
       }
       else
       {
         var key = "org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.MAXIMUM";
-        if(this._messages && this._messages["max"])
+        if (this._messages && this._messages["max"])
         {
           facesMessage = _createCustomFacesMessage(TrMessageFactory.getSummaryString(key),
                                         this._messages["max"],
                                         label,
                                         ""+converter.getAsString(value),
-                                        ""+this._maxValue);
+                                        ""+this._maxDateString);
         }
         else
         {
           facesMessage = _createFacesMessage(key,
                                         label,
                                         ""+converter.getAsString(value),
-                                        ""+this._maxValue);
+                                        ""+this._maxDateString);
         }
       }
     }