All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ajax4jsf.ajax.UIAjaxRegion Maven / Gradle / Ivy

Go to download

Ajax4jsf is an open source extension to the JavaServer Faces standard that adds AJAX capability to JSF applications without requiring the writing of any JavaScript.

The newest version!
/**
 * Licensed under the Common Development and Distribution License,
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.sun.com/cddl/
 *   
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

package org.ajax4jsf.ajax;

import java.io.IOException;
import java.util.Collection;
import java.util.Set;

import javax.faces.component.UIPanel;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;

import org.ajax4jsf.framework.ajax.AjaxContainer;
import org.ajax4jsf.framework.ajax.AjaxListener;
import org.ajax4jsf.framework.ajax.AjaxRegionBrige;
import org.ajax4jsf.framework.ajax.AjaxViewRoot;
import org.ajax4jsf.framework.renderer.AjaxContainerRenderer;


/**
 * @author [email protected] (latest modification by $Author: alexsmirnov $)
 * @version $Revision: 1.5 $ $Date: 2006/09/25 19:21:07 $
 *
 */
public abstract class UIAjaxRegion extends UIPanel implements AjaxContainer  {

	private AjaxRegionBrige brige;
	
	public static final String COMPONENT_TYPE = "org.ajax4jsf.components.AjaxRegion";

	/**
	 * 
	 */
	public UIAjaxRegion() {
		brige = new AjaxRegionBrige(this);
	}

	
	
	/* (non-Javadoc)
	 * @see javax.faces.component.UIComponentBase#encodeBegin(javax.faces.context.FacesContext)
	 */
	public void encodeBegin(FacesContext context) throws IOException {
		UIViewRoot root = context.getViewRoot();
		if (root instanceof AjaxViewRoot) {
			((AjaxViewRoot) root).addAjaxRegion(this);			
		}
		super.encodeBegin(context);
	}



	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#addAjaxArea(java.lang.String)
	 */
	public void addAjaxArea(String toRender) {
		brige.addAjaxArea(toRender);
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#addAjaxAreas(java.util.Collection)
	 */
	public void addAjaxAreas(Collection collection) {
		brige.addAjaxAreas(collection);
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#broadcast(javax.faces.event.FacesEvent)
	 */
	public void broadcast(FacesEvent event) throws AbortProcessingException {
		super.broadcast(event);
		brige.broadcast(event);
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#getAjaxListener()
	 */
	public MethodBinding getAjaxListener() {
		return brige.getAjaxListener();
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#getAjaxAreasToRender()
	 */
	public Set getAjaxAreasToRender() {
		return brige.getAjaxAreasToRender();
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#getAjaxRenderedAreas()
	 */
	public Set getAjaxRenderedAreas() {
		return brige.getAjaxRenderedAreas();
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#isAjaxRequest()
	 */
	public boolean isAjaxRequest() {
		return brige.isAjaxRequest();
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#isImmediate()
	 */
	public boolean isImmediate() {
		return brige.isImmediate();
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#isSubmitted()
	 */
	public boolean isSubmitted() {
		return brige.isSubmitted();
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#restoreState(javax.faces.context.FacesContext, java.lang.Object)
	 */
	public void restoreState(FacesContext context, Object state) {
		Object[] mystate = (Object[])state;
		super.restoreState(context, mystate[0]);
		brige.restoreState(context, mystate[1]);
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#saveState(javax.faces.context.FacesContext)
	 */
	public Object saveState(FacesContext context) {
		Object[] state = new Object[2];
		state[0]= super.saveState(context);
		state[1]= brige.saveState(context);
		return state;
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#setAjaxListener(javax.faces.el.MethodBinding)
	 */
	public void setAjaxListener(MethodBinding ajaxListener) {
		brige.setAjaxListener(ajaxListener);
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#setAjaxRequest(boolean)
	 */
	public void setAjaxRequest(boolean ajaxRequest) {
		brige.setAjaxRequest(ajaxRequest);
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#setImmediate(boolean)
	 */
	public void setImmediate(boolean immediate) {
		brige.setImmediate(immediate);
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#setSubmitted(boolean)
	 */
	public void setSubmitted(boolean submitted) {
		brige.setSubmitted(submitted);
	}

	public void addAjaxListener(AjaxListener listener) {
        addFacesListener(listener);
	}

	public AjaxListener[] getAjaxListeners() {
		return (AjaxListener[]) getFacesListeners(AjaxListener.class);
	}

	public void removeAjaxListener(AjaxListener listener) {
        removeFacesListener(listener);
		
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#isSelfRendered()
	 */
	public boolean isSelfRendered() {
		return brige.isSelfRendered();
	}

	/* (non-Javadoc)
	 * @see org.ajax4jsf.framework.ajax.AjaxViewBrige#setSelfRendered(boolean)
	 */
	public void setSelfRendered(boolean selfRendered) {
		brige.setSelfRendered(selfRendered);
	}
	
	
	public void encodeAjax(FacesContext context) throws IOException {
        String rendererType = getRendererType();
        if (rendererType != null) {
            ((AjaxContainerRenderer) getRenderer(context)).encodeAjax(context, this);
        }
		
	}

	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy