You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by ma...@apache.org on 2006/12/19 12:41:57 UTC
svn commit: r488660 - in
/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main:
java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java
javascript/META-INF/adf/jsLibs/CoreFormat.js
Author: matzew
Date: Tue Dec 19 04:41:56 2006
New Revision: 488660
URL: http://svn.apache.org/viewvc?view=rev&rev=488660
Log:
enhanced timerangevalidator to send down custom messages
Modified:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java?view=diff&rev=488660&r1=488659&r2=488660
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java Tue Dec 19 04:41:56 2006
@@ -14,9 +14,12 @@
* limitations under the License.
*/
package org.apache.myfaces.trinidadinternal.validator;
+import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -24,6 +27,7 @@
import org.apache.myfaces.trinidad.validator.ClientValidator;
import org.apache.myfaces.trinidadinternal.convert.GenericConverterFactory;
+import org.apache.myfaces.trinidadinternal.util.JsonUtils;
public class DateTimeRangeValidator extends org.apache.myfaces.trinidad.validator.DateTimeRangeValidator
implements ClientValidator
@@ -73,10 +77,24 @@
{
Date max = getMaximum();
Date min = getMinimum();
- String maxStr = (max == null) ? null : Long.toString(max.getTime());
- String minStr = (min == null) ? null : Long.toString(min.getTime());
+ String maxStr = (max == null) ? "null" : Long.toString(max.getTime());
+ String minStr = (min == null) ? "null" : Long.toString(min.getTime());
- return _getTrDateTimeRangeValidator(context, component, maxStr, minStr);
+ String messageDetailMax = this.getMessageDetailMaximum();
+ String messageDetailMin = this.getMessageDetailMinimum();
+ String messageDetailRange = this.getMessageDetailNotInRange();
+
+ Map<String, String> cMessages = null;
+ if(messageDetailMax != null || messageDetailMin != null || messageDetailRange != null)
+ {
+ cMessages = new HashMap<String, String>();
+ cMessages.put("max", messageDetailMax);
+ cMessages.put("min", messageDetailMin);
+ cMessages.put("range", messageDetailRange);
+ }
+
+
+ return _getTrDateTimeRangeValidator(context, component, maxStr, minStr, cMessages);
}
@@ -91,14 +109,31 @@
FacesContext context,
UIComponent component,
String max,
- String min)
+ String min,
+ Map messages)
{
StringBuilder outBuffer = new StringBuilder(31 + min.length() + max.length());
outBuffer.append("new TrDateTimeRangeValidator(");
outBuffer.append(max);
outBuffer.append(',');
outBuffer.append(min);
- outBuffer.append(")");
+ outBuffer.append(',');
+ if(messages == null)
+ {
+ outBuffer.append("null");
+ }
+ else
+ {
+ try
+ {
+ JsonUtils.writeMap(outBuffer, messages, false);
+ }
+ catch (IOException e)
+ {
+ outBuffer.append("null");
+ }
+ }
+ outBuffer.append(')');
return outBuffer.toString();
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js?view=diff&rev=488660&r1=488659&r2=488660
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/CoreFormat.js Tue Dec 19 04:41:56 2006
@@ -346,7 +346,6 @@
string = "" + value;
numberValue = parseFloat(string);
var facesMessage;
-
if(this._minValue && this._maxValue)
{
//range
@@ -525,12 +524,12 @@
function TrDateTimeRangeValidator(
maxValue,
- minValue)
+ minValue,
+ messages)
{
-
this._maxValue = maxValue;
this._minValue = minValue;
-
+ this._messages = messages;
// for debugging
this._class = "TrDateTimeRangeValidator";
}
@@ -554,23 +553,98 @@
)
{
dateTime = value.getTime();
- minDate = parseInt(this._minValue);
- maxDate = parseInt(this._maxValue);
-
- if(dateTime >= minDate && dateTime <= maxDate)
+ var facesMessage;
+ //range
+ if(this._minValue && this._maxValue)
{
- return value;
+ minDate = parseInt(this._minValue);
+ maxDate = parseInt(this._maxValue);
+ 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"])
+ {
+ facesMessage = _createCustomFacesMessage(TrMessageFactory.getSummaryString(key),
+ this._messages["range"],
+ label,
+ ""+converter.getAsString(value),
+ ""+converter.getAsString(new Date(this._minValue)),
+ ""+converter.getAsString(new Date(this._maxValue)));
+ }
+ else
+ {
+ facesMessage = _createFacesMessage(key,
+ label,
+ string,
+ ""+this._minValue,
+ ""+this._maxValue);
+ }
+ }
}
else
{
- facesMessage = _createFacesMessage("org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.NOT_IN_RANGE",
+ //only min
+ if(this._minValue)
+ {
+ minDate = parseInt(this._minValue);
+ if(dateTime >= minDate)
+ {
+ return value;
+ }
+ else
+ {
+ var key = "org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.MINIMUM";
+ if(this._messages && this._messages["min"])
+ {
+ facesMessage = _createCustomFacesMessage(TrMessageFactory.getSummaryString(key),
+ this._messages["min"],
+ label,
+ ""+converter.getAsString(value),
+ ""+converter.getAsString(new Date(this._minValue)));
+ }
+ else
+ {
+ facesMessage = _createFacesMessage(key,
+ label,
+ ""+converter.getAsString(value),
+ ""+converter.getAsString(new Date(this._minValue)));
+ }
+ }
+ }
+ //max only
+ else
+ {
+ maxDate = parseInt(this._maxValue);
+ if(dateTime <= maxDate)
+ {
+ return value;
+ }
+ else
+ {
+ var key = "org.apache.myfaces.trinidad.validator.DateTimeRangeValidator.MAXIMUM";
+ if(this._messages && this._messages["max"])
+ {
+ facesMessage = _createCustomFacesMessage(TrMessageFactory.getSummaryString(key),
+ this._messages["max"],
+ label,
+ ""+converter.getAsString(value),
+ ""+converter.getAsString(new Date(this._maxValue)));
+ }
+ else
+ {
+ facesMessage = _createFacesMessage(key,
label,
""+converter.getAsString(value),
- ""+converter.getAsString(new Date(this._minValue)),
""+converter.getAsString(new Date(this._maxValue)));
- throw new TrConverterException(facesMessage);
+ }
+ }
+ }
}
-
+ throw new TrConverterException(facesMessage);
}
function TrDateRestrictionValidator(