public void clear() {
    try {
      validationMonitor.setIgnoreEvents(true);

      for (HasValidation validator : fieldValidators.values()) {
        validator.clear();
      }

      updateValidationResult();
    } finally {
      validationMonitor.setIgnoreEvents(false);
    }
  }
  public boolean validate() {
    try {
      validationMonitor.setIgnoreEvents(true);

      boolean valid = true;

      for (HasValidation validator : fieldValidators.values()) {
        validator.validate();
        if (validator.getValidationResult().contains(Severity.ERROR)) {
          valid = false;
        }
      }

      updateValidationResult();

      return valid;
    } finally {
      validationMonitor.setIgnoreEvents(false);
    }
  }