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/10 21:12:07 UTC

svn commit: r942853 - in /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf: BehaviorTagHandlerDelegate.java core/AjaxHandler.java

Author: lu4242
Date: Mon May 10 19:12:07 2010
New Revision: 942853

URL: http://svn.apache.org/viewvc?rev=942853&view=rev
Log:
MYFACES-2687 Make sure jsf.js is included if client behaviors are rendered

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/BehaviorTagHandlerDelegate.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/BehaviorTagHandlerDelegate.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/BehaviorTagHandlerDelegate.java?rev=942853&r1=942852&r2=942853&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/BehaviorTagHandlerDelegate.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/BehaviorTagHandlerDelegate.java Mon May 10 19:12:07 2010
@@ -32,11 +32,13 @@ import javax.faces.view.facelets.Compone
 import javax.faces.view.facelets.FaceletContext;
 import javax.faces.view.facelets.MetaRuleset;
 import javax.faces.view.facelets.TagAttribute;
+import javax.faces.view.facelets.TagAttributeException;
 import javax.faces.view.facelets.TagException;
 import javax.faces.view.facelets.TagHandlerDelegate;
 
 import org.apache.myfaces.view.facelets.tag.MetaRulesetImpl;
 import org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler;
+import org.apache.myfaces.view.facelets.tag.jsf.core.AjaxHandler;
 
 /**
  * @author Leonardo Uribe (latest modification by $Author$)
@@ -158,7 +160,20 @@ public class BehaviorTagHandlerDelegate 
             {
                 eventName = cvh.getDefaultEventName();
             }
-            cvh.addClientBehavior(eventName, (ClientBehavior) behavior);
+            if (eventName == null)
+            {
+                throw new TagAttributeException(_delegate.getEvent(), "eventName could not be defined for client behavior "+ behavior.toString());
+            }
+            else if (!cvh.getEventNames().contains(eventName))
+            {
+                throw new TagAttributeException(_delegate.getEvent(), "eventName "+eventName+" not found on component instance");
+            }
+            else
+            {
+                cvh.addClientBehavior(eventName, (ClientBehavior) behavior);
+            }
+            
+            AjaxHandler.registerJsfAjaxDefaultResource(faceletContext, parent);
         }
     }
 

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java?rev=942853&r1=942852&r2=942853&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/core/AjaxHandler.java Mon May 10 19:12:07 2010
@@ -222,6 +222,11 @@ public class AjaxHandler extends TagHand
             }
         }
         
+        registerJsfAjaxDefaultResource(ctx, parent);
+    }
+    
+    public static void registerJsfAjaxDefaultResource(FaceletContext ctx, UIComponent parent)
+    {
         // Register the standard ajax library on the current page in this way:
         //
         // <h:outputScript name="jsf.js" library="javax.faces" target="head"/>