You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2010/08/08 22:45:02 UTC
svn commit: r983481 - in
/myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle:
PartialLifecycleUtils.java UIViewRoot.java
Author: bommel
Date: Sun Aug 8 20:45:02 2010
New Revision: 983481
URL: http://svn.apache.org/viewvc?rev=983481&view=rev
Log:
(TRINIDAD-1220) Partial Lifecycle for Trinidad
Modified:
myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/PartialLifecycleUtils.java
myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/UIViewRoot.java
Modified: myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/PartialLifecycleUtils.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/PartialLifecycleUtils.java?rev=983481&r1=983480&r2=983481&view=diff
==============================================================================
--- myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/PartialLifecycleUtils.java (original)
+++ myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/PartialLifecycleUtils.java Sun Aug 8 20:45:02 2010
@@ -17,12 +17,9 @@ package org.apache.myfaces.trinidadinter
* limitations under the License.
*/
-import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlConstants;
-import org.apache.myfaces.trinidadinternal.share.xml.XMLUtils;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
import javax.faces.context.FacesContext;
-import java.util.Map;
import java.util.Arrays;
public final class PartialLifecycleUtils
Modified: myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/UIViewRoot.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/UIViewRoot.java?rev=983481&r1=983480&r2=983481&view=diff
==============================================================================
--- myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/UIViewRoot.java (original)
+++ myfaces/trinidad/tags/trinidad-1.2.13/trinidad-partial-lifecycle/src/main/java/org/apache/myfaces/trinidadinternal/lifecycle/UIViewRoot.java Sun Aug 8 20:45:02 2010
@@ -22,11 +22,13 @@ import org.apache.myfaces.trinidad.conte
import org.apache.myfaces.trinidad.context.FormData;
import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PartialPageUtils;
-import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.XhtmlConstants;
+import org.apache.myfaces.trinidad.render.XhtmlConstants;
+import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TrinidadRenderingConstants;
import org.apache.myfaces.trinidadinternal.renderkit.core.CoreResponseStateManager;
import org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderingContext;
import javax.el.MethodExpression;
+import javax.faces.FacesException;
import javax.faces.FactoryFinder;
import javax.faces.component.UIComponent;
import javax.faces.component.ContextCallback;
@@ -41,9 +43,9 @@ import javax.faces.lifecycle.LifecycleFa
import javax.faces.webapp.FacesServlet;
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
+import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
-import java.util.Map;
import java.util.Set;
import java.io.IOException;
@@ -232,29 +234,50 @@ public class UIViewRoot extends javax.fa
}
private void storePartialTargets(FacesContext context) {
- // after a normal decode check for partialTargets
- final RequestContext requestContext = RequestContext.getCurrentInstance();
- if (!(context.getResponseComplete() || context.getRenderResponse())
- && requestContext.isPartialRequest(context))
- {
- String sourceId = context.getExternalContext().getRequestParameterMap().get("source");
- UIComponent source = findComponent(sourceId);
- if (source != null)
- {
- List<String> list = new ArrayList<String>();
- Set<UIComponent> components = requestContext.getPartialTargets(source);
- for (UIComponent component : components)
- {
- list.add(component.getClientId(context));
- }
- if (list.size() > 0)
- {
- PartialLifecycleUtils.setPartialTargets(context, list.toArray(new String[list.size()]));
- } else {
- PartialLifecycleUtils.setPartialTargets(context, sourceId);
+ // after a normal decode check for partialTargets
+ final RequestContext requestContext = RequestContext.getCurrentInstance();
+ if (!(context.getResponseComplete() || context.getRenderResponse())
+ && requestContext.isPartialRequest(context)) {
+ String sourceId = context.getExternalContext().getRequestParameterMap().get("source");
+ UIComponent source = findComponent(sourceId);
+ if (source != null) {
+ List<String> list = new ArrayList<String>();
+ Set<UIComponent> components = requestContext.getPartialTargets(source);
+ for (UIComponent component : components) {
+ list.add(component.getClientId(context));
+ }
+ if (list.size() > 0) {
+ // check if source is a child of the partialTargets or a partialTarget
+ if (!list.contains(sourceId)) {
+ UIComponent component = source;
+ while ((component = component.getParent()) != null) {
+ if (list.contains(component.getClientId(context))) {
+ break;
+ } else if (component instanceof UIViewRoot) {
+ // source is not inside partialTargets
+ list.add(0, sourceId);
+ break;
+ }
+ }
}
+ PartialLifecycleUtils.setPartialTargets(context, list.toArray(new String[list.size()]));
+ } else {
+ PartialLifecycleUtils.setPartialTargets(context, sourceId);
}
}
+ }
+ }
+
+ @Override
+ // skip invokeOnComponent on UIViewRoot to avoid warning message in myfaces about missing id
+ public boolean invokeOnComponent(FacesContext context, String clientId, ContextCallback callback)
+ throws FacesException {
+ boolean found = false;
+ for (Iterator<UIComponent> it = getFacetsAndChildren(); !found && it.hasNext();)
+ {
+ found = it.next().invokeOnComponent(context, clientId, callback);
+ }
+ return found;
}
void clearEvents(FacesContext context)
@@ -356,7 +379,7 @@ public class UIViewRoot extends javax.fa
@Override
public void encodeAll(FacesContext facesContext) throws IOException {
- String[] partialTargets = PartialLifecycleUtils.getPartialTargets(facesContext);
+ /*String[] partialTargets = PartialLifecycleUtils.getPartialTargets(facesContext);
if (partialTargets != null)
{
@@ -383,9 +406,9 @@ public class UIViewRoot extends javax.fa
form.encodeBegin(facesContext);
FormData formData = renderingContext.getFormData();
- formData.addNeededValue(XhtmlConstants.PARTIAL_PARAM);
- formData.addNeededValue(XhtmlConstants.STATE_PARAM);
- formData.addNeededValue(XhtmlConstants.VALUE_PARAM);
+ formData.addNeededValue(TrinidadRenderingConstants.PARTIAL_PARAM);
+ formData.addNeededValue(TrinidadRenderingConstants.STATE_PARAM);
+ formData.addNeededValue(TrinidadRenderingConstants.VALUE_PARAM);
// FIXME
if (renderingContext instanceof CoreRenderingContext)
@@ -405,10 +428,10 @@ public class UIViewRoot extends javax.fa
if (form != null)
{
form.encodeEnd(facesContext);
- }
- } else {
+ } */
+ /* } else { */
super.encodeAll(facesContext);
- }
+ //}
}
public Object saveState(FacesContext facesContext)