/* CustomConstraint.java
Purpose:
Description:
History:
Wed Apr 11 17:59:43 2007, Created by tomyeh
Copyright (C) 2007 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under LGPL Version 2.1 in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zul;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.WrongValueException;
/**
* Additional interface implemented with {@link Constraint} to denote
* a constraint supports a custom way to display the error message.
* If this interface is implemented, the default error box won't be
* displayed. Rather, {@link #showCustomError} is called.
*
* <p>Since 5.0.0, {@link CustomConstraint} has the higher priority than
* {@link ClientConstraint}. In other words, {@link ClientConstraint}
* is ignored if both defined.
* On the other hand, the client validation object ({@link ClientConstraint#getClientConstraint})
* can implement the showCustomError method to do the similar job
* at the client.
*
* @author tomyeh
* @see Constraint
* @see ClientConstraint
*/
public interface CustomConstraint {
/** To display the error message in a custom way.
* Note: this method is called either with a error or not, depending
* on whether ex is null.
*
* @param comp the component causing the error.
* @param ex the error to display, or null to clear
* the error message.
*/
public void showCustomError(Component comp, WrongValueException ex);
}