[richfaces-svn-commits] JBoss Rich Faces SVN: r12003 - in trunk/framework/impl/src/main/java/org/ajax4jsf: renderkit and 1 other directory.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Tue Dec 23 15:04:48 EST 2008
Author: alexsmirnov
Date: 2008-12-23 15:04:48 -0500 (Tue, 23 Dec 2008)
New Revision: 12003
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxViewRoot.java
trunk/framework/impl/src/main/java/org/ajax4jsf/component/ContextCallbackWrapper.java
trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxContainerRenderer.java
Log:
https://jira.jboss.org/jira/browse/RF-4432
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxViewRoot.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxViewRoot.java 2008-12-23 18:52:44 UTC (rev 12002)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/component/AjaxViewRoot.java 2008-12-23 20:04:48 UTC (rev 12003)
@@ -540,7 +540,7 @@
.getSubmittedRegionClientId();
boolean invoked = false;
if (submittedRegionClientId != null && !submittedRegionClientId.equals(JS_NULL) && !submittedRegionClientId.equals(getClientId(context))) {
- invoked = invokeOnComponent(context, submittedRegionClientId, new ContextCallbackWrapper(_ajaxInvoker));
+ invoked = invokeOnComponent(context, submittedRegionClientId, _ajaxInvoker);
}
// if container not found, use Root for encode.
// https://jira.jboss.org/jira/browse/RF-3975
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/component/ContextCallbackWrapper.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/component/ContextCallbackWrapper.java 2008-12-23 18:52:44 UTC (rev 12002)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/component/ContextCallbackWrapper.java 2008-12-23 20:04:48 UTC (rev 12003)
@@ -29,38 +29,31 @@
/**
* @author Anton Belevich
- *
+ *
*/
public class ContextCallbackWrapper implements ContextCallback {
-
- ContextCallback callback;
-
- public ContextCallbackWrapper(ContextCallback callback) {
- this.callback = callback;
- }
-
- public void invokeContextCallback(FacesContext context, UIComponent target) {
- if(isParentRendered(target)) {
- callback.invokeContextCallback(context, target);
+
+ ContextCallback callback;
+
+ public ContextCallbackWrapper(ContextCallback callback) {
+ this.callback = callback;
}
- }
-
- public boolean isParentRendered( UIComponent target) {
- List <UIComponent> componentsList = new ArrayList<UIComponent>();
- UIComponent component = target;
-
- while (component != null) {
- componentsList.add(component);
- component = component.getParent();
+
+ public void invokeContextCallback(FacesContext context, UIComponent target) {
+ if (isParentRendered(target)) {
+ callback.invokeContextCallback(context, target);
+ }
}
-
- for (int i = componentsList.size() - 1; i >= 0; i--) {
- UIComponent processComponent = componentsList.get(i);
- if(!processComponent.isRendered()) {
- return false;
- }
- }
- return true;
- }
+ public boolean isParentRendered(UIComponent target) {
+ UIComponent component = target;
+
+ while (component != null) {
+ if (!component.isRendered()) {
+ return false;
+ }
+ component = component.getParent();
+ }
+ return true;
+ }
}
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxContainerRenderer.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxContainerRenderer.java 2008-12-23 18:52:44 UTC (rev 12002)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxContainerRenderer.java 2008-12-23 20:04:48 UTC (rev 12003)
@@ -65,8 +65,7 @@
public static final String AJAX_UPDATE_HEADER = "Ajax-Update-Ids";
- static final Log log = LogFactory
- .getLog(AjaxContainerRenderer.class);
+ static final Log log = LogFactory.getLog(AjaxContainerRenderer.class);
public static final String AJAX_FLAG_HEADER = "Ajax-Response";
@@ -105,7 +104,7 @@
*/
public void encodeAjax(FacesContext context, UIComponent component)
throws IOException {
- UIComponent root ;
+ UIComponent root;
// Iterate over all childrens, render it if nessesary...
log.debug(Messages.getMessage(Messages.RENDER_CHILDREN_AJAX_INFO));
AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
@@ -114,19 +113,31 @@
if (((AjaxContainer) component).isRenderRegionOnly()) {
root = component;
} else {
- root = context.getViewRoot();
+ root = context.getViewRoot();
}
String path = AjaxRendererUtils.getAbsoluteId(root);
// if(! (component instanceof NamingContainer)){
path = path.substring(0, path
.lastIndexOf(NamingContainer.SEPARATOR_CHAR) + 1);
- encodeAjaxComponent(context, root, path, ids, renderedAreas);
+ if (isParentRendered(root)) {
+ encodeAjaxComponent(context, root, path, ids, renderedAreas);
+ }
// Write information about encoded areas after submission.
AjaxRendererUtils.encodeAreas(context, component);
}
-
-
+ public boolean isParentRendered(UIComponent target) {
+ UIComponent component = target;
+
+ while (component != null) {
+ if (!component.isRendered()) {
+ return false;
+ }
+ component = component.getParent();
+ }
+ return true;
+ }
+
/*
* always return true, since component must maintain set of rendered
* components.
@@ -140,27 +151,29 @@
/*
* (non-Javadoc)
*
- * @see org.ajax4jsf.renderkit.RendererBase#doDecode(javax.faces.context.FacesContext,
- * javax.faces.component.UIComponent)
+ * @see
+ * org.ajax4jsf.renderkit.RendererBase#doDecode(javax.faces.context.FacesContext
+ * , javax.faces.component.UIComponent)
*/
protected void doDecode(FacesContext context, UIComponent component) {
String clientId = component.getClientId(context);
- Map<String, String> paramMap = context.getExternalContext().getRequestParameterMap();
+ Map<String, String> paramMap = context.getExternalContext()
+ .getRequestParameterMap();
if (log.isDebugEnabled()) {
log.debug(Messages.getMessage(
Messages.DECODE_AJAX_REQUEST_STATUS_INFO, clientId));
-// log.debug(Messages.getMessage(Messages.REQUEST_PARAMETERS_MAP,
-// paramMap.toString()));
+ // log.debug(Messages.getMessage(Messages.REQUEST_PARAMETERS_MAP,
+ // paramMap.toString()));
}
Object ajaxParameter = paramMap.get(AJAX_PARAMETER_NAME);
AjaxContainer ajaxContainer = (AjaxContainer) component;
if (null != ajaxParameter && ajaxParameter.equals(clientId)) {
- ajaxContainer.setSubmitted(true);
- if(ajaxContainer.isSelfRendered()){
- AjaxContext.getCurrentInstance(context).setSelfRender(true);
- }
- AjaxEvent event = new AjaxEvent(component);
- component.queueEvent(event);
+ ajaxContainer.setSubmitted(true);
+ if (ajaxContainer.isSelfRendered()) {
+ AjaxContext.getCurrentInstance(context).setSelfRender(true);
+ }
+ AjaxEvent event = new AjaxEvent(component);
+ component.queueEvent(event);
} else {
ajaxContainer.setSubmitted(false);
}
More information about the richfaces-svn-commits
mailing list