[richfaces-svn-commits] JBoss Rich Faces SVN: r2594 - trunk/framework/impl/src/main/java/org/ajax4jsf/component.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Aug 29 20:08:39 EDT 2007


Author: alexsmirnov
Date: 2007-08-29 20:08:39 -0400 (Wed, 29 Aug 2007)
New Revision: 2594

Modified:
   trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java
Log:
fix http://jira.jboss.com/jira/browse/RF-258 issue

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java	2007-08-29 23:59:20 UTC (rev 2593)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxActionComponent.java	2007-08-30 00:08:39 UTC (rev 2594)
@@ -36,126 +36,131 @@
 import org.ajax4jsf.event.AjaxSingleEvent;
 import org.ajax4jsf.event.AjaxSource;
 
-
 /**
  * @author shura (latest modification by $Author: alexsmirnov $)
  * @version $Revision: 1.1.2.3 $ $Date: 2007/02/06 16:23:21 $
  * 
  */
 public abstract class AjaxActionComponent extends UICommand implements
-	AjaxComponent, AjaxSource {
+		AjaxComponent, AjaxSource {
 
-    public static final String FOCUS_DATA_ID = "_A4J.AJAX.focus";
+	public static final String FOCUS_DATA_ID = "_A4J.AJAX.focus";
 
-    /*
-         * (non-Javadoc)
-         * 
-         * @see javax.faces.component.UIComponentBase#broadcast(javax.faces.event.FacesEvent)
-         */
-    public void broadcast(FacesEvent event) throws AbortProcessingException {
-	// Hack - throw exception to AjaxViewRoot, to fix state of all iterable components.
-	if (event instanceof AjaxSingleEvent) {
-	    throw new AjaxSingleException(getSingleComponent());	    
-	}
-	// perform default
-	super.broadcast(event);
-	if (event instanceof AjaxEvent) {
-	    FacesContext context = getFacesContext();
-	    // complete re-Render fields. AjaxEvent deliver before render
-                // response.
-	    setupReRender(context);
-	    // Put data for send in response
-	    Object data = getData();
-	    AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
-	    if (null != data) {
-		ajaxContext.setResponseData(data);
-	    }
-	    String focus = getFocus();
-	    if (null != focus) {
-		// search for component in tree.
-		// TODO - use more pourful search, as in h:outputLabel component.
-		UIComponent focusComponent = findComponent(focus);
-		if(null != focusComponent){
-		    focus = focusComponent.getClientId(context);
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see javax.faces.component.UIComponentBase#broadcast(javax.faces.event.FacesEvent)
+	 */
+	public void broadcast(FacesEvent event) throws AbortProcessingException {
+		// Hack - throw exception to AjaxViewRoot, to fix state of all iterable
+		// components.
+		if (event instanceof AjaxSingleEvent) {
+			throw new AjaxSingleException(getSingleComponent());
 		}
-		ajaxContext.getResponseDataMap().put(FOCUS_DATA_ID, focus);
-	    }
+		// perform default
+		super.broadcast(event);
+		if (event instanceof AjaxEvent) {
+			FacesContext context = getFacesContext();
+			// complete re-Render fields. AjaxEvent deliver before render
+			// response.
+			setupReRender(context);
+			// Put data for send in response
+			Object data = getData();
+			AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
+			if (null != data) {
+				ajaxContext.setResponseData(data);
+			}
+			String focus = getFocus();
+			if (null != focus) {
+				// search for component in tree.
+				// TODO - use more pourful search, as in h:outputLabel
+				// component.
+				UIComponent focusComponent = findComponent(focus);
+				if (null != focusComponent) {
+					focus = focusComponent.getClientId(context);
+				}
+				ajaxContext.getResponseDataMap().put(FOCUS_DATA_ID, focus);
+			}
+		}
 	}
-    }
 
-    /**
-         * Template method with old signature, for backward compability.
-         */
-    protected void setupReRender() {
-    }
+	/**
+	 * Template method with old signature, for backward compability.
+	 */
+	protected void setupReRender() {
+	}
 
-    /**
-         * Template methods for fill set of resions to render in subclasses.
-         * 
-         * @param facesContext
-         *                TODO
-         */
-    protected void setupReRender(FacesContext facesContext) {
-	AjaxContext.getCurrentInstance(facesContext).addRegionsFromComponent(
-		this);
-	setupReRender();
-    }
+	/**
+	 * Template methods for fill set of resions to render in subclasses.
+	 * 
+	 * @param facesContext
+	 *            TODO
+	 */
+	protected void setupReRender(FacesContext facesContext) {
+		AjaxContext.getCurrentInstance(facesContext).addRegionsFromComponent(
+				this);
+		setupReRender();
+	}
 
-    /*
-         * (non-Javadoc)
-         * 
-         * @see javax.faces.component.UIComponentBase#queueEvent(javax.faces.event.FacesEvent)
-         */
-    public void queueEvent(FacesEvent event) {
-	if (event instanceof ActionEvent && event.getComponent() == this) {
-	    if (isImmediate()) {
-		event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
-	    } else if (isBypassUpdates()) {
-		event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
-	    } else {
-		event.setPhaseId(PhaseId.INVOKE_APPLICATION);
-	    }
-	    getParent().queueEvent(event);
-	    if(isAjaxSingle()){
-		super.queueEvent(new AjaxSingleEvent(this));
-	    }
-	} else {
-	    super.queueEvent(event);
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see javax.faces.component.UIComponentBase#queueEvent(javax.faces.event.FacesEvent)
+	 */
+	public void queueEvent(FacesEvent event) {
+		if (event instanceof ActionEvent) {
+			if (event.getComponent() == this) {
+				if (isImmediate()) {
+					event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
+				} else if (isBypassUpdates()) {
+					event.setPhaseId(PhaseId.PROCESS_VALIDATIONS);
+				} else {
+					event.setPhaseId(PhaseId.INVOKE_APPLICATION);
+				}
+				// AjaxSingle component process own childrens in event processing.
+				if (isAjaxSingle()) {
+					super.queueEvent(new AjaxSingleEvent(this));
+				}
+			}
+			// UICommand set Phase ID for all ActionEvents - bypass it.
+			getParent().queueEvent(event);
+		} else {
+			super.queueEvent(event);
+		}
 	}
-    }
 
-    /*
-         * (non-Javadoc)
-         * 
-         * @see org.ajax4jsf.framework.ajax.AjaxSource#addAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
-         */
-    public void addAjaxListener(AjaxListener listener) {
-	addFacesListener(listener);
-    }
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.ajax4jsf.framework.ajax.AjaxSource#addAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
+	 */
+	public void addAjaxListener(AjaxListener listener) {
+		addFacesListener(listener);
+	}
 
-    /*
-         * (non-Javadoc)
-         * 
-         * @see org.ajax4jsf.framework.ajax.AjaxSource#getAjaxListeners()
-         */
-    public AjaxListener[] getAjaxListeners() {
-	AjaxListener al[] = (AjaxListener[]) getFacesListeners(AjaxListener.class);
-	return (al);
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.ajax4jsf.framework.ajax.AjaxSource#getAjaxListeners()
+	 */
+	public AjaxListener[] getAjaxListeners() {
+		AjaxListener al[] = (AjaxListener[]) getFacesListeners(AjaxListener.class);
+		return (al);
 
-    }
+	}
 
-    /*
-         * (non-Javadoc)
-         * 
-         * @see org.ajax4jsf.framework.ajax.AjaxSource#removeAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
-         */
-    public void removeAjaxListener(AjaxListener listener) {
-	removeFacesListener(listener);
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.ajax4jsf.framework.ajax.AjaxSource#removeAjaxListener(org.ajax4jsf.framework.ajax.AjaxListener)
+	 */
+	public void removeAjaxListener(AjaxListener listener) {
+		removeFacesListener(listener);
 
-    }
-    
-    protected UIComponent getSingleComponent(){
-	return this;
-    }
+	}
 
+	protected UIComponent getSingleComponent() {
+		return this;
+	}
+
 }




More information about the richfaces-svn-commits mailing list