All pastes #72386 Raw Edit

KeyStrokeValidatedIn

public text v1 · immutable
#72386 ·published 2006-06-26 20:18 UTC
rendered paste body
package com.loomis.jsf.component.keystrokevalidatedinput;

import java.io.IOException;

import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.render.Renderer;

import org.apache.myfaces.component.html.ext.HtmlInputText;
import org.apache.myfaces.custom.ajax.api.AjaxComponent;
import org.apache.myfaces.custom.ajax.api.AjaxRenderer;

public class KeyStrokeValidatedInput extends HtmlInputText implements AjaxComponent {
    public static final String COMPONENT_TYPE = "com.loomis.jsf.component.KeyStrokeValidatedInput";
    public static final String DEFAULT_RENDERER_TYPE = "com.loomis.jsf.component.KeyStrokeValidatedInputRenderer";	
   
    private MethodBinding validatorMethod;
    
    private String idOfMessageDiv;
    private Boolean ajaxEnabled;
    
    public KeyStrokeValidatedInput() {
    	super();
    	
    	setRendererType(DEFAULT_RENDERER_TYPE);
    }
    
    public Object saveState(FacesContext context) {
    	Object[] values = new Object[4];
    	
    	values[0] = super.saveState(context);
    	values[1] = saveAttachedState(context, validatorMethod);
    	values[2] = idOfMessageDiv;
    	values[3] = ajaxEnabled;
    	
    	return values;
    }
    
    public void restoreState(FacesContext context, Object state) {
    	Object values[] = (Object[])state;
    	
    	super.restoreState(context, values[0]);
    	validatorMethod = (MethodBinding)restoreAttachedState(context, values[1]);
    	idOfMessageDiv = (String) values[2];
    	ajaxEnabled = (Boolean) values[3];
    	
    }
    
	public void encodeAjax(FacesContext context) throws IOException {
		if (context == null) throw new NullPointerException("context");
		if (!isRendered()) return;
		
		Renderer renderer = getRenderer(context);
		
		if (renderer instanceof AjaxRenderer) {
			((AjaxRenderer) renderer).encodeAjax(context, this);
		}
	}

	public void decodeAjax(FacesContext arg0) {
		
	}

	public MethodBinding getValidatorMethod() {
		return validatorMethod;
	}

	public void setValidatorMethod(MethodBinding validatorMethod) {
		this.validatorMethod = validatorMethod;
	}

	public String getIdOfMessageDiv() {
		if (idOfMessageDiv != null) return idOfMessageDiv;
		
		ValueBinding vb = getValueBinding("idOfMessageDiv");
		
		return vb != null ? vb.getValue(getFacesContext()).toString() : null;
	}

	public void setIdOfMessageDiv(String idOfMessageDiv) {
		this.idOfMessageDiv = idOfMessageDiv;
	}

	public Boolean getAjaxEnabled() {
		if (ajaxEnabled != null) return ajaxEnabled;
		
		ValueBinding vb = getValueBinding("ajexEnabled");
		
		return vb != null ? Boolean.valueOf(vb.getValue(getFacesContext()).toString()) : null;
	}

	public void setAjaxEnabled(Boolean ajaxEnabled) {
		this.ajaxEnabled = ajaxEnabled;
	}

}