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/06/17 04:10:49 UTC

svn commit: r955458 - /myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/inputTextHelp/HtmlTextHelpRenderer.java

Author: lu4242
Date: Thu Jun 17 02:10:49 2010
New Revision: 955458

URL: http://svn.apache.org/viewvc?rev=955458&view=rev
Log:
TOMAHAWK-1474 Behavior support for components that contains event aware properties in jsf 2.0 module

Modified:
    myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/inputTextHelp/HtmlTextHelpRenderer.java

Modified: myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/inputTextHelp/HtmlTextHelpRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/inputTextHelp/HtmlTextHelpRenderer.java?rev=955458&r1=955457&r2=955458&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/inputTextHelp/HtmlTextHelpRenderer.java (original)
+++ myfaces/tomahawk/trunk/core20/src/main/java/org/apache/myfaces/custom/inputTextHelp/HtmlTextHelpRenderer.java Thu Jun 17 02:10:49 2010
@@ -19,9 +19,13 @@
 package org.apache.myfaces.custom.inputTextHelp;
 
 import java.io.IOException;
+import java.util.List;
+import java.util.Map;
 
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIInput;
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorHolder;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.convert.ConverterException;
@@ -30,10 +34,12 @@ import javax.faces.event.ComponentSystem
 import javax.faces.event.ListenerFor;
 
 import org.apache.myfaces.renderkit.html.ext.HtmlTextRenderer;
+import org.apache.myfaces.shared_tomahawk.renderkit.ClientBehaviorEvents;
 import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
 import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
 import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
+import org.apache.myfaces.shared_tomahawk.renderkit.html.util.ResourceUtils;
 import org.apache.myfaces.tomahawk.application.PreRenderViewAddResourceEvent;
 import org.apache.myfaces.tomahawk.util.TomahawkResourceUtils;
 
@@ -101,6 +107,16 @@ public class HtmlTextHelpRenderer extend
     {
         ResponseWriter writer = facesContext.getResponseWriter();
 
+        Map<String, List<ClientBehavior>> behaviors = null;
+        if (input instanceof ClientBehaviorHolder)
+        {
+            behaviors = ((ClientBehaviorHolder) input).getClientBehaviors();
+            if (!behaviors.isEmpty())
+            {
+                ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, facesContext.getResponseWriter());
+            }
+        }
+        
         writer.startElement(HTML.INPUT_ELEM, input);
 
         writer.writeAttribute(HTML.ID_ATTR, input.getClientId(facesContext), null);
@@ -134,12 +150,35 @@ public class HtmlTextHelpRenderer extend
             String id = component.getClientId(facesContext);
             HtmlInputTextHelp textHelp = (HtmlInputTextHelp)component;
             
-            HtmlRendererUtils.renderHTMLAttributes(writer, component,
-                                                   HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK);
-            writer.writeAttribute(HTML.ONFOCUS_ATTR,
-                                  buildJavascriptFunction(component, id, textHelp.getOnfocus()), null);
-            writer.writeAttribute(HTML.ONCLICK_ATTR,
-                                  buildJavascriptFunction(component, id, textHelp.getOnclick()), null);
+            Map<String, List<ClientBehavior>> behaviors = textHelp.getClientBehaviors();
+            if (behaviors != null && !behaviors.isEmpty())
+            {
+                
+                HtmlRendererUtils.renderBehaviorizedEventHandlersWithoutOnclick(facesContext, writer, textHelp, behaviors);
+                HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, textHelp, behaviors);
+                HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR, textHelp,
+                        ClientBehaviorEvents.BLUR, behaviors, HTML.ONBLUR_ATTR);
+                HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer,  HTML.ONSELECT_ATTR, textHelp,
+                        ClientBehaviorEvents.SELECT, behaviors, HTML.ONSELECT_ATTR);
+
+                HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONFOCUS_ATTR, textHelp, 
+                        ClientBehaviorEvents.FOCUS, null, behaviors, HTML.ONFOCUS_ATTR, null,
+                        buildJavascriptFunction(component, id, textHelp.getOnfocus()));
+                HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONCLICK_ATTR, textHelp, 
+                        ClientBehaviorEvents.CLICK, null, behaviors, HTML.ONCLICK_ATTR, null,
+                        buildJavascriptFunction(component, id, textHelp.getOnclick()));
+                HtmlRendererUtils.renderHTMLAttributes(writer, component,
+                        HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
+            }
+            else
+            {
+                HtmlRendererUtils.renderHTMLAttributes(writer, component,
+                                                       HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_ONFOCUS_AND_ONCLICK);
+                writer.writeAttribute(HTML.ONFOCUS_ATTR,
+                                      buildJavascriptFunction(component, id, textHelp.getOnfocus()), null);
+                writer.writeAttribute(HTML.ONCLICK_ATTR,
+                                      buildJavascriptFunction(component, id, textHelp.getOnclick()), null);
+            }
         }
 
         if (isDisabled(facesContext, component))