code: @Override
  	protected boolean doHandleRequest(final Request request) {
  		// Valid Number
  		BigDecimal numberValue = 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 Value
  		BigDecimal current = getValue();
  
  		boolean changed;
  
  		// If a "valid" number value has not been entered, then check if the "user text" has changed
  		if (numberValue == null) {
  			// User entered text
  			changed = !Util.equals(text, getText()) || current != null;
  		} else {
  			// Valid Number
  			changed = !Util.equals(numberValue, current);
  		}
  
  		if (changed) {
  			boolean valid = numberValue != null || text == null;
  			handleRequestValue(numberValue, valid, text);
  		}
  
  		return changed;
  	}
docs: {@inheritDoc}