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/05/19 07:18:56 UTC

svn commit: r946028 - in /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces: renderkit/html/ view/facelets/ view/facelets/tag/composite/

Author: lu4242
Date: Wed May 19 05:18:55 2010
New Revision: 946028

URL: http://svn.apache.org/viewvc?rev=946028&view=rev
Log:
MYFACES-2638 Fix PostAddToViewEvent and PreRemoveFromViewEvent publishing conditions (remove events call when refreshTransientBuild and replace it with alternate custom event calling)

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlScriptRenderer.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlStylesheetRenderer.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlScriptRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlScriptRenderer.java?rev=946028&r1=946027&r2=946028&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlScriptRenderer.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlScriptRenderer.java Wed May 19 05:18:55 2010
@@ -38,6 +38,7 @@ import org.apache.myfaces.shared_impl.re
 import org.apache.myfaces.shared_impl.renderkit.RendererUtils;
 import org.apache.myfaces.shared_impl.renderkit.html.HTML;
 import org.apache.myfaces.shared_impl.renderkit.html.util.ResourceUtils;
+import org.apache.myfaces.view.facelets.PostBuildComponentTreeOnRestoreViewEvent;
 
 /**
  * Renderer used by h:outputScript component
@@ -47,7 +48,10 @@ import org.apache.myfaces.shared_impl.re
  * @since 2.0
  */
 @JSFRenderer(renderKitId = "HTML_BASIC", family = "javax.faces.Output", type = "javax.faces.resource.Script")
-@ListenerFor(systemEventClass = PostAddToViewEvent.class)
+@ListenersFor({
+@ListenerFor(systemEventClass = PostAddToViewEvent.class),
+@ListenerFor(systemEventClass = PostBuildComponentTreeOnRestoreViewEvent.class)
+})
 public class HtmlScriptRenderer extends Renderer implements PartialStateHolder, ComponentSystemEventListener {
     //private static final Log log = LogFactory.getLog(HtmlScriptRenderer.class);
     private static final Logger log = Logger.getLogger(HtmlScriptRenderer.class.getName());

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlStylesheetRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlStylesheetRenderer.java?rev=946028&r1=946027&r2=946028&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlStylesheetRenderer.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlStylesheetRenderer.java Wed May 19 05:18:55 2010
@@ -55,7 +55,10 @@ import org.apache.myfaces.view.facelets.
  * @version $Revision$ $Date$
  */
 @JSFRenderer(renderKitId = "HTML_BASIC", family = "javax.faces.Output", type = "javax.faces.resource.Stylesheet")
-@ListenerFor(systemEventClass = PostAddToViewEvent.class)
+@ListenersFor({
+@ListenerFor(systemEventClass = PostAddToViewEvent.class),
+@ListenerFor(systemEventClass = PostBuildComponentTreeOnRestoreViewEvent.class)
+})
 public class HtmlStylesheetRenderer extends Renderer implements
     ComponentSystemEventListener, PartialStateHolder
 {

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java?rev=946028&r1=946027&r2=946028&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java Wed May 19 05:18:55 2010
@@ -318,8 +318,9 @@ public class FaceletViewDeclarationLangu
                     // cc:insertChildren or cc:insertFacet will not work correctly, because
                     // we expect PostAddToViewEvent will be propagated from parent to child, and
                     // facelets refreshing algorithm do the opposite.
-                    FaceletViewDeclarationLanguage._publishPreRemoveFromViewEvent(context, view);
-                    FaceletViewDeclarationLanguage._publishPostAddToViewEvent(context, view);
+                    //FaceletViewDeclarationLanguage._publishPreRemoveFromViewEvent(context, view);
+                    //FaceletViewDeclarationLanguage._publishPostAddToViewEvent(context, view);
+                    FaceletViewDeclarationLanguage._publishPostBuildComponentTreeOnRestoreViewEvent(context, view);
                 }
                 
                 context.getAttributes().remove(REFRESHING_TRANSIENT_BUILD);
@@ -404,9 +405,9 @@ public class FaceletViewDeclarationLangu
         }        
     }  
     
-    public static void _publishPostAddToViewEvent(FacesContext context, UIComponent component)
+    public static void _publishPostBuildComponentTreeOnRestoreViewEvent(FacesContext context, UIComponent component)
     {
-        context.getApplication().publishEvent(context, PostAddToViewEvent.class, UIComponent.class, component);
+        context.getApplication().publishEvent(context, PostBuildComponentTreeOnRestoreViewEvent.class, UIComponent.class, component);
         
         if (component.getChildCount() > 0)
         {
@@ -424,7 +425,7 @@ public class FaceletViewDeclarationLangu
                 // This prevents skip components when processing
                 do 
                 {
-                    _publishPostAddToViewEvent(context, child);
+                    _publishPostBuildComponentTreeOnRestoreViewEvent(context, child);
                     currentChild = child;
                 }
                 while ((i < children.size()) &&
@@ -436,7 +437,7 @@ public class FaceletViewDeclarationLangu
         {
             for (UIComponent child : component.getFacets().values())
             {
-                _publishPostAddToViewEvent(context, child);
+                _publishPostBuildComponentTreeOnRestoreViewEvent(context, child);
             }
         }
     }

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java?rev=946028&r1=946027&r2=946028&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertChildrenHandler.java Wed May 19 05:18:55 2010
@@ -80,6 +80,8 @@ public class InsertChildrenHandler exten
 
         parentCompositeComponent.subscribeToEvent(PostAddToViewEvent.class,
                 new RelocateAllChildrenListener(parent, parent.getChildCount()));
+        parentCompositeComponent.subscribeToEvent(PostBuildComponentTreeOnRestoreViewEvent.class,
+                new RelocateAllChildrenListener(parent, parent.getChildCount()));
         /*
         if (ctx.getFacesContext().getAttributes().containsKey(
                 FaceletViewDeclarationLanguage.MARK_INITIAL_STATE_KEY))

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java?rev=946028&r1=946027&r2=946028&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/composite/InsertFacetHandler.java Wed May 19 05:18:55 2010
@@ -40,6 +40,7 @@ import org.apache.myfaces.buildtools.mav
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
 import org.apache.myfaces.view.facelets.AbstractFaceletContext;
 import org.apache.myfaces.view.facelets.FaceletCompositionContext;
+import org.apache.myfaces.view.facelets.PostBuildComponentTreeOnRestoreViewEvent;
 import org.apache.myfaces.view.facelets.tag.jsf.ComponentSupport;
 
 /**
@@ -116,6 +117,8 @@ public class InsertFacetHandler extends 
         
         parentCompositeComponent.subscribeToEvent(PostAddToViewEvent.class, 
                 new RelocateFacetListener(parent, facetName));
+        parentCompositeComponent.subscribeToEvent(PostBuildComponentTreeOnRestoreViewEvent.class, 
+                new RelocateFacetListener(parent, facetName));
         /*
         if (ctx.getFacesContext().getAttributes().containsKey(
                 FaceletViewDeclarationLanguage.MARK_INITIAL_STATE_KEY))