code: @Override
  	protected boolean doHandleRequest(final Request request) {
  		// Valid date entered by the user
  		String dateValue = getRequestValue(request);
  		// Text entered by the user (An empty string is treated as null)
  		String value = request.getParameter(getId());
  		String text = (Util.empty(value)) ? null : value;
  
  		// Current date value
  		String currentDate = getValue();
  
  		boolean changed = false;
  
  		// If a "valid" date value has not been entered, then check if the "user text" has changed
  		if (dateValue == null) {
  			// User entered text
  			changed = !Util.equals(text, getText()) || currentDate != null;
  		} else {
  			// Valid Date
  			changed = !Util.equals(dateValue, currentDate);
  		}
  
  		if (changed) {
  			boolean valid = dateValue != null || text == null;
  			handleRequestValue(dateValue, valid, text);
  		}
  
  		return changed;
  	}
docs: {@inheritDoc}