com.ibm.xsp.validator
Class DateTimeRangeValidator

java.lang.Object
  extended by com.ibm.xsp.complex.ValueBindingObjectImpl
      extended by com.ibm.xsp.validator.AbstractValidator
          extended by com.ibm.xsp.validator.DateTimeRangeValidator
All Implemented Interfaces:
ComponentBindingObject, ValueBindingObject, ClientSideValidator, java.util.EventListener, javax.faces.component.StateHolder, javax.faces.validator.Validator

public class DateTimeRangeValidator
extends AbstractValidator
implements ClientSideValidator

Extends the standard date time range validator to add support for automatic client-side validation and computed expressions on it's properties. Corresponds to the xp:validateDateTimeRange tag


Field Summary
 
Fields inherited from interface javax.faces.validator.Validator
NOT_IN_RANGE_MESSAGE_ID
 
Constructor Summary
DateTimeRangeValidator()
           
 
Method Summary
protected  void calculateTimeAndPrintErrors(java.util.Date value, javax.faces.context.FacesContext context, javax.faces.component.UIInput component)
          Protected method.
protected  java.util.Date convertToDate(java.lang.Object value)
          Protected method.
 java.lang.String generateClientSideValidation(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
          Generate client side validation, a snippet of browser JavaScript in a single line, creating an instance of a Validator object matching the format described in xspClientDojo.js, the attachValidator function.
 java.lang.String getInvalidMessage()
          Unlike server-side validators which display different error messages depending on the exact way that validation fails, client side validators usually have only one error message.
 java.util.Date getMaximum()
          Returns the maximum date in the range to be validated, or null if there is no upper bound.
 java.util.Date getMinimum()
          Returns the minimum date in the range to be validated, or null if there is no lower bound.
 void restoreState(javax.faces.context.FacesContext context, java.lang.Object state)
           
 java.lang.Object saveState(javax.faces.context.FacesContext context)
           
 void setMaximum(java.util.Date maximum)
          Sets the maximum Date considered valid as a value for the control.
 void setMinimum(java.util.Date minimum)
          Sets the minimum Date considered valid as a value for the control.
 void validate(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component, java.lang.Object value)
          Perform the correctness checks implemented by this Validator against the specified UIInput.
 
Methods inherited from class com.ibm.xsp.validator.AbstractValidator
addInputInvalidMessage, createNullContextOrComponentEx, createValidatorEx, getInvalidRangeMessage, getMessage, getNotCorrectTypeMessage, setMessage
 
Methods inherited from class com.ibm.xsp.complex.ValueBindingObjectImpl
getComponent, getFacesContext, getValueBinding, isTransient, setComponent, setTransient, setValueBinding
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DateTimeRangeValidator

public DateTimeRangeValidator()
Method Detail

generateClientSideValidation

public java.lang.String generateClientSideValidation(javax.faces.context.FacesContext context,
                                                     javax.faces.component.UIComponent component)
                                              throws java.io.IOException
Description copied from interface: ClientSideValidator
Generate client side validation, a snippet of browser JavaScript in a single line, creating an instance of a Validator object matching the format described in xspClientDojo.js, the attachValidator function.

The file xspClientDojo.js is reference in the source of every XPage. The version with comments is installed with Designer under the Data/domino/js folder, in a file named xspClientDojo.js.uncompressed.js.

The constructor of the Validator object should be passed any values needed to perform the validation (e.g. for a range validator the minimum and maximum values would be included). The translated error message to display if the error occurs should be passed to the validator too. Generally the server-side validators translate a default error message and allow the page designer to override the default in a "message" property.

Specified by:
generateClientSideValidation in interface ClientSideValidator
Parameters:
context - The current context.
component - The control whose value will be validated, usually a UIInput.
Returns:
snippet of browser JavaScript to create the Validator object.
Throws:
java.io.IOException

getMinimum

public java.util.Date getMinimum()
Returns the minimum date in the range to be validated, or null if there is no lower bound.

Returns:
java.util.Date

setMinimum

public void setMinimum(java.util.Date minimum)
Sets the minimum Date considered valid as a value for the control.

Parameters:
java.util.Date -

getMaximum

public java.util.Date getMaximum()
Returns the maximum date in the range to be validated, or null if there is no upper bound.

Returns:
java.util.Date

setMaximum

public void setMaximum(java.util.Date maximum)
Sets the maximum Date considered valid as a value for the control.

Parameters:
java.util.Date -

getInvalidMessage

public java.lang.String getInvalidMessage()
Description copied from interface: ClientSideValidator
Unlike server-side validators which display different error messages depending on the exact way that validation fails, client side validators usually have only one error message. For example, you might have server-side messages "Value is less than minimum {0}" and "Value is greater than maximum {1}", but client-side you would only have one message "Value is not in the allowed range {0} to {1}".

This method may return different values depending on the configuration of the validator.

Specified by:
getInvalidMessage in interface ClientSideValidator
Returns:
message to display when the value is invalid.

saveState

public java.lang.Object saveState(javax.faces.context.FacesContext context)
Specified by:
saveState in interface javax.faces.component.StateHolder
Overrides:
saveState in class AbstractValidator

restoreState

public void restoreState(javax.faces.context.FacesContext context,
                         java.lang.Object state)
Specified by:
restoreState in interface javax.faces.component.StateHolder
Overrides:
restoreState in class AbstractValidator

convertToDate

protected java.util.Date convertToDate(java.lang.Object value)
Protected method. Subject to change and is used at your own risk Convert the computed value to a Date instance


validate

public void validate(javax.faces.context.FacesContext context,
                     javax.faces.component.UIComponent component,
                     java.lang.Object value)
              throws javax.faces.FacesException

Perform the correctness checks implemented by this Validator against the specified UIInput. If any violations are found:

Specified by:
validate in interface javax.faces.validator.Validator
Parameters:
context - FacesContext for the request we are processing
component - UIInput we are checking for correctness
value - to be validated
Throws:
java.lang.NullPointerException - if context or component is null
javax.faces.FacesException

calculateTimeAndPrintErrors

protected void calculateTimeAndPrintErrors(java.util.Date value,
                                           javax.faces.context.FacesContext context,
                                           javax.faces.component.UIInput component)
Protected method. Subject to change and is used at your own risk