All pastes #72387 Raw Edit

KeyStrokeValidatedIn

public text v1 · immutable
#72387 ·published 2006-06-26 20:19 UTC
rendered paste body
package 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;
	}
}