You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/12/17 20:57:05 UTC
svn commit: r1050481 - in
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets:
impl/FaceletCompositionContextImpl.java tag/jsf/core/EventHandler.java
tag/jsf/core/ViewMetadataHandler.java
Author: lu4242
Date: Fri Dec 17 19:57:04 2010
New Revision: 1050481
URL: http://svn.apache.org/viewvc?rev=1050481&view=rev
Log:
MYFACES-3002 FaceletComponsitionContextImpl drops viewParams
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/ViewMetadataHandler.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java?rev=1050481&r1=1050480&r2=1050481&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java Fri Dec 17 19:57:04 2010
@@ -512,21 +512,21 @@ public class FaceletCompositionContextIm
Map<String, UIComponent> facets = component.getFacets();
if (!facets.isEmpty())
{
- UIComponent metadataFacet = null;
- if (component instanceof UIViewRoot)
- {
- metadataFacet = facets.get(UIViewRoot.METADATA_FACET_NAME);
- }
+ //UIComponent metadataFacet = null;
+ //if (component instanceof UIViewRoot)
+ //{
+ // metadataFacet = facets.get(UIViewRoot.METADATA_FACET_NAME);
+ //}
for (Iterator<UIComponent> itr = facets.values().iterator(); itr.hasNext();)
{
UIComponent fc = itr.next();
- if (fc == metadataFacet)
- {
+ //if (fc == metadataFacet)
+ //{
// skip metadata facet
- continue;
- }
+ //continue;
+ //}
id = (String) fc.getAttributes().get(ComponentSupport.MARK_CREATED);
if (id != null)
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java?rev=1050481&r1=1050480&r2=1050481&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/EventHandler.java Fri Dec 17 19:57:04 2010
@@ -47,6 +47,7 @@ import org.apache.myfaces.buildtools.mav
import org.apache.myfaces.config.NamedEventManager;
import org.apache.myfaces.config.RuntimeConfig;
import org.apache.myfaces.view.facelets.FaceletCompositionContext;
+import org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage;
import org.apache.myfaces.view.facelets.tag.jsf.ComponentSupport;
import org.apache.myfaces.view.facelets.util.ReflectionUtil;
@@ -87,9 +88,18 @@ public final class EventHandler extends
{
return;
}
- if (parent instanceof UIViewRoot && FaceletCompositionContext.getCurrentInstance(ctx).isRefreshingTransientBuild())
+ if (parent instanceof UIViewRoot)
{
- return;
+ if (FaceletCompositionContext.getCurrentInstance(ctx).isRefreshingTransientBuild())
+ {
+ return;
+ }
+ else if (!FaceletViewDeclarationLanguage.isBuildingViewMetadata(ctx.getFacesContext()) &&
+ UIViewRoot.METADATA_FACET_NAME.equals((String) parent.getAttributes().get(FacetHandler.KEY)))
+ {
+ // Already processed when the view metadata was created
+ return;
+ }
}
Class<? extends ComponentSystemEvent> eventClass = getEventClass(ctx);
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/ViewMetadataHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/ViewMetadataHandler.java?rev=1050481&r1=1050480&r2=1050481&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/ViewMetadataHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/ViewMetadataHandler.java Fri Dec 17 19:57:04 2010
@@ -23,6 +23,7 @@ import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.component.UIPanel;
import javax.faces.component.UIViewRoot;
+import javax.faces.view.facelets.ComponentHandler;
import javax.faces.view.facelets.FaceletContext;
import javax.faces.view.facelets.TagConfig;
import javax.faces.view.facelets.TagException;
@@ -80,5 +81,20 @@ public final class ViewMetadataHandler e
parent.getAttributes().remove(FacetHandler.KEY);
}
}
+ else
+ {
+ // In this case we need to call nextHandler so the mark/delete components could be applied
+ // correctly. The only tag that needs to do something special is f:event, because in this case
+ // ComponentHandler.isNew(parent) does not work for UIViewRoot.
+ parent.getAttributes().put(FacetHandler.KEY, UIViewRoot.METADATA_FACET_NAME);
+ try
+ {
+ this.nextHandler.apply(ctx, parent);
+ }
+ finally
+ {
+ parent.getAttributes().remove(FacetHandler.KEY);
+ }
+ }
}
}