[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