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 2012/02/02 21:00:44 UTC
svn commit: r1239799 [3/9] - in
/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared:
application/ config/ context/flash/ renderkit/ renderkit/html/
renderkit/html/util/ resource/ util/ util/io/ util/xml/
Added: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonEventUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonEventUtils.java?rev=1239799&view=auto
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonEventUtils.java (added)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonEventUtils.java Thu Feb 2 20:00:42 2012
@@ -0,0 +1,541 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.shared.renderkit.html;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import javax.faces.component.UIComponent;
+import javax.faces.component.behavior.ClientBehavior;
+import javax.faces.component.behavior.ClientBehaviorContext;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import org.apache.myfaces.shared.renderkit.ClientBehaviorEvents;
+
+/**
+ *
+ * @author Leonardo Uribe
+ */
+public class CommonEventUtils
+{
+ public static long getCommonEventsMarked(UIComponent component)
+ {
+ Long commonEvents = (Long) component.getAttributes().get(CommonEventConstants.COMMON_EVENTS_MARKED);
+
+ if (commonEvents == null)
+ {
+ commonEvents = 0L;
+ }
+ return commonEvents;
+ }
+
+ /**
+ * Render an attribute taking into account the passed event and
+ * the component property. It will be rendered as "componentProperty"
+ * attribute.
+ *
+ * @param facesContext
+ * @param writer
+ * @param componentProperty
+ * @param component
+ * @param eventName
+ * @param clientBehaviors
+ * @return
+ * @throws IOException
+ * @since 4.0.1
+ */
+ /*
+ 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);
+ }
+
+ public static boolean renderBehaviorizedAttribute(
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String targetClientId, String eventName,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ return renderBehaviorizedAttribute(facesContext, writer,
+ componentProperty, component, targetClientId, 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
+ *
+ * @param facesContext
+ * @param writer
+ * @param component
+ * @param clientBehaviors
+ * @param eventName
+ * @param componentProperty
+ * @param htmlAttrName
+ * @return
+ * @throws IOException
+ * @since 4.0.1
+ */
+ /*
+ public static boolean renderBehaviorizedAttribute(
+ 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));
+ }*/
+
+ public static boolean renderBehaviorizedAttribute(
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String targetClientId, String eventName,
+ Map<String, List<ClientBehavior>> clientBehaviors,
+ String htmlAttrName) throws IOException
+ {
+ return renderBehaviorizedAttribute(facesContext, writer,
+ componentProperty, component, targetClientId, 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
+ {
+ return renderBehaviorizedAttribute(facesContext, writer,
+ componentProperty, component,
+ component.getClientId(facesContext), eventName,
+ eventParameters, clientBehaviors, htmlAttrName, attributeValue);
+ }
+
+ public static boolean renderBehaviorizedAttribute(
+ FacesContext facesContext, ResponseWriter writer,
+ String componentProperty, UIComponent component,
+ String targetClientId, 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 HtmlRendererUtils.renderHTMLStringAttribute(writer, componentProperty, htmlAttrName,
+ attributeValue);
+ }
+
+ if (cbl.size() > 1 || (cbl.size() == 1 && attributeValue != null))
+ {
+ return HtmlRendererUtils.renderHTMLStringAttribute(writer, componentProperty, htmlAttrName,
+ HtmlRendererUtils.buildBehaviorChain(facesContext,
+ component, targetClientId, eventName,
+ eventParameters, clientBehaviors, attributeValue,
+ HtmlRendererUtils.STR_EMPTY));
+ }
+ else
+ {
+ //Only 1 behavior and attrValue == null, so just render it directly
+ return HtmlRendererUtils.renderHTMLStringAttribute(
+ writer,
+ componentProperty,
+ htmlAttrName,
+ cbl.get(0).getScript(
+ ClientBehaviorContext.createClientBehaviorContext(
+ facesContext, component, eventName,
+ targetClientId, eventParameters)));
+ }
+ }
+
+ public static void renderBehaviorizedEventHandlers(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ renderBehaviorizedEventHandlers(facesContext, writer,
+ commonPropertiesMarked, commonEventsMarked, uiComponent,
+ uiComponent.getClientId(facesContext), clientBehaviors);
+ }
+
+ public static void renderBehaviorizedEventHandlers(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent, String targetClientId,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONCLICK_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.CLICK_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONCLICK_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.CLICK,
+ clientBehaviors, HTML.ONCLICK_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONDBLCLICK_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.DBLCLICK_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONDBLCLICK_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.DBLCLICK,
+ clientBehaviors, HTML.ONDBLCLICK_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEDOWN_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEDOWN_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer,
+ HTML.ONMOUSEDOWN_ATTR, uiComponent, targetClientId,
+ ClientBehaviorEvents.MOUSEDOWN, clientBehaviors,
+ HTML.ONMOUSEDOWN_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEUP_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEUP_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEUP_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.MOUSEUP,
+ clientBehaviors, HTML.ONMOUSEUP_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEOVER_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEOVER_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer,
+ HTML.ONMOUSEOVER_ATTR, uiComponent, targetClientId,
+ ClientBehaviorEvents.MOUSEOVER, clientBehaviors,
+ HTML.ONMOUSEOVER_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEMOVE_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEMOVE_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer,
+ HTML.ONMOUSEMOVE_ATTR, uiComponent, targetClientId,
+ ClientBehaviorEvents.MOUSEMOVE, clientBehaviors,
+ HTML.ONMOUSEMOVE_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEOUT_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEOUT_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEOUT_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.MOUSEOUT,
+ clientBehaviors, HTML.ONMOUSEOUT_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYPRESS_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.KEYPRESS_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYPRESS_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.KEYPRESS,
+ clientBehaviors, HTML.ONKEYPRESS_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYDOWN_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.KEYDOWN_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYDOWN_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.KEYDOWN,
+ clientBehaviors, HTML.ONKEYDOWN_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYUP_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.KEYUP_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYUP_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.KEYUP,
+ clientBehaviors, HTML.ONKEYUP_ATTR);
+ }
+ }
+
+ public static void renderBehaviorizedEventHandlersWithoutOnclick(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ renderBehaviorizedEventHandlersWithoutOnclick(facesContext, writer,
+ commonPropertiesMarked, commonEventsMarked, uiComponent,
+ uiComponent.getClientId(facesContext), clientBehaviors);
+ }
+
+ /**
+ * @param facesContext
+ * @param writer
+ * @param uiComponent
+ * @param clientBehaviors
+ * @throws IOException
+ * @since 4.0.0
+ */
+ public static void renderBehaviorizedEventHandlersWithoutOnclick(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent, String targetClientId,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONDBLCLICK_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.DBLCLICK_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONDBLCLICK_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.DBLCLICK,
+ clientBehaviors, HTML.ONDBLCLICK_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEDOWN_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEDOWN_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer,
+ HTML.ONMOUSEDOWN_ATTR, uiComponent, targetClientId,
+ ClientBehaviorEvents.MOUSEDOWN, clientBehaviors,
+ HTML.ONMOUSEDOWN_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEUP_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEUP_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEUP_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.MOUSEUP,
+ clientBehaviors, HTML.ONMOUSEUP_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEOVER_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEOVER_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer,
+ HTML.ONMOUSEOVER_ATTR, uiComponent, targetClientId,
+ ClientBehaviorEvents.MOUSEOVER, clientBehaviors,
+ HTML.ONMOUSEOVER_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEMOVE_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEMOVE_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer,
+ HTML.ONMOUSEMOVE_ATTR, uiComponent, targetClientId,
+ ClientBehaviorEvents.MOUSEMOVE, clientBehaviors,
+ HTML.ONMOUSEMOVE_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEOUT_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.MOUSEOUT_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONMOUSEOUT_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.MOUSEOUT,
+ clientBehaviors, HTML.ONMOUSEOUT_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYPRESS_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.KEYPRESS_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYPRESS_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.KEYPRESS,
+ clientBehaviors, HTML.ONKEYPRESS_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYDOWN_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.KEYDOWN_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYDOWN_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.KEYDOWN,
+ clientBehaviors, HTML.ONKEYDOWN_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYUP_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.KEYUP_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONKEYUP_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.KEYUP,
+ clientBehaviors, HTML.ONKEYUP_ATTR);
+ }
+ }
+
+ /**
+ * @param facesContext
+ * @param writer
+ * @param uiComponent
+ * @param clientBehaviors
+ * @throws IOException
+ * @since 4.0.0
+ */
+ public static void renderBehaviorizedFieldEventHandlers(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent, String targetClientId,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONFOCUS_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.FOCUS_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONFOCUS_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.FOCUS, clientBehaviors,
+ HTML.ONFOCUS_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONBLUR_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.BLUR_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.BLUR, clientBehaviors,
+ HTML.ONBLUR_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONCHANGE_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.CHANGE_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONCHANGE_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.CHANGE, clientBehaviors,
+ HTML.ONCHANGE_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONSELECT_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.SELECT_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONSELECT_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.SELECT, clientBehaviors,
+ HTML.ONSELECT_ATTR);
+ }
+ }
+
+ public static void renderBehaviorizedFieldEventHandlersWithoutOnfocus(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent, String targetClientId,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONBLUR_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.BLUR_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.BLUR, clientBehaviors,
+ HTML.ONBLUR_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONCHANGE_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.CHANGE_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONCHANGE_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.CHANGE, clientBehaviors,
+ HTML.ONCHANGE_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONSELECT_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.SELECT_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONSELECT_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.SELECT, clientBehaviors,
+ HTML.ONSELECT_ATTR);
+ }
+ }
+
+ public static void renderBehaviorizedFieldEventHandlersWithoutOnchange(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ renderBehaviorizedFieldEventHandlersWithoutOnchange(
+ facesContext, writer, commonPropertiesMarked, commonEventsMarked,
+ uiComponent, uiComponent.getClientId(facesContext), clientBehaviors);
+ }
+
+ public static void renderBehaviorizedFieldEventHandlersWithoutOnchange(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent, String targetClientId,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONFOCUS_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.FOCUS_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONFOCUS_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.FOCUS, clientBehaviors,
+ HTML.ONFOCUS_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONBLUR_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.BLUR_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.BLUR, clientBehaviors,
+ HTML.ONBLUR_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONSELECT_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.SELECT_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONSELECT_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.SELECT, clientBehaviors,
+ HTML.ONSELECT_ATTR);
+ }
+ }
+
+ public static void renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
+ facesContext, writer,
+ commonPropertiesMarked, commonEventsMarked,
+ uiComponent, uiComponent.getClientId(facesContext),
+ clientBehaviors);
+ }
+
+ public static void renderBehaviorizedFieldEventHandlersWithoutOnchangeAndOnselect(
+ FacesContext facesContext, ResponseWriter writer,
+ long commonPropertiesMarked, long commonEventsMarked,
+ UIComponent uiComponent, String targetClientId,
+ Map<String, List<ClientBehavior>> clientBehaviors)
+ throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONFOCUS_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.FOCUS_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONFOCUS_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.FOCUS, clientBehaviors,
+ HTML.ONFOCUS_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONBLUR_PROP) != 0 ||
+ (commonEventsMarked & CommonEventConstants.BLUR_EVENT) != 0)
+ {
+ renderBehaviorizedAttribute(facesContext, writer, HTML.ONBLUR_ATTR,
+ uiComponent, targetClientId, ClientBehaviorEvents.BLUR, clientBehaviors,
+ HTML.ONBLUR_ATTR);
+ }
+ }
+}
Propchange: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonEventUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonPropertyUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonPropertyUtils.java?rev=1239799&r1=1239798&r2=1239799&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonPropertyUtils.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/CommonPropertyUtils.java Thu Feb 2 20:00:42 2012
@@ -43,32 +43,23 @@ public final class CommonPropertyUtils
return component.getId() != null && !component.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX);
}
- public static final void renderHTMLStringAttribute(ResponseWriter writer,
- UIComponent component, String componentProperty, String htmlAttrName)
- throws IOException
- {
- String value = (String) component.getAttributes()
- .get(componentProperty);
- writer.writeAttribute(htmlAttrName, value, componentProperty);
- }
-
public static final void renderUniversalProperties(ResponseWriter writer,
long commonPropertiesMarked, UIComponent component)
throws IOException
{
if ((commonPropertiesMarked & CommonPropertyConstants.DIR_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.DIR_ATTR, HTML.DIR_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.LANG_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.LANG_ATTR, HTML.LANG_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.TITLE_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.TITLE_ATTR, HTML.TITLE_ATTR);
}
}
@@ -79,12 +70,12 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.DIR_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.DIR_ATTR, HTML.DIR_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.LANG_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.LANG_ATTR, HTML.LANG_ATTR);
}
}
@@ -95,12 +86,12 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.STYLE_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.STYLE_ATTR, HTML.STYLE_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.STYLECLASS_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.STYLE_CLASS_ATTR, HTML.CLASS_ATTR);
}
}
@@ -111,7 +102,7 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.ONCLICK_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONCLICK_ATTR, HTML.ONCLICK_ATTR);
}
renderEventPropertiesWithoutOnclick(writer, commonPropertiesMarked, component);
@@ -123,47 +114,47 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.ONDBLCLICK_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONDBLCLICK_ATTR, HTML.ONDBLCLICK_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEDOWN_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONMOUSEDOWN_ATTR, HTML.ONMOUSEDOWN_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEUP_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONMOUSEUP_ATTR, HTML.ONMOUSEUP_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEOVER_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONMOUSEOVER_ATTR, HTML.ONMOUSEOVER_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEMOVE_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONMOUSEMOVE_ATTR, HTML.ONMOUSEMOVE_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONMOUSEOUT_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONMOUSEOUT_ATTR, HTML.ONMOUSEOUT_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYPRESS_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONKEYPRESS_ATTR, HTML.ONKEYPRESS_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYDOWN_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONKEYDOWN_ATTR, HTML.ONKEYDOWN_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONKEYUP_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONKEYUP_ATTR, HTML.ONKEYUP_ATTR);
}
}
@@ -175,12 +166,12 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.ONCHANGE_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONCHANGE_ATTR, HTML.ONCHANGE_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONSELECT_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONSELECT_ATTR, HTML.ONSELECT_ATTR);
}
}
@@ -191,28 +182,73 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.ONFOCUS_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONFOCUS_ATTR, HTML.ONFOCUS_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ONBLUR_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ONBLUR_ATTR, HTML.ONBLUR_ATTR);
}
}
+ public static final void renderFieldEventPropertiesWithoutOnchangeAndOnselect(ResponseWriter writer,
+ long commonPropertiesMarked, UIComponent component) throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONFOCUS_PROP) != 0)
+ {
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
+ HTML.ONFOCUS_ATTR, HTML.ONFOCUS_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONBLUR_PROP) != 0)
+ {
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
+ HTML.ONBLUR_ATTR, HTML.ONBLUR_ATTR);
+ }
+ }
+
+ public static final void renderFieldEventPropertiesWithoutOnchange(ResponseWriter writer,
+ long commonPropertiesMarked, UIComponent component) throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONFOCUS_PROP) != 0)
+ {
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
+ HTML.ONFOCUS_ATTR, HTML.ONFOCUS_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONBLUR_PROP) != 0)
+ {
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
+ HTML.ONBLUR_ATTR, HTML.ONBLUR_ATTR);
+ }
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONSELECT_PROP) != 0)
+ {
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
+ HTML.ONSELECT_ATTR, HTML.ONSELECT_ATTR);
+ }
+ }
+
+ public static final void renderChangeEventProperty(ResponseWriter writer,
+ long commonPropertiesMarked, UIComponent component) throws IOException
+ {
+ if ((commonPropertiesMarked & CommonPropertyConstants.ONCHANGE_PROP) != 0)
+ {
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
+ HTML.ONCHANGE_ATTR, HTML.ONCHANGE_ATTR);
+ }
+ }
+
public static void renderAccesskeyTabindexProperties(ResponseWriter writer,
long commonPropertiesMarked, UIComponent component)
throws IOException
{
if ((commonPropertiesMarked & CommonPropertyConstants.ACCESSKEY_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ACCESSKEY_ATTR, HTML.ACCESSKEY_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.TABINDEX_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.TABINDEX_ATTR, HTML.TABINDEX_ATTR);
}
}
@@ -223,12 +259,12 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.ALIGN_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ALIGN_ATTR, HTML.ALIGN_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.ALT_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ALT_ATTR, HTML.ALT_ATTR);
}
}
@@ -244,7 +280,7 @@ public final class CommonPropertyUtils
}
if ((commonPropertiesMarked & CommonPropertyConstants.ALT_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ALT_ATTR, HTML.ALT_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.CHECKED_PROP) != 0)
@@ -276,42 +312,42 @@ public final class CommonPropertyUtils
renderAccesskeyTabindexProperties(writer, commonPropertiesMarked, component);
if ((commonPropertiesMarked & CommonPropertyConstants.CHARSET_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.CHARSET_ATTR, HTML.CHARSET_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.COORDS_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.COORDS_ATTR, HTML.COORDS_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.HREFLANG_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.HREFLANG_ATTR, HTML.HREFLANG_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.REL_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.REL_ATTR, HTML.REL_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.REV_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.REV_ATTR, HTML.REV_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.SHAPE_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.SHAPE_ATTR, HTML.SHAPE_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.TARGET_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.TARGET_ATTR, HTML.TARGET_ATTR);
}
if ((commonPropertiesMarked & CommonPropertyConstants.TYPE_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.TYPE_ATTR, HTML.TYPE_ATTR);
}
}
@@ -438,7 +474,7 @@ public final class CommonPropertyUtils
renderFocusBlurEventProperties(writer, commonPropertiesMarked, component);
if ((commonPropertiesMarked & CommonPropertyConstants.ACCESSKEY_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ACCESSKEY_ATTR, HTML.ACCESSKEY_ATTR);
}
}
@@ -458,9 +494,23 @@ public final class CommonPropertyUtils
{
if ((commonPropertiesMarked & CommonPropertyConstants.ACCESSKEY_PROP) != 0)
{
- renderHTMLStringAttribute(writer, component,
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, component,
HTML.ACCESSKEY_ATTR, HTML.ACCESSKEY_ATTR);
}
renderCommonPassthroughPropertiesWithoutEvents(writer, commonPropertiesMarked, component);
}
+
+ public static final void renderSelectPassthroughPropertiesWithoutDisabled(ResponseWriter writer,
+ long commonPropertiesMarked, UIComponent component)
+ throws IOException
+ {
+ renderCommonFieldPassthroughPropertiesWithoutDisabled(writer, commonPropertiesMarked, component);
+ }
+
+ public static final void renderSelectPassthroughPropertiesWithoutDisabledAndEvents(ResponseWriter writer,
+ long commonPropertiesMarked, UIComponent component)
+ throws IOException
+ {
+ renderCommonFieldPassthroughPropertiesWithoutDisabledAndEvents(writer, commonPropertiesMarked, component);
+ }
}
Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java?rev=1239799&r1=1239798&r2=1239799&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlBodyRendererBase.java Thu Feb 2 20:00:42 2012
@@ -80,7 +80,24 @@ public class HtmlBodyRendererBase extend
{
HtmlRendererUtils.writeIdIfNecessary(writer, component, facesContext);
}
- HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
+ if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext))
+ {
+ CommonPropertyUtils.renderEventProperties(writer,
+ CommonPropertyUtils.getCommonPropertiesMarked(component), component);
+ }
+ else
+ {
+ if (isCommonEventsOptimizationEnabled(facesContext))
+ {
+ CommonEventUtils.renderBehaviorizedEventHandlers(facesContext, writer,
+ CommonPropertyUtils.getCommonPropertiesMarked(component),
+ CommonEventUtils.getCommonEventsMarked(component), component, behaviors);
+ }
+ else
+ {
+ HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
+ }
+ }
HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONLOAD_ATTR, component,
ClientBehaviorEvents.LOAD, behaviors, HTML.ONLOAD_ATTR);
HtmlRendererUtils.renderBehaviorizedAttribute(facesContext, writer, HTML.ONUNLOAD_ATTR, component,
@@ -125,10 +142,18 @@ public class HtmlBodyRendererBase extend
ResponseWriter writer = facesContext.getResponseWriter();
UIViewRoot root = facesContext.getViewRoot();
- for (UIComponent child : root.getComponentResources(facesContext,
- HTML.BODY_TARGET))
+ // Perf: use indexes for iteration over children,
+ // componentResources are javax.faces.component._ComponentChildrenList._ComponentChildrenList(UIComponent)
+ List<UIComponent> componentResources = root.getComponentResources(facesContext,
+ HTML.BODY_TARGET);
+ int childrenCount = componentResources.size();
+ if (childrenCount > 0)
{
- child.encodeAll(facesContext);
+ for (int i = 0; i < childrenCount; i++)
+ {
+ UIComponent child = componentResources.get(i);
+ child.encodeAll(facesContext);
+ }
}
// render all unhandled FacesMessages when ProjectStage is Development
Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java?rev=1239799&r1=1239798&r2=1239799&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlButtonRendererBase.java Thu Feb 2 20:00:42 2012
@@ -229,7 +229,7 @@ public class HtmlButtonRendererBase
//fallback into the pre 2.0 code to keep backwards compatibility with libraries which rely on internals
if (!reset && !button)
{
- StringBuffer onClick = buildOnClick(uiComponent, facesContext, writer, validParams);
+ StringBuilder onClick = buildOnClick(uiComponent, facesContext, writer, validParams);
if (onClick.length() != 0)
{
writer.writeAttribute(HTML.ONCLICK_ATTR, onClick.toString(), null);
@@ -237,7 +237,7 @@ public class HtmlButtonRendererBase
}
else
{
- HtmlRendererUtils.renderHTMLAttribute(writer, uiComponent, HTML.ONCLICK_ATTR, HTML.ONCLICK_ATTR);
+ HtmlRendererUtils.renderHTMLStringAttribute(writer, uiComponent, HTML.ONCLICK_ATTR, HTML.ONCLICK_ATTR);
}
}
@@ -345,7 +345,7 @@ public class HtmlButtonRendererBase
userOnClick.append(';');
}
- StringBuffer rendererOnClick = new StringBuffer();
+ StringBuilder rendererOnClick = new StringBuilder();
if (nestedFormInfo != null)
{
@@ -392,7 +392,7 @@ public class HtmlButtonRendererBase
UIComponent nestingForm = formInfo.getForm();
String formName = formInfo.getFormName();
- StringBuffer onClick = new StringBuffer();
+ StringBuilder onClick = new StringBuilder();
if (RendererUtils.isAdfOrTrinidadForm(formInfo.getForm()))
{
@@ -404,7 +404,7 @@ public class HtmlButtonRendererBase
}
else
{
- StringBuffer params = addChildParameters(facesContext, component, nestingForm, validParams);
+ StringBuilder params = addChildParameters(facesContext, component, nestingForm, validParams);
String target = getTarget(component);
@@ -440,11 +440,11 @@ public class HtmlButtonRendererBase
return onClick.toString();
}
- private StringBuffer addChildParameters(FacesContext context, UIComponent component,
+ private StringBuilder addChildParameters(FacesContext context, UIComponent component,
UIComponent nestingForm, List<UIParameter> validParams)
{
//add child parameters
- StringBuffer params = new StringBuffer();
+ StringBuilder params = new StringBuilder();
params.append("[");
for (UIParameter param : validParams)
@@ -473,7 +473,7 @@ public class HtmlButtonRendererBase
if (value != null)
{
strParamValue = value.toString();
- StringBuffer buff = null;
+ StringBuilder buff = null;
for (int i = 0; i < strParamValue.length(); i++)
{
char c = strParamValue.charAt(i);
@@ -481,7 +481,7 @@ public class HtmlButtonRendererBase
{
if (buff == null)
{
- buff = new StringBuffer();
+ buff = new StringBuilder();
buff.append(strParamValue.substring(0,i));
}
buff.append('\\');
@@ -528,7 +528,7 @@ public class HtmlButtonRendererBase
return target;
}
- protected StringBuffer buildOnClick(UIComponent uiComponent, FacesContext facesContext,
+ protected StringBuilder buildOnClick(UIComponent uiComponent, FacesContext facesContext,
ResponseWriter writer, List<UIParameter> validParams)
throws IOException
{
@@ -559,7 +559,7 @@ public class HtmlButtonRendererBase
DummyFormUtils.setWriteDummyForm(facesContext, true);
}
*/
- StringBuffer onClick = new StringBuffer();
+ StringBuilder onClick = new StringBuilder();
String commandOnClick = (String) uiComponent.getAttributes().get(HTML.ONCLICK_ATTR);
if (commandOnClick != null)
@@ -579,7 +579,7 @@ public class HtmlButtonRendererBase
if (validParams != null && !validParams.isEmpty() )
{
- StringBuffer params = addChildParameters(
+ StringBuilder params = addChildParameters(
facesContext, uiComponent, nestedFormInfo.getForm(), validParams);
String target = getTarget(uiComponent);
Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java?rev=1239799&r1=1239798&r2=1239799&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java Thu Feb 2 20:00:42 2012
@@ -50,7 +50,8 @@ import org.apache.myfaces.shared.renderk
* @author Anton Koinov
* @version $Revision$ $Date$
*/
-public class HtmlCheckboxRendererBase extends HtmlRenderer {
+public class HtmlCheckboxRendererBase extends HtmlRenderer
+{
//private static final Log log = LogFactory
// .getLog(HtmlCheckboxRendererBase.class);
private static final Logger log = Logger.getLogger(HtmlCheckboxRendererBase.class.getName());
@@ -62,7 +63,8 @@ public class HtmlCheckboxRendererBase ex
private static final String EXTERNAL_TRUE_VALUE = "true";
public void encodeEnd(FacesContext facesContext, UIComponent uiComponent)
- throws IOException {
+ throws IOException
+ {
org.apache.myfaces.shared.renderkit.RendererUtils.checkParamValidity(facesContext, uiComponent, null);
Map<String, List<ClientBehavior>> behaviors = null;
@@ -75,29 +77,42 @@ public class HtmlCheckboxRendererBase ex
}
}
- if (uiComponent instanceof UISelectBoolean) {
+ if (uiComponent instanceof UISelectBoolean)
+ {
Boolean value = org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanValue( uiComponent );
boolean isChecked = value != null ? value.booleanValue() : false;
- renderCheckbox(facesContext, uiComponent, EXTERNAL_TRUE_VALUE, false,isChecked, true, null); //TODO: the selectBoolean is never disabled
- } else if (uiComponent instanceof UISelectMany) {
+ renderCheckbox(facesContext, uiComponent, EXTERNAL_TRUE_VALUE, false,isChecked, true, null);
+ //TODO: the selectBoolean is never disabled
+ }
+ else if (uiComponent instanceof UISelectMany)
+ {
renderCheckboxList(facesContext, (UISelectMany) uiComponent);
- } else {
+ }
+ else
+ {
throw new IllegalArgumentException("Unsupported component class "
+ uiComponent.getClass().getName());
}
}
public void renderCheckboxList(FacesContext facesContext,
- UISelectMany selectMany) throws IOException {
+ UISelectMany selectMany) throws IOException
+ {
String layout = getLayout(selectMany);
boolean pageDirectionLayout = false; //Default to lineDirection
- if (layout != null) {
- if (layout.equals(PAGE_DIRECTION)) {
+ if (layout != null)
+ {
+ if (layout.equals(PAGE_DIRECTION))
+ {
pageDirectionLayout = true;
- } else if (layout.equals(LINE_DIRECTION)) {
+ }
+ else if (layout.equals(LINE_DIRECTION))
+ {
pageDirectionLayout = false;
- } else {
+ }
+ else
+ {
log.severe("Wrong layout attribute for component "
+ selectMany.getClientId(facesContext) + ": " + layout);
}
@@ -125,21 +140,28 @@ public class HtmlCheckboxRendererBase ex
}
if (!pageDirectionLayout)
+ {
writer.startElement(HTML.TR_ELEM, selectMany);
+ }
Converter converter = getConverter(facesContext, selectMany);
- Set lookupSet = org.apache.myfaces.shared.renderkit.RendererUtils.getSubmittedValuesAsSet(facesContext, selectMany, converter, selectMany);
+ Set lookupSet = org.apache.myfaces.shared.renderkit.RendererUtils.getSubmittedValuesAsSet(
+ facesContext, selectMany, converter, selectMany);
boolean useSubmittedValues = lookupSet != null;
- if (!useSubmittedValues) {
- lookupSet = org.apache.myfaces.shared.renderkit.RendererUtils.getSelectedValuesAsSet(facesContext, selectMany, converter, selectMany);
+ if (!useSubmittedValues)
+ {
+ lookupSet = org.apache.myfaces.shared.renderkit.RendererUtils.getSelectedValuesAsSet(
+ facesContext, selectMany, converter, selectMany);
}
int itemNum = 0;
- for (Iterator it = org.apache.myfaces.shared.renderkit.RendererUtils.getSelectItemList(selectMany, facesContext)
- .iterator(); it.hasNext();) {
+ for (Iterator it = org.apache.myfaces.shared.renderkit.RendererUtils.getSelectItemList(
+ selectMany, facesContext)
+ .iterator(); it.hasNext();)
+ {
SelectItem selectItem = (SelectItem) it.next();
itemNum = renderGroupOrItemCheckbox(facesContext, selectMany,
@@ -148,12 +170,16 @@ public class HtmlCheckboxRendererBase ex
}
if (!pageDirectionLayout)
+ {
writer.endElement(HTML.TR_ELEM);
+ }
writer.endElement(HTML.TABLE_ELEM);
}
- protected String getLayout(UISelectMany selectMany) {
- if (selectMany instanceof HtmlSelectManyCheckbox) {
+ protected String getLayout(UISelectMany selectMany)
+ {
+ if (selectMany instanceof HtmlSelectManyCheckbox)
+ {
return ((HtmlSelectManyCheckbox) selectMany).getLayout();
}
@@ -176,7 +202,8 @@ public class HtmlCheckboxRendererBase ex
protected int renderGroupOrItemCheckbox(FacesContext facesContext,
UIComponent uiComponent, SelectItem selectItem,
boolean useSubmittedValues, Set lookupSet,
- Converter converter, boolean pageDirectionLayout, Integer itemNum) throws IOException
+ Converter converter, boolean pageDirectionLayout,
+ Integer itemNum) throws IOException
{
ResponseWriter writer = facesContext.getResponseWriter();
@@ -188,7 +215,9 @@ public class HtmlCheckboxRendererBase ex
if (isSelectItemGroup)
{
if (pageDirectionLayout)
+ {
writer.startElement(HTML.TR_ELEM, selectMany);
+ }
writer.startElement(HTML.TD_ELEM, selectMany);
writer.write(selectItem.getLabel());
@@ -205,7 +234,9 @@ public class HtmlCheckboxRendererBase ex
writer.writeAttribute(HTML.BORDER_ATTR, "0", null);
if(!pageDirectionLayout)
+ {
writer.startElement(HTML.TR_ELEM, selectMany);
+ }
SelectItemGroup group = (SelectItemGroup) selectItem;
SelectItem[] selectItems = group.getSelectItems();
@@ -217,18 +248,24 @@ public class HtmlCheckboxRendererBase ex
}
if(!pageDirectionLayout)
+ {
writer.endElement(HTML.TR_ELEM);
+ }
writer.endElement(HTML.TABLE_ELEM);
writer.endElement(HTML.TD_ELEM);
if (pageDirectionLayout)
+ {
writer.endElement(HTML.TR_ELEM);
+ }
}
else
{
- Object itemValue = selectItem.getValue(); // TODO : Check here for getSubmittedValue. Look at RendererUtils.getValue
- String itemStrValue = org.apache.myfaces.shared.renderkit.RendererUtils.getConvertedStringValue(facesContext, selectMany, converter, itemValue);
+ Object itemValue = selectItem.getValue(); // TODO : Check here for getSubmittedValue.
+ // Look at RendererUtils.getValue
+ String itemStrValue = org.apache.myfaces.shared.renderkit.RendererUtils.getConvertedStringValue(
+ facesContext, selectMany, converter, itemValue);
boolean checked = lookupSet.contains(itemStrValue);
@@ -245,7 +282,9 @@ public class HtmlCheckboxRendererBase ex
writer.write("\t\t");
if (pageDirectionLayout)
+ {
writer.startElement(HTML.TR_ELEM, selectMany);
+ }
writer.startElement(HTML.TD_ELEM, selectMany);
boolean disabled = selectItem.isDisabled();
@@ -260,7 +299,9 @@ public class HtmlCheckboxRendererBase ex
writer.endElement(HTML.TD_ELEM);
if (pageDirectionLayout)
+ {
writer.endElement(HTML.TR_ELEM);
+ }
// we rendered one checkbox --> increment itemNum
itemNum++;
@@ -272,7 +313,8 @@ public class HtmlCheckboxRendererBase ex
@Deprecated
protected void renderCheckbox(FacesContext facesContext,
UIComponent uiComponent, String value, String label,
- boolean disabled, boolean checked, boolean renderId) throws IOException {
+ boolean disabled, boolean checked, boolean renderId) throws IOException
+ {
renderCheckbox(facesContext, uiComponent, value, disabled, checked, renderId, 0);
}
@@ -281,10 +323,13 @@ public class HtmlCheckboxRendererBase ex
* @return the 'id' value of the rendered element
*/
protected String renderCheckbox(FacesContext facesContext,
- UIComponent uiComponent, String value, boolean disabled, boolean checked, boolean renderId, Integer itemNum) throws IOException {
+ UIComponent uiComponent, String value, boolean disabled, boolean checked,
+ boolean renderId, Integer itemNum) throws IOException
+ {
String clientId = uiComponent.getClientId(facesContext);
- String itemId = (itemNum == null)? null : clientId + UINamingContainer.getSeparatorChar(facesContext) + itemNum;
+ String itemId = (itemNum == null)? null : clientId +
+ UINamingContainer.getSeparatorChar(facesContext) + itemNum;
ResponseWriter writer = facesContext.getResponseWriter();
@@ -301,29 +346,63 @@ public class HtmlCheckboxRendererBase ex
writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_CHECKBOX, null);
writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
- if (checked) {
- writer.writeAttribute(HTML.CHECKED_ATTR, org.apache.myfaces.shared.renderkit.html.HTML.CHECKED_ATTR, null);
+ if (checked)
+ {
+ writer.writeAttribute(HTML.CHECKED_ATTR,
+ org.apache.myfaces.shared.renderkit.html.HTML.CHECKED_ATTR, null);
}
- if (disabled) {
+ if (disabled)
+ {
writer.writeAttribute(HTML.DISABLED_ATTR, HTML.DISABLED_ATTR, null);
}
- if ((value != null) && (value.length() > 0)) {
+ if ((value != null) && (value.length() > 0))
+ {
writer.writeAttribute(HTML.VALUE_ATTR, value, null);
}
Map<String, List<ClientBehavior>> behaviors = null;
if (uiComponent instanceof UISelectBoolean)
{
- if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(facesContext.getExternalContext()))
+ if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(
+ facesContext.getExternalContext()))
{
behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
- HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, uiComponent, behaviors);
- HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, uiComponent, behaviors);
- HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, uiComponent, behaviors);
- HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
+ if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext))
+ {
+ long commonPropertiesMarked = CommonPropertyUtils.getCommonPropertiesMarked(uiComponent);
+ CommonPropertyUtils.renderChangeEventProperty(writer,
+ commonPropertiesMarked, uiComponent);
+ CommonPropertyUtils.renderEventProperties(writer,
+ commonPropertiesMarked, uiComponent);
+ CommonPropertyUtils.renderFieldEventPropertiesWithoutOnchange(writer,
+ commonPropertiesMarked, uiComponent);
+ }
+ else
+ {
+ long commonPropertiesMarked = CommonPropertyUtils.getCommonPropertiesMarked(uiComponent);
+ HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(
+ facesContext, writer, uiComponent, behaviors);
+ if (isCommonEventsOptimizationEnabled(facesContext))
+ {
+ Long commonEventsMarked = CommonEventUtils.getCommonEventsMarked(uiComponent);
+ CommonEventUtils.renderBehaviorizedEventHandlers(facesContext, writer,
+ commonPropertiesMarked, commonEventsMarked, uiComponent, behaviors);
+ CommonEventUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+ facesContext, writer, commonPropertiesMarked, commonEventsMarked, uiComponent, behaviors);
+ }
+ else
+ {
+ HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext,
+ writer, uiComponent, behaviors);
+ HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+ facesContext, writer, uiComponent, behaviors);
+ }
+ }
+ HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent,
+ HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_EVENTS);
}
else
{
@@ -333,14 +412,45 @@ public class HtmlCheckboxRendererBase ex
}
else
{
- if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(facesContext.getExternalContext()))
+ if (uiComponent instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(
+ facesContext.getExternalContext()))
{
behaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
- HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, uiComponent, behaviors);
- HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, uiComponent, behaviors);
- HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, uiComponent, behaviors);
- HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE_AND_EVENTS);
+ if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext))
+ {
+ long commonPropertiesMarked = CommonPropertyUtils.getCommonPropertiesMarked(uiComponent);
+ CommonPropertyUtils.renderChangeEventProperty(writer,
+ commonPropertiesMarked, uiComponent);
+ CommonPropertyUtils.renderEventProperties(writer,
+ commonPropertiesMarked, uiComponent);
+ CommonPropertyUtils.renderFieldEventPropertiesWithoutOnchange(writer,
+ commonPropertiesMarked, uiComponent);
+ }
+ else
+ {
+ long commonPropertiesMarked = CommonPropertyUtils.getCommonPropertiesMarked(uiComponent);
+ HtmlRendererUtils.renderBehaviorizedOnchangeEventHandler(
+ facesContext, writer, uiComponent, behaviors);
+ if (isCommonEventsOptimizationEnabled(facesContext))
+ {
+ Long commonEventsMarked = CommonEventUtils.getCommonEventsMarked(uiComponent);
+ CommonEventUtils.renderBehaviorizedEventHandlers(facesContext, writer,
+ commonPropertiesMarked, commonEventsMarked, uiComponent, behaviors);
+ CommonEventUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+ facesContext, writer, commonPropertiesMarked, commonEventsMarked,
+ uiComponent, behaviors);
+ }
+ else
+ {
+ HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer,
+ uiComponent, behaviors);
+ HtmlRendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(
+ facesContext, writer, uiComponent, behaviors);
+ }
+ }
+ HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent,
+ HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE_AND_EVENTS);
}
else
{
@@ -348,7 +458,8 @@ public class HtmlCheckboxRendererBase ex
HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE);
}
}
- if (isDisabled(facesContext, uiComponent)) {
+ if (isDisabled(facesContext, uiComponent))
+ {
writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);
}
@@ -358,26 +469,38 @@ public class HtmlCheckboxRendererBase ex
}
protected boolean isDisabled(FacesContext facesContext,
- UIComponent component) {
+ UIComponent component)
+ {
//TODO: overwrite in extended HtmlCheckboxRenderer and check for
// enabledOnUserRole
- if (component instanceof HtmlSelectBooleanCheckbox) {
+ if (component instanceof HtmlSelectBooleanCheckbox)
+ {
return ((HtmlSelectBooleanCheckbox) component).isDisabled();
- } else if (component instanceof HtmlSelectManyCheckbox) {
+ }
+ else if (component instanceof HtmlSelectManyCheckbox)
+ {
return ((HtmlSelectManyCheckbox) component).isDisabled();
- } else {
+ }
+ else
+ {
return org.apache.myfaces.shared.renderkit.RendererUtils.getBooleanAttribute(component,
HTML.DISABLED_ATTR, false);
}
}
- public void decode(FacesContext facesContext, UIComponent component) {
+ public void decode(FacesContext facesContext, UIComponent component)
+ {
org.apache.myfaces.shared.renderkit.RendererUtils.checkParamValidity(facesContext, component, null);
- if (component instanceof UISelectBoolean) {
+ if (component instanceof UISelectBoolean)
+ {
HtmlRendererUtils.decodeUISelectBoolean(facesContext, component);
- } else if (component instanceof UISelectMany) {
+ }
+ else if (component instanceof UISelectMany)
+ {
HtmlRendererUtils.decodeUISelectMany(facesContext, component);
- } else {
+ }
+ else
+ {
throw new IllegalArgumentException("Unsupported component class "
+ component.getClass().getName());
}
@@ -390,14 +513,20 @@ public class HtmlCheckboxRendererBase ex
public Object getConvertedValue(FacesContext facesContext,
UIComponent component, Object submittedValue)
- throws ConverterException {
+ throws ConverterException
+ {
org.apache.myfaces.shared.renderkit.RendererUtils.checkParamValidity(facesContext, component, null);
- if (component instanceof UISelectBoolean) {
+ if (component instanceof UISelectBoolean)
+ {
return submittedValue;
- } else if (component instanceof UISelectMany) {
+ }
+ else if (component instanceof UISelectMany)
+ {
return org.apache.myfaces.shared.renderkit.RendererUtils.getConvertedUISelectManyValue(facesContext,
(UISelectMany) component, submittedValue);
- } else {
+ }
+ else
+ {
throw new IllegalArgumentException("Unsupported component class "
+ component.getClass().getName());
}
Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java?rev=1239799&r1=1239798&r2=1239799&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlFormRendererBase.java Thu Feb 2 20:00:42 2012
@@ -84,7 +84,8 @@ public class HtmlFormRendererBase
writer.writeAttribute(HTML.ID_ATTR, clientId, null);
writer.writeAttribute(HTML.NAME_ATTR, clientId, null);
writer.writeAttribute(HTML.METHOD_ATTR, method, null);
- if (acceptCharset != null) {
+ if (acceptCharset != null)
+ {
writer.writeAttribute(HTML.ACCEPT_CHARSET_ATTR, acceptCharset, null);
}
String encodedActionURL = facesContext.getExternalContext().encodeActionURL(actionURL);
@@ -93,10 +94,28 @@ public class HtmlFormRendererBase
encodedActionURL,
null);
- if (htmlForm instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(facesContext.getExternalContext()))
+ if (htmlForm instanceof ClientBehaviorHolder && JavascriptUtils.isJavascriptAllowed(
+ facesContext.getExternalContext()))
{
behaviors = ((ClientBehaviorHolder) htmlForm).getClientBehaviors();
- HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, htmlForm, behaviors);
+ if (behaviors.isEmpty() && isCommonPropertiesOptimizationEnabled(facesContext))
+ {
+ CommonPropertyUtils.renderEventProperties(writer,
+ CommonPropertyUtils.getCommonPropertiesMarked(htmlForm), htmlForm);
+ }
+ else
+ {
+ if (isCommonEventsOptimizationEnabled(facesContext))
+ {
+ CommonEventUtils.renderBehaviorizedEventHandlers(facesContext, writer,
+ CommonPropertyUtils.getCommonPropertiesMarked(htmlForm),
+ CommonEventUtils.getCommonEventsMarked(htmlForm), htmlForm, behaviors);
+ }
+ else
+ {
+ HtmlRendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, htmlForm, behaviors);
+ }
+ }
if (isCommonPropertiesOptimizationEnabled(facesContext))
{
CommonPropertyUtils.renderCommonPassthroughPropertiesWithoutEvents(writer,
@@ -105,7 +124,8 @@ public class HtmlFormRendererBase
}
else
{
- HtmlRendererUtils.renderHTMLAttributes(writer, htmlForm, HTML.FORM_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS);
+ HtmlRendererUtils.renderHTMLAttributes(writer, htmlForm,
+ HTML.FORM_PASSTHROUGH_ATTRIBUTES_WITHOUT_EVENTS);
}
}
else
@@ -139,15 +159,18 @@ public class HtmlFormRendererBase
afterFormElementsStart(facesContext, component);
}
- protected String getActionUrl(FacesContext facesContext, UIForm form) {
+ protected String getActionUrl(FacesContext facesContext, UIForm form)
+ {
return getActionUrl(facesContext);
}
- protected String getMethod(FacesContext facesContext, UIForm form) {
+ protected String getMethod(FacesContext facesContext, UIForm form)
+ {
return "post";
}
- protected String getAcceptCharset(FacesContext facesContext, UIForm form ) {
+ protected String getAcceptCharset(FacesContext facesContext, UIForm form )
+ {
return (String)form.getAttributes().get( JSFAttr.ACCEPTCHARSET_ATTR );
}
@@ -198,25 +221,30 @@ public class HtmlFormRendererBase
afterFormElementsEnd(facesContext, component);
- for (UIComponent child : facesContext.getViewRoot().getComponentResources(facesContext,
- FORM_TARGET))
+ List<UIComponent> componentResources = facesContext.getViewRoot().getComponentResources(facesContext,
+ FORM_TARGET);
+
+ for (int i = 0, size = componentResources.size(); i < size; i++)
{
+ UIComponent child = componentResources.get(i);
child.encodeAll (facesContext);
}
writer.endElement(HTML.FORM_ELEM);
}
- private static String getHiddenCommandInputsSetName(FacesContext facesContext, UIComponent form) {
- StringBuffer buf = new StringBuffer();
+ private static String getHiddenCommandInputsSetName(FacesContext facesContext, UIComponent form)
+ {
+ StringBuilder buf = new StringBuilder(HIDDEN_COMMAND_INPUTS_SET_ATTR.length()+20);
buf.append(HIDDEN_COMMAND_INPUTS_SET_ATTR);
buf.append("_");
buf.append(form.getClientId(facesContext));
return buf.toString();
}
- private static String getScrollHiddenInputName(FacesContext facesContext, UIComponent form) {
- StringBuffer buf = new StringBuffer();
+ private static String getScrollHiddenInputName(FacesContext facesContext, UIComponent form)
+ {
+ StringBuilder buf = new StringBuilder(SCROLL_HIDDEN_INPUT.length()+20);
buf.append(SCROLL_HIDDEN_INPUT);
buf.append("_");
buf.append(form.getClientId(facesContext));
@@ -255,27 +283,35 @@ public class HtmlFormRendererBase
public static void addHiddenCommandParameter(FacesContext facesContext, UIComponent form, String paramName)
{
- Set set = (Set) facesContext.getExternalContext().getRequestMap().get(getHiddenCommandInputsSetName(facesContext, form));
+ Set set = (Set) facesContext.getExternalContext().getRequestMap().get(
+ getHiddenCommandInputsSetName(facesContext, form));
if (set == null)
{
set = new HashSet();
- facesContext.getExternalContext().getRequestMap().put(getHiddenCommandInputsSetName(facesContext, form), set);
+ facesContext.getExternalContext().getRequestMap().put(
+ getHiddenCommandInputsSetName(facesContext, form), set);
}
set.add(paramName);
}
- public static void renderScrollHiddenInputIfNecessary(UIComponent form, FacesContext facesContext, ResponseWriter writer)
- throws IOException {
- if (form == null) {
+ public static void renderScrollHiddenInputIfNecessary(
+ UIComponent form, FacesContext facesContext, ResponseWriter writer)
+ throws IOException
+ {
+ if (form == null)
+ {
return;
}
- if (facesContext.getExternalContext().getRequestMap().get(getScrollHiddenInputName(facesContext, form)) == null)
+ if (facesContext.getExternalContext().getRequestMap().get(
+ getScrollHiddenInputName(facesContext, form)) == null)
{
- if (MyfacesConfig.getCurrentInstance(facesContext.getExternalContext()).isAutoScroll()) {
+ if (MyfacesConfig.getCurrentInstance(facesContext.getExternalContext()).isAutoScroll())
+ {
HtmlRendererUtils.renderAutoScrollHiddenInput(facesContext, writer);
}
- facesContext.getExternalContext().getRequestMap().put(getScrollHiddenInputName(facesContext, form), Boolean.TRUE);
+ facesContext.getExternalContext().getRequestMap().put(getScrollHiddenInputName(
+ facesContext, form), Boolean.TRUE);
}
}
@@ -294,7 +330,9 @@ public class HtmlFormRendererBase
*/
protected void beforeFormElementsStart(FacesContext facesContext, UIComponent component)
throws IOException
- {}
+ {
+
+ }
/**
* Called after the state and any elements are added to the form tag in the
@@ -302,7 +340,9 @@ public class HtmlFormRendererBase
*/
protected void afterFormElementsStart(FacesContext facesContext, UIComponent component)
throws IOException
- {}
+ {
+
+ }
/**
* Called before the state and any elements are added to the form tag in the
@@ -310,7 +350,9 @@ public class HtmlFormRendererBase
*/
protected void beforeFormElementsEnd(FacesContext facesContext, UIComponent component)
throws IOException
- {}
+ {
+
+ }
/**
* Called after the state and any elements are added to the form tag in the
@@ -318,5 +360,7 @@ public class HtmlFormRendererBase
*/
protected void afterFormElementsEnd(FacesContext facesContext, UIComponent component)
throws IOException
- {}
+ {
+
+ }
}