/** * Validate cross-field BeanValidation rules. * * @param origin screen controller * @param item item to validate * @return validation errors */ public ValidationErrors validateCrossFieldRules(@SuppressWarnings("unused") FrameOwner origin, Entity item) { ValidationErrors errors = new ValidationErrors(); Validator validator = beanValidation.getValidator(); Set<ConstraintViolation<Entity>> violations = validator.validate(item, UiCrossFieldChecks.class); violations.stream() .filter(violation -> { Path propertyPath = violation.getPropertyPath(); Path.Node lastNode = Iterables.getLast(propertyPath); return lastNode.getKind() == ElementKind.BEAN; }) .forEach(violation -> errors.add(violation.getMessage())); return errors; }
@Override public boolean validate(List<Validatable> fields) { ValidationErrors errors = new ValidationErrors(); for (Validatable field : fields) { try { field.validate(); } catch (ValidationException e) { if (log.isTraceEnabled()) log.trace("Validation failed", e); else if (log.isDebugEnabled()) log.debug("Validation failed: " + e); ComponentsHelper.fillErrorMessages(field, e, errors); } } return handleValidationErrors(errors); }
@Override public boolean validate(List<Validatable> fields) { ValidationErrors errors = new ValidationErrors(); for (Validatable field : fields) { try { field.validate(); } catch (ValidationException e) { if (log.isTraceEnabled()) log.trace("Validation failed", e); else if (log.isDebugEnabled()) log.debug("Validation failed: " + e); ComponentsHelper.fillErrorMessages(field, e, errors); } } return handleValidationErrors(errors); }
/** * Validates UI components by invoking their {@link Validatable#validate()}. * * @param container components container * @return validation errors */ public ValidationErrors validateUiComponents(ComponentContainer container) { ValidationErrors errors = new ValidationErrors(); ComponentsHelper.traverseValidatable(container, v -> validate(v, errors) ); return errors; }
@Override public boolean validateAll() { ValidationErrors errors = new ValidationErrors(); ComponentsHelper.traverseValidatable(this, v -> { try { v.validate(); } catch (ValidationException e) { if (log.isTraceEnabled()) { log.trace("Validation failed", e); } else if (log.isDebugEnabled()) { log.debug("Validation failed: " + e); } ComponentsHelper.fillErrorMessages(v, e, errors); } }); return handleValidationErrors(errors); }
@Override public boolean validateAll() { ValidationErrors errors = new ValidationErrors(); ComponentsHelper.traverseValidatable(this, v -> { try { v.validate(); } catch (ValidationException e) { if (log.isTraceEnabled()) { log.trace("Validation failed", e); } else if (log.isDebugEnabled()) { log.debug("Validation failed: " + e); } ComponentsHelper.fillErrorMessages(v, e, errors); } }); return handleValidationErrors(errors); }
/** * Validates UI components by invoking their {@link Validatable#validate()}. * * @param components components collection * @return validation errors */ public ValidationErrors validateUiComponents(Collection<com.haulmont.cuba.gui.components.Component> components) { ValidationErrors errors = new ValidationErrors(); for (com.haulmont.cuba.gui.components.Component component : components) { if (component instanceof Validatable) { Validatable validatable = (Validatable) component; if (validatable.isValidateOnCommit()) { validate(validatable, errors); } } } return errors; }
@Override protected boolean preCommit() { if (super.preCommit()) { PivotTableAggregation aggregation = getItem(); boolean hasMatches = existingItems.stream(). anyMatch(e -> !Objects.equals(aggregation, e) && Objects.equals(aggregation.getCaption(), e.getCaption())); if (hasMatches) { ValidationErrors validationErrors = new ValidationErrors(); validationErrors.add(getMessage("pivotTableEdit.uniqueAggregationOptionCaption")); showValidationErrors(validationErrors); return false; } return true; } return false; }
protected ValidationErrors validatePivotTableDescription(PivotTableDescription description) { ValidationErrors validationErrors = new ValidationErrors(); if (description.getBandName() == null) { validationErrors.add(getMessage("pivotTableEdit.bandRequired"));