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/06 04:15:05 UTC
svn commit: r951804 - in /myfaces/shared/trunk/core/src:
main/java/org/apache/myfaces/shared/renderkit/html/
test/java/org/apache/myfaces/shared/renderkit/html/
Author: lu4242
Date: Sun Jun 6 02:15:04 2010
New Revision: 951804
URL: http://svn.apache.org/viewvc?rev=951804&view=rev
Log:
MYFACES-2743 Organize renderBehaviorizedXXX method parameters and add new ones
Modified:
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java?rev=951804&r1=951803&r2=951804&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java Sun Jun 6 02:15:04 2010
@@ -72,10 +72,10 @@ public class HtmlBodyRendererBase extend
writer.startElement(HTML.BODY_ELEM, component);
HtmlRendererUtils.writeIdIfNecessary(writer, component, facesContext);
HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
- HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, component, behaviors,
- ClientBehaviorEvents.LOAD, HTML.ONLOAD_ATTR, HTML.ONLOAD_ATTR);
- HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, component, behaviors,
- ClientBehaviorEvents.UNLOAD, HTML.ONUNLOAD_ATTR, HTML.ONUNLOAD_ATTR);
+ HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONLOAD_ATTR, component,
+ ClientBehaviorEvents.LOAD, behaviors, HTML.ONLOAD_ATTR);
+ HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONUNLOAD_ATTR, component,
+ ClientBehaviorEvents.UNLOAD, behaviors, HTML.ONUNLOAD_ATTR);
HtmlRendererUtils.renderHTMLAttributes(writer, component,
HTML.BODY_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS);
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java?rev=951804&r1=951803&r2=951804&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java Sun Jun 6 02:15:04 2010
@@ -19,6 +19,8 @@
package org.apache.myfaces.shared.renderkit.html;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -27,6 +29,7 @@ import javax.faces.component.UIComponent
import javax.faces.component.UIParameter;
import javax.faces.component.ValueHolder;
import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorContext;
import javax.faces.component.behavior.ClientBehaviorHint;
import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.component.html.HtmlCommandButton;
@@ -185,10 +188,12 @@ public class HtmlButtonRendererBase
}
else
{
- String onClick = HtmlRendererUtils.buildBehaviorChain(facesContext, uiComponent, behaviors,
- ClientBehaviorEvents.CLICK, ClientBehaviorEvents.ACTION,
- commandOnclick , null,
+ Collection<ClientBehaviorContext.Parameter> paramList = HtmlRendererUtils.getClientBehaviorContextParameters(
HtmlRendererUtils.mapAttachedParamsToStringValues(facesContext, uiComponent));
+
+ String onClick = HtmlRendererUtils.buildBehaviorChain(facesContext, uiComponent,
+ ClientBehaviorEvents.CLICK, paramList, ClientBehaviorEvents.ACTION, paramList, behaviors,
+ commandOnclick , null);
if (onClick.length() != 0)
{
writer.writeAttribute(HTML.ONCLICK_ATTR, onClick.toString(), null);
@@ -198,8 +203,8 @@ public class HtmlButtonRendererBase
Map<String, Object> attributes = uiComponent.getAttributes();
HtmlRendererUtils.buildBehaviorChain(
- facesContext, uiComponent, behaviors, ClientBehaviorEvents.DBLCLICK,
- (String) attributes.get(HTML.ONDBLCLICK_ATTR), "",null);
+ facesContext, uiComponent, ClientBehaviorEvents.DBLCLICK, null, behaviors,
+ (String) attributes.get(HTML.ONDBLCLICK_ATTR), "");
HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent,
HTML.BUTTON_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
@@ -322,11 +327,12 @@ public class HtmlButtonRendererBase
//according to the specification in jsf.util.chain jdocs and the spec document we have to use
//jsf.util.chain to chain the functions and
- return HtmlRendererUtils.buildBehaviorChain(facesContext, uiComponent, behaviors,
- ClientBehaviorEvents.CLICK, ClientBehaviorEvents.ACTION,
- userOnClick.toString() , rendererOnClick.toString(),
+ Collection<ClientBehaviorContext.Parameter> paramList = HtmlRendererUtils.getClientBehaviorContextParameters(
HtmlRendererUtils.mapAttachedParamsToStringValues(facesContext, uiComponent));
-
+
+ return HtmlRendererUtils.buildBehaviorChain(facesContext, uiComponent,
+ ClientBehaviorEvents.CLICK, paramList, ClientBehaviorEvents.ACTION, paramList, behaviors,
+ userOnClick.toString() , rendererOnClick.toString());
}
protected String buildServerOnclick(FacesContext facesContext, UIComponent component,
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?rev=951804&r1=951803&r2=951804&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java Sun Jun 6 02:15:04 2010
@@ -21,6 +21,7 @@ package org.apache.myfaces.shared.render
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -31,6 +32,7 @@ import javax.faces.component.UIOutcomeTa
import javax.faces.component.UIOutput;
import javax.faces.component.UIParameter;
import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorContext;
import javax.faces.component.behavior.ClientBehaviorHint;
import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.component.html.HtmlCommandLink;
@@ -425,10 +427,12 @@ public abstract class HtmlLinkRendererBa
}
//render a javascript that chain the related code
- onclick = HtmlRendererUtils.buildBehaviorChain(facesContext, component, behaviors,
- ClientBehaviorEvents.CLICK, ClientBehaviorEvents.ACTION,
- commandOnclick , hasSubmittingBehavior ? null : serverEventCode,
+ Collection<ClientBehaviorContext.Parameter> paramList = HtmlRendererUtils.getClientBehaviorContextParameters(
HtmlRendererUtils.mapAttachedParamsToStringValues(facesContext, component));
+
+ onclick = HtmlRendererUtils.buildBehaviorChain(facesContext, component,
+ ClientBehaviorEvents.CLICK, paramList, ClientBehaviorEvents.ACTION, paramList, behaviors,
+ commandOnclick , hasSubmittingBehavior ? null : serverEventCode);
}
writer.startElement(HTML.ANCHOR_ELEM, component);
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java?rev=951804&r1=951803&r2=951804&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java Sun Jun 6 02:15:04 2010
@@ -21,6 +21,7 @@ package org.apache.myfaces.shared.render
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
@@ -2059,6 +2060,23 @@ public final class HtmlRendererUtils {
return (behaviors.get(eventName) != null);
}
+ public static Collection<ClientBehaviorContext.Parameter> getClientBehaviorContextParameters(
+ Map<String, String> params)
+ {
+ List<ClientBehaviorContext.Parameter> paramList = null;
+ if (params != null)
+ {
+ paramList = new ArrayList<ClientBehaviorContext.Parameter>(
+ params.size());
+ for (Map.Entry<String, String> paramEntry : params.entrySet())
+ {
+ paramList.add(new ClientBehaviorContext.Parameter(paramEntry
+ .getKey(), paramEntry.getValue()));
+ }
+ }
+ return paramList;
+ }
+
/**
* builds the chained behavior script which then can be reused
* in following order by the other script building parts
@@ -2075,9 +2093,9 @@ public final class HtmlRendererUtils {
* @return a string representation of the javascripts for the attached event behavior, an empty string if none is present
*/
private static boolean getClientBehaviorScript(FacesContext facesContext,
- UIComponent uiComponent,
+ UIComponent uiComponent, String eventName,
Map<String, List<ClientBehavior>> clientBehaviors,
- ScriptContext target, String eventName, Map<String, String> params)
+ ScriptContext target, Collection<ClientBehaviorContext.Parameter> params)
{
if (!(uiComponent instanceof ClientBehaviorHolder))
{
@@ -2105,22 +2123,10 @@ public final class HtmlRendererUtils {
return false;
}
- List<ClientBehaviorContext.Parameter> paramList = null;
- if (params != null)
- {
- paramList = new ArrayList<ClientBehaviorContext.Parameter>(
- params.size());
- for (Map.Entry<String, String> paramEntry : params.entrySet())
- {
- paramList.add(new ClientBehaviorContext.Parameter(paramEntry
- .getKey(), paramEntry.getValue()));
- }
- }
-
ClientBehaviorContext context = ClientBehaviorContext
.createClientBehaviorContext(facesContext, uiComponent,
eventName, uiComponent.getClientId(facesContext),
- paramList);
+ params);
boolean submitting = false;
@@ -2162,10 +2168,10 @@ public final class HtmlRendererUtils {
* @return
*/
public static String buildBehaviorChain(FacesContext facesContext,
- UIComponent uiComponent, Map<String, List<ClientBehavior>> clientBehaviors,
- String eventName,
- String userEventCode, String serverEventCode,
- Map<String, String> params)
+ UIComponent uiComponent,
+ String eventName, Collection<ClientBehaviorContext.Parameter> params,
+ Map<String, List<ClientBehavior>> clientBehaviors,
+ String userEventCode, String serverEventCode)
{
ExternalContext externalContext = facesContext.getExternalContext();
boolean renderCode = JavascriptUtils
@@ -2187,8 +2193,8 @@ public final class HtmlRendererUtils {
ScriptContext behaviorCode = new ScriptContext();
ScriptContext retVal = new ScriptContext(currentInstance.isPrettyHtml());
- getClientBehaviorScript(facesContext, uiComponent, clientBehaviors,
- behaviorCode, eventName, params);
+ getClientBehaviorScript(facesContext, uiComponent, eventName, clientBehaviors,
+ behaviorCode, params);
if (behaviorCode != null
&& !behaviorCode.toString().trim().equals(STR_EMPTY))
{
@@ -2237,9 +2243,11 @@ public final class HtmlRendererUtils {
*/
public static String buildBehaviorChain(FacesContext facesContext,
UIComponent uiComponent,
+ String eventName1, Collection<ClientBehaviorContext.Parameter> params,
+ String eventName2, Collection<ClientBehaviorContext.Parameter> params2,
Map<String, List<ClientBehavior>> clientBehaviors,
- String eventName1, String eventName2, String userEventCode,
- String serverEventCode, Map<String, String> params)
+ String userEventCode,
+ String serverEventCode)
{
ExternalContext externalContext = facesContext.getExternalContext();
boolean renderCode = JavascriptUtils
@@ -2259,10 +2267,10 @@ public final class HtmlRendererUtils {
ScriptContext behaviorCode = new ScriptContext();
ScriptContext retVal = new ScriptContext(currentInstance.isPrettyHtml());
- boolean submitting1 = getClientBehaviorScript(facesContext, uiComponent, clientBehaviors,
- behaviorCode, eventName1, params);
- boolean submitting2 = getClientBehaviorScript(facesContext, uiComponent, clientBehaviors,
- behaviorCode, eventName2, params);
+ boolean submitting1 = getClientBehaviorScript(facesContext, uiComponent, eventName1, clientBehaviors,
+ behaviorCode, params);
+ boolean submitting2 = getClientBehaviorScript(facesContext, uiComponent, eventName2, clientBehaviors,
+ behaviorCode, params2);
// ClientBehaviors for both events have to be checked for the Submitting hint
boolean submitting = submitting1 || submitting2;
@@ -2446,7 +2454,39 @@ public final class HtmlRendererUtils {
}
/**
- * @since 4.0.0
+ *
+ * Render an attribute taking into account the passed event and
+ * the component property. It will be rendered as "componentProperty"
+ * attribute.
+ *
+ * @since 4.0.1
+ * @param facesContext
+ * @param writer
+ * @param componentProperty
+ * @param component
+ * @param eventName
+ * @param clientBehaviors
+ * @return
+ * @throws IOException
+ */
+ public static boolean renderBehaviorizedAttribute(
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String eventName, Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
+ {
+ return renderBehaviorizedAttribute(
+ facesContext, writer,
+ componentProperty, component,
+ eventName, clientBehaviors, componentProperty);
+ }
+
+
+ /**
+ * Render an attribute taking into account the passed event and
+ * the component property. The event will be rendered on the selected
+ * htmlAttrName
+ *
+ * @since 4.0.1
* @param facesContext
* @param writer
* @param component
@@ -2458,35 +2498,187 @@ public final class HtmlRendererUtils {
* @throws IOException
*/
public static boolean renderBehaviorizedAttribute(
- FacesContext facesContext, ResponseWriter writer,
- UIComponent component, Map<String, List<ClientBehavior>> clientBehaviors, String eventName, String componentProperty,
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String eventName, Map<String, List<ClientBehavior>> clientBehaviors,
String htmlAttrName) throws IOException
{
+ return renderBehaviorizedAttribute(facesContext, writer,
+ componentProperty, component,
+ eventName, null, clientBehaviors,
+ htmlAttrName, (String) component.getAttributes().get(componentProperty));
+ }
+
+ /**
+ * Render an attribute taking into account the passed event,
+ * the component property and the passed attribute value for the component
+ * property. The event will be rendered on the selected htmlAttrName.
+ *
+ * @param facesContext
+ * @param writer
+ * @param componentProperty
+ * @param component
+ * @param eventName
+ * @param clientBehaviors
+ * @param htmlAttrName
+ * @param attributeValue
+ * @return
+ * @throws IOException
+ */
+ public static boolean renderBehaviorizedAttribute(
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String eventName, Collection<ClientBehaviorContext.Parameter> eventParameters, Map<String, List<ClientBehavior>> clientBehaviors,
+ String htmlAttrName, String attributeValue) throws IOException
+ {
List<ClientBehavior> cbl = (clientBehaviors != null) ? clientBehaviors.get(eventName) : null;
if (cbl == null || cbl.size() == 0)
{
- return renderHTMLAttribute(writer, component, componentProperty, htmlAttrName);
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName, attributeValue);
}
- String attrValue = (String) component.getAttributes().get(componentProperty);
- if (cbl.size() > 1 || (cbl.size() == 1 && attrValue != null) )
+ if (cbl.size() > 1 || (cbl.size() == 1 && attributeValue != null) )
{
- Object value = HtmlRendererUtils.buildBehaviorChain(facesContext,
- component, clientBehaviors, eventName,
- attrValue, STR_EMPTY, null);
return renderHTMLAttribute(writer, componentProperty, htmlAttrName,
- value);
+ HtmlRendererUtils.buildBehaviorChain(facesContext,
+ component, eventName, eventParameters, clientBehaviors,
+ attributeValue, STR_EMPTY));
}
else
{
//Only 1 behavior and attrValue == null, so just render it directly
- ClientBehaviorContext behaviorContext = ClientBehaviorContext
- .createClientBehaviorContext(facesContext, component,
- eventName, component.getClientId(facesContext),
- null);
return renderHTMLAttribute(writer, componentProperty, htmlAttrName,
- cbl.get(0).getScript(behaviorContext));
+ cbl.get(0).getScript(
+ ClientBehaviorContext
+ .createClientBehaviorContext(facesContext, component,
+ eventName, component.getClientId(facesContext),
+ eventParameters)));
+ }
+ }
+
+ /**
+ * Render an attribute taking into account the passed event,
+ * the passed attribute value for the component property.
+ * and the specific server code.
+ * The event will be rendered on the selected htmlAttrName.
+ *
+ * @param facesContext
+ * @param writer
+ * @param componentProperty
+ * @param component
+ * @param eventName
+ * @param clientBehaviors
+ * @param htmlAttrName
+ * @param attributeValue
+ * @param serverSideScript
+ * @return
+ * @throws IOException
+ */
+ public static boolean renderBehaviorizedAttribute(
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String eventName, Collection<ClientBehaviorContext.Parameter> eventParameters, Map<String, List<ClientBehavior>> clientBehaviors,
+ String htmlAttrName, String attributeValue, String serverSideScript) throws IOException
+ {
+ List<ClientBehavior> cbl = (clientBehaviors != null) ? clientBehaviors.get(eventName) : null;
+
+ if (((cbl != null) ? cbl.size() : 0) + (attributeValue != null ? 1 : 0) + (serverSideScript != null ? 1 : 0) <= 1)
+ {
+ if (cbl == null || cbl.size() == 0)
+ {
+ if (attributeValue != null)
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName, attributeValue);
+ }
+ else
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName, serverSideScript);
+ }
+ }else
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName,
+ cbl.get(0).getScript(
+ ClientBehaviorContext
+ .createClientBehaviorContext(facesContext, component,
+ eventName, component.getClientId(facesContext),
+ eventParameters)));
+ }
+ }
+ else
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName,
+ HtmlRendererUtils.buildBehaviorChain(facesContext,
+ component, eventName, eventParameters, clientBehaviors,
+ attributeValue, serverSideScript));
+ }
+ }
+
+ /**
+ *
+ * @param facesContext
+ * @param writer
+ * @param componentProperty
+ * @param component
+ * @param eventName
+ * @param eventParameters
+ * @param eventName2
+ * @param eventParameters2
+ * @param clientBehaviors
+ * @param htmlAttrName
+ * @param attributeValue
+ * @param serverSideScript
+ * @return
+ * @throws IOException
+ */
+ public static boolean renderBehaviorizedAttribute(
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String eventName, Collection<ClientBehaviorContext.Parameter> eventParameters,
+ String eventName2, Collection<ClientBehaviorContext.Parameter> eventParameters2,
+ Map<String, List<ClientBehavior>> clientBehaviors,
+ String htmlAttrName, String attributeValue, String serverSideScript) throws IOException
+ {
+ List<ClientBehavior> cb1 = (clientBehaviors != null) ? clientBehaviors.get(eventName) : null;
+ List<ClientBehavior> cb2 = (clientBehaviors != null) ? clientBehaviors.get(eventName2) : null;
+
+ if (((cb1 != null) ? cb1.size() : 0)+ ((cb2 != null) ? cb2.size() : 0) + (attributeValue != null ? 1 : 0) <= 1)
+ {
+ if (attributeValue != null)
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName, attributeValue);
+ }
+ else if (serverSideScript != null)
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName, serverSideScript);
+ }
+ else if (((cb1 != null) ? cb1.size() : 0) > 0)
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName,
+ cb1.get(0).getScript(
+ ClientBehaviorContext
+ .createClientBehaviorContext(facesContext, component,
+ eventName, component.getClientId(facesContext),
+ eventParameters)));
+ }
+ else
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName,
+ cb2.get(0).getScript(
+ ClientBehaviorContext
+ .createClientBehaviorContext(facesContext, component,
+ eventName2, component.getClientId(facesContext),
+ eventParameters2)));
+ }
+ }
+ else
+ {
+ return renderHTMLAttribute(writer, componentProperty, htmlAttrName,
+ HtmlRendererUtils.buildBehaviorChain(
+ facesContext, component,
+ eventName, eventParameters,
+ eventName2, eventParameters2,
+ clientBehaviors, attributeValue, serverSideScript));
}
}
@@ -2502,26 +2694,26 @@ public final class HtmlRendererUtils {
FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent,
Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
{
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.CLICK, HTML.ONCLICK_ATTR, HTML.ONCLICK_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.DBLCLICK, HTML.ONDBLCLICK_ATTR, HTML.ONDBLCLICK_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEDOWN, HTML.ONMOUSEDOWN_ATTR, HTML.ONMOUSEDOWN_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEUP, HTML.ONMOUSEUP_ATTR, HTML.ONMOUSEUP_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEOVER, HTML.ONMOUSEOVER_ATTR, HTML.ONMOUSEOVER_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEMOVE, HTML.ONMOUSEMOVE_ATTR, HTML.ONMOUSEMOVE_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEOUT, HTML.ONMOUSEOUT_ATTR, HTML.ONMOUSEOUT_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.KEYPRESS, HTML.ONKEYPRESS_ATTR, HTML.ONKEYPRESS_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.KEYDOWN, HTML.ONKEYDOWN_ATTR, HTML.ONKEYDOWN_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.KEYUP, HTML.ONKEYUP_ATTR, HTML.ONKEYUP_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONCLICK_ATTR, uiComponent,
+ ClientBehaviorEvents.CLICK, clientBehaviors, HTML.ONCLICK_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONDBLCLICK_ATTR, uiComponent,
+ ClientBehaviorEvents.DBLCLICK, clientBehaviors, HTML.ONDBLCLICK_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEDOWN_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEDOWN, clientBehaviors, HTML.ONMOUSEDOWN_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEUP_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEUP, clientBehaviors, HTML.ONMOUSEUP_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEOVER_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEOVER, clientBehaviors, HTML.ONMOUSEOVER_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEMOVE_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEMOVE, clientBehaviors, HTML.ONMOUSEMOVE_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEOUT_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEOUT, clientBehaviors, HTML.ONMOUSEOUT_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYPRESS_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYPRESS, clientBehaviors, HTML.ONKEYPRESS_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYDOWN_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYDOWN, clientBehaviors, HTML.ONKEYDOWN_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYUP_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYUP, clientBehaviors, HTML.ONKEYUP_ATTR);
}
/**
@@ -2536,24 +2728,46 @@ public final class HtmlRendererUtils {
FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent,
Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
{
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.DBLCLICK, HTML.ONDBLCLICK_ATTR, HTML.ONDBLCLICK_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEDOWN, HTML.ONMOUSEDOWN_ATTR, HTML.ONMOUSEDOWN_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEUP, HTML.ONMOUSEUP_ATTR, HTML.ONMOUSEUP_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEOVER, HTML.ONMOUSEOVER_ATTR, HTML.ONMOUSEOVER_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEMOVE, HTML.ONMOUSEMOVE_ATTR, HTML.ONMOUSEMOVE_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.MOUSEOUT, HTML.ONMOUSEOUT_ATTR, HTML.ONMOUSEOUT_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.KEYPRESS, HTML.ONKEYPRESS_ATTR, HTML.ONKEYPRESS_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.KEYDOWN, HTML.ONKEYDOWN_ATTR, HTML.ONKEYDOWN_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.KEYUP, HTML.ONKEYUP_ATTR, HTML.ONKEYUP_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONDBLCLICK_ATTR, uiComponent,
+ ClientBehaviorEvents.DBLCLICK, clientBehaviors, HTML.ONDBLCLICK_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEDOWN_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEDOWN, clientBehaviors, HTML.ONMOUSEDOWN_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEUP_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEUP, clientBehaviors, HTML.ONMOUSEUP_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEOVER_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEOVER, clientBehaviors, HTML.ONMOUSEOVER_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEMOVE_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEMOVE, clientBehaviors, HTML.ONMOUSEMOVE_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEOUT_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEOUT, clientBehaviors, HTML.ONMOUSEOUT_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYPRESS_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYPRESS, clientBehaviors, HTML.ONKEYPRESS_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYDOWN_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYDOWN, clientBehaviors, HTML.ONKEYDOWN_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYUP_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYUP, clientBehaviors, HTML.ONKEYUP_ATTR);
+ }
+
+ public static void renderBehaviorizedEventHandlersWithoutOnmouseoverAndOnmouseout(
+ FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent,
+ Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONCLICK_ATTR, uiComponent,
+ ClientBehaviorEvents.CLICK, clientBehaviors, HTML.ONCLICK_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONDBLCLICK_ATTR, uiComponent,
+ ClientBehaviorEvents.DBLCLICK, clientBehaviors, HTML.ONDBLCLICK_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEDOWN_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEDOWN, clientBehaviors, HTML.ONMOUSEDOWN_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEUP_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEUP, clientBehaviors, HTML.ONMOUSEUP_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEMOVE_ATTR, uiComponent,
+ ClientBehaviorEvents.MOUSEMOVE, clientBehaviors, HTML.ONMOUSEMOVE_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYPRESS_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYPRESS, clientBehaviors, HTML.ONKEYPRESS_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYDOWN_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYDOWN, clientBehaviors, HTML.ONKEYDOWN_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYUP_ATTR, uiComponent,
+ ClientBehaviorEvents.KEYUP, clientBehaviors, HTML.ONKEYUP_ATTR);
}
/**
@@ -2568,14 +2782,26 @@ public final class HtmlRendererUtils {
FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent,
Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
{
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.FOCUS, HTML.ONFOCUS_ATTR, HTML.ONFOCUS_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.BLUR, HTML.ONBLUR_ATTR, HTML.ONBLUR_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.CHANGE, HTML.ONCHANGE_ATTR, HTML.ONCHANGE_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.SELECT, HTML.ONSELECT_ATTR, HTML.ONSELECT_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONFOCUS_ATTR, uiComponent,
+ ClientBehaviorEvents.FOCUS, clientBehaviors, HTML.ONFOCUS_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR, uiComponent,
+ ClientBehaviorEvents.BLUR, clientBehaviors, HTML.ONBLUR_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONCHANGE_ATTR, uiComponent,
+ ClientBehaviorEvents.CHANGE, clientBehaviors, HTML.ONCHANGE_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONSELECT_ATTR, uiComponent,
+ ClientBehaviorEvents.SELECT, clientBehaviors, HTML.ONSELECT_ATTR);
+ }
+
+ public static void renderBehaviorizedFieldEventHandlersWithoutOnfocus(
+ FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent,
+ Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR, uiComponent,
+ ClientBehaviorEvents.BLUR, clientBehaviors, HTML.ONBLUR_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONCHANGE_ATTR, uiComponent,
+ ClientBehaviorEvents.CHANGE, clientBehaviors, HTML.ONCHANGE_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONSELECT_ATTR, uiComponent,
+ ClientBehaviorEvents.SELECT, clientBehaviors, HTML.ONSELECT_ATTR);
}
/**
@@ -2590,22 +2816,22 @@ public final class HtmlRendererUtils {
FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent,
Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
{
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.FOCUS, HTML.ONFOCUS_ATTR, HTML.ONFOCUS_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.BLUR, HTML.ONBLUR_ATTR, HTML.ONBLUR_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.SELECT, HTML.ONSELECT_ATTR, HTML.ONSELECT_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONFOCUS_ATTR, uiComponent,
+ ClientBehaviorEvents.FOCUS, clientBehaviors, HTML.ONFOCUS_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR, uiComponent,
+ ClientBehaviorEvents.BLUR, clientBehaviors, HTML.ONBLUR_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONSELECT_ATTR, uiComponent,
+ ClientBehaviorEvents.SELECT, clientBehaviors, HTML.ONSELECT_ATTR);
}
public static void renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
FacesContext facesContext, ResponseWriter writer, UIComponent uiComponent,
Map<String, List<ClientBehavior>> clientBehaviors) throws IOException
{
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.FOCUS, HTML.ONFOCUS_ATTR, HTML.ONFOCUS_ATTR);
- renderBehaviorizedAttribute(facesContext, writer, uiComponent, clientBehaviors,
- ClientBehaviorEvents.BLUR, HTML.ONBLUR_ATTR, HTML.ONBLUR_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONFOCUS_ATTR, uiComponent,
+ ClientBehaviorEvents.FOCUS, clientBehaviors, HTML.ONFOCUS_ATTR);
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR, uiComponent,
+ ClientBehaviorEvents.BLUR, clientBehaviors, HTML.ONBLUR_ATTR);
}
/**
@@ -2627,20 +2853,20 @@ public final class HtmlRendererUtils {
if (hasChange && hasValueChange)
{
String chain = HtmlRendererUtils.buildBehaviorChain(facesContext,
- uiComponent, clientBehaviors, ClientBehaviorEvents.CHANGE, ClientBehaviorEvents.VALUECHANGE,
- (String) uiComponent.getAttributes().get(HTML.ONCHANGE_ATTR), null, null);
+ uiComponent, ClientBehaviorEvents.CHANGE, null, ClientBehaviorEvents.VALUECHANGE, null, clientBehaviors,
+ (String) uiComponent.getAttributes().get(HTML.ONCHANGE_ATTR), null);
return HtmlRendererUtils.renderHTMLAttribute(writer, HTML.ONCHANGE_ATTR, HTML.ONCHANGE_ATTR, chain);
}
else if (hasChange)
{
- return HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, uiComponent,
- clientBehaviors, ClientBehaviorEvents.CHANGE, HTML.ONCHANGE_ATTR, HTML.ONCHANGE_ATTR);
+ return HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONCHANGE_ATTR, uiComponent,
+ ClientBehaviorEvents.CHANGE, clientBehaviors, HTML.ONCHANGE_ATTR);
}
else if (hasValueChange)
{
- return HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, uiComponent,
- clientBehaviors, ClientBehaviorEvents.VALUECHANGE, HTML.ONCHANGE_ATTR, HTML.ONCHANGE_ATTR);
+ return HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONCHANGE_ATTR, uiComponent,
+ ClientBehaviorEvents.VALUECHANGE, clientBehaviors, HTML.ONCHANGE_ATTR);
}
else
{
Modified: myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java?rev=951804&r1=951803&r2=951804&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java (original)
+++ myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java Sun Jun 6 02:15:04 2010
@@ -40,16 +40,18 @@ public class HtmlRendererUtilsTest exten
{
Map<String, List<ClientBehavior>> behaviors = new HashMap<String, List<ClientBehavior>>();
- Map<String, String> params = new HashMap<String, String>();
+ //Map<String, String> params = new HashMap<String, String>();
+ Collection<ClientBehaviorContext.Parameter> params = new ArrayList<ClientBehaviorContext.Parameter>();
+
UIComponent component = new HtmlInputText();
- Assert.assertEquals("", HtmlRendererUtils.buildBehaviorChain(facesContext, component, behaviors,
- ClientBehaviorEvents.CLICK, ClientBehaviorEvents.ACTION, null,
- null, params));
+ Assert.assertEquals("", HtmlRendererUtils.buildBehaviorChain(facesContext, component,
+ ClientBehaviorEvents.CLICK, params, ClientBehaviorEvents.ACTION, params, behaviors, null,
+ null));
Assert.assertEquals("return jsf.util.chain(document.getElementById('j_id0'), event,'huhn', 'suppe');",
HtmlRendererUtils.buildBehaviorChain(facesContext,
- component, behaviors, ClientBehaviorEvents.CLICK, ClientBehaviorEvents.ACTION, "huhn",
- "suppe", params));
+ component, ClientBehaviorEvents.CLICK, params, ClientBehaviorEvents.ACTION, params, behaviors, "huhn",
+ "suppe"));
ClientBehavior submittingBehavior = new ClientBehaviorBase()
{
@@ -70,9 +72,9 @@ public class HtmlRendererUtilsTest exten
Assert.assertEquals("jsf.util.chain(document.getElementById('j_id0'), event,'huhn', 'script()', 'suppe'); return false;",
HtmlRendererUtils.buildBehaviorChain(facesContext,
- component, behaviors,
- ClientBehaviorEvents.CLICK, ClientBehaviorEvents.ACTION, "huhn",
- "suppe", params));
+ component,
+ ClientBehaviorEvents.CLICK, params, ClientBehaviorEvents.ACTION, params, behaviors, "huhn",
+ "suppe"));
}
}
\ No newline at end of file