rendered paste bodypackage com.loomis.jsf.component.keystrokevalidatedinput;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import org.apache.myfaces.taglib.html.ext.HtmlInputTextTag;
public class KeyStrokeValidatedInputTag extends HtmlInputTextTag {
private final static Class[] DEFAULT_SIGNATURE = new Class[]{Boolean.class,
String.class, KeyStrokeValidatedInput.class};
private String validatorMethod;
private String idOfMessageDiv;
private String ajaxEnabled;
public String getComponentType() {
return KeyStrokeValidatedInput.COMPONENT_TYPE;
}
public String getRendererType() {
return KeyStrokeValidatedInput.DEFAULT_RENDERER_TYPE;
}
public void release() {
super.release();
idOfMessageDiv = null;
validatorMethod = null;
ajaxEnabled = null;
}
protected void setProperties(UIComponent component) {
super.setProperties(component);
setIntegerProperty(component,"validatorMethod", validatorMethod);
setValidatorMethodProperty(getFacesContext(), component, validatorMethod);
setStringProperty(component,"idOfMessageDiv", idOfMessageDiv);
setBooleanProperty(component,"ajaxEnabled", ajaxEnabled);
}
public static void setValidatorMethodProperty(FacesContext context, UIComponent component, String validatorMethod) {
if (validatorMethod == null) return;
if (!(component instanceof KeyStrokeValidatedInput)) {
throw new IllegalArgumentException("Component " + component.getClientId(context) +
" is not a KeyStrokeValidatedInput");
}
if (isValueReference(validatorMethod)) {
MethodBinding mb = context.getApplication().createMethodBinding(validatorMethod, DEFAULT_SIGNATURE);
((KeyStrokeValidatedInput)component).setValidatorMethod(mb);
} else {
// TODO Add logging
}
}
public String getIdOfMessageDiv() {
return idOfMessageDiv;
}
public void setIdOfMessageDiv(String idOfMessageDiv) {
this.idOfMessageDiv = idOfMessageDiv;
}
public String getValidatorMethod() {
return validatorMethod;
}
public void setValidatorMethod(String validatorMethod) {
this.validatorMethod = validatorMethod;
}
public String getAjaxEnabled() {
return ajaxEnabled;
}
public void setAjaxEnabled(String ajaxEnabled) {
this.ajaxEnabled = ajaxEnabled;
}
}