@Override public int compare(ValidationMessage vm1, ValidationMessage vm2) { if ( vm1 == vm2 ) return 0; if ( vm1 == null) return 1; if ( vm2 == null) return -1; return vm1.compareTo(vm2); } };
@Override default public int compareTo(ValidationMessage msg) { return msg == null || getTarget() != msg.getTarget() ? -1: getSeverity().compareTo(msg.getSeverity()); } }
protected Tooltip createTooltip(ValidationMessage message) { Tooltip tooltip = new Tooltip(message.getText()); tooltip.setOpacity(.9); tooltip.setAutoFix(true); tooltip.setStyle( Severity.ERROR == message.getSeverity()? ERROR_TOOLTIP_EFFECT: WARNING_TOOLTIP_EFFECT); return tooltip; }
/** * Add one message to validation result * @param message validation message * @return updated validation result */ public ValidationResult add( ValidationMessage message ) { if ( message != null ) { switch( message.getSeverity() ) { case ERROR : errors.add( message); break; case WARNING: warnings.add(message); break; } } return this; }
/** * Factory method to create validation result out of one error * @param target validation target * @param text message text * @return New instance of validation result */ public static final ValidationResult fromError( Control target, String text ) { return fromMessages( ValidationMessage.error(target, text)); }
/** * Factory method to create validation result out of one warning * @param target validation target * @param text message text * @return New instance of validation result */ public static final ValidationResult fromWarning( Control target, String text ) { return fromMessages( ValidationMessage.warning(target, text)); }
@Override public void applyValidationDecoration(ValidationMessage message) { createValidationDecorations(message).stream().forEach( d -> decorate( message.getTarget(), d )); }
@Override protected Collection<Decoration> createValidationDecorations(ValidationMessage message) { return Arrays.asList(new StyleClassDecoration( Severity.ERROR == message.getSeverity()? errorClass:warningClass)); }
private Node createDecorationNode(ValidationMessage message) { Node graphic = Severity.ERROR == message.getSeverity() ? createErrorNode() : createWarningNode(); graphic.setStyle(SHADOW_EFFECT); Label label = new Label(); label.setGraphic(graphic); label.setTooltip(createTooltip(message)); label.setAlignment(Pos.CENTER); return label; }