Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/* AbstractValidator.java
Purpose:
Description:
History:
2011/12/26 Created by Dennis Chen
Copyright (C) 2011 Potix Corporation. All Rights Reserved.
*/
package org.zkoss.bind.validator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.zkoss.bind.ValidationContext;
import org.zkoss.bind.Validator;
import org.zkoss.bind.sys.BinderCtrl;
import org.zkoss.bind.sys.Binding;
import org.zkoss.bind.sys.FormBinding;
import org.zkoss.bind.sys.PropertyBinding;
import org.zkoss.bind.sys.ValidationMessages;
/**
* A abstract validator the handling validation message
*
* @author dennis
* @see ValidationMessages
* @since 6.0.0
*/
public abstract class AbstractValidator implements Validator {
private static final Logger log = LoggerFactory.getLogger(AbstractValidator.class);
/**
* add a message to validation context, when you call this method, it also set context invalid.
* @param ctx the validation context
* @param message the message of validation
*/
protected void addInvalidMessage(ValidationContext ctx, String message) {
addInvalidMessages(ctx, null, new String[] { message });
}
/**
* add a message to validation context, when you call this method, it also sets context invalid.
* @param ctx the validation context
* @param key the custom key of message
* @param message the message of validation
*/
protected void addInvalidMessage(ValidationContext ctx, String key, String message) {
addInvalidMessages(ctx, key, new String[] { message });
}
/**
* add a message to validation context, when you call this method, it also sets context invalid.
* @param ctx the validation context
* @param key the custom key of message
* @param message the message of validation
* @param value the value of the rejected field
* @since 8.0.1
*/
protected void addInvalidMessage(ValidationContext ctx, String key, String message, Object value) {
addInvalidMessages(ctx, key, new String[] { message }, value);
}
/**
* add multiple messages to validation context, when you call this method, it also sets the context invalid.
* @param ctx the validation context
* @param messages messages of validation
*/
protected void addInvalidMessages(ValidationContext ctx, String[] messages) {
addInvalidMessages(ctx, null, messages);
}
/**
* add multiple messages to validation context, when you call this method, it also sets the context invalid.
* @param ctx the validation context
* @param key the custom key of message
* @param messages messages of validation
*/
protected void addInvalidMessages(ValidationContext ctx, String key, String[] messages) {
addInvalidMessages(ctx, key, messages, null);
}
/**
* add multiple messages to validation context, when you call this method, it also sets the context invalid.
* @param ctx the validation context
* @param key the custom key of message
* @param messages messages of validation
* @param value the value of the rejected field
* @since 8.0.1
*/
protected void addInvalidMessages(ValidationContext ctx, String key, String[] messages, Object value) {
ctx.setInvalid();
ValidationMessages vmsgs = ((BinderCtrl) ctx.getBindContext().getBinder()).getValidationMessages();
if (vmsgs != null) {
Binding binding = ctx.getBindContext().getBinding();
String attr = null;
if (binding instanceof PropertyBinding) {
attr = ((PropertyBinding) binding).getFieldName();
} else if (binding instanceof FormBinding) {
attr = ((FormBinding) binding).getFormId();
} else {
//ignore children binding;
}
if (attr != null) {
vmsgs.addMessages(ctx.getBindContext().getComponent(), attr, key, messages, value);
}
} else {
log.warn("ValidationMessages not found on binder " + ctx.getBindContext().getBinder() + ", please init it");
}
}
}