You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by al...@apache.org on 2011/05/16 00:14:21 UTC

svn commit: r1103558 [1/3] - in /myfaces/html5/trunk: ./ myfaces-html5-core/ myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/ myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/util/ myfaces-html5-core/src/mai...

Author: aliok
Date: Sun May 15 22:14:19 2011
New Revision: 1103558

URL: http://svn.apache.org/viewvc?rev=1103558&view=rev
Log:
MFHTML5-1 - Get rid of myfaces-shared-html5 dependency

Added:
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/RendererUtils.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/ResourceUtils.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/SelectItemsIterator.java
Removed:
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlSecretRendererDelegate.java
Modified:
    myfaces/html5/trunk/myfaces-html5-core/pom.xml
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputText.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/util/ComponentUtils.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourceHandler.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourcesHandler.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationPulseRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationScaleRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationShakeRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationsRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/BaseAnimationRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/BaseEffectRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectOutputRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectTransformRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectsRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/Html5BaseInputTextRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputColorRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputDateTimeRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputEmailRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSliderRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSpinnerRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputTextRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlDataListSuggestionRendererHelper.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlInputTextRendererDelegate.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextAreaRendererDelegate.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextInputSuggestionRendererHelper.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5DateTimeConverter.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5EmailConverter.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/media/AbstractMediaRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/media/AudioRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/media/VideoRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/output/MeterRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/output/ProgressRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/output/SlideRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/output/SlideViewRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/panel/DivRenderer.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/ClientBehaviorEvents.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/HTML5.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/Html5RendererUtils.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/JsfProperties.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/PassThroughAttributeGroups.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/util/PassThroughAttributes.java
    myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/validator/DateTimeRangeValidator.java
    myfaces/html5/trunk/pom.xml

Modified: myfaces/html5/trunk/myfaces-html5-core/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/pom.xml?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/pom.xml (original)
+++ myfaces/html5/trunk/myfaces-html5-core/pom.xml Sun May 15 22:14:19 2011
@@ -33,9 +33,14 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.myfaces.shared</groupId>
-            <artifactId>myfaces-shared-html5</artifactId>
-            <version>${myfaces-shared-html5-version}</version>
+            <groupId>org.apache.myfaces.commons</groupId>
+            <artifactId>myfaces-commons-utils20</artifactId>
+            <version>${myfaces-commons20-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.myfaces.commons</groupId>
+            <artifactId>myfaces-components20</artifactId>
+            <version>${myfaces-commons20-version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.myfaces.buildtools</groupId>
@@ -378,6 +383,7 @@
     </profiles>
 
     <properties>
+        <myfaces-commons20-version>1.0.1</myfaces-commons20-version>
         <myfaces-builder-plugin-version>1.0.8</myfaces-builder-plugin-version>
         <myfaces-builder-annotations-version>1.0.5</myfaces-builder-annotations-version>
     </properties>

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputText.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputText.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputText.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/input/AbstractHtmlInputText.java Sun May 15 22:14:19 2011
@@ -47,7 +47,7 @@ public abstract class AbstractHtmlInputT
     /**
      * HTML type of the input.
      * <br/>
-     * Possible values are "text"(default), "search", "url", "tel", "textarea" and "password". 
+     * Possible values are "text"(default), "search", "url", "tel" and "textarea".
      * If this is set to "textarea", pattern is ignored.
      * @see AbstractHtmlInputText#getSuggestions()
      * @see AbstractHtmlInputText#getList()

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/util/ComponentUtils.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/util/ComponentUtils.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/util/ComponentUtils.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/component/util/ComponentUtils.java Sun May 15 22:14:19 2011
@@ -21,6 +21,7 @@ package org.apache.myfaces.html5.compone
 
 import javax.faces.component.NamingContainer;
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIViewRoot;
 
 public class ComponentUtils {
 
@@ -52,4 +53,51 @@ public class ComponentUtils {
         return null;
     }
 
+    //copied from org.apache.myfaces.commons.exporter.util.ComponentUtils
+    public static String getPathToComponent(UIComponent component) {
+        StringBuffer buf = new StringBuffer();
+
+        if (component == null)
+        {
+            buf.append("{Component-Path : ");
+            buf.append("[null]}");
+            return buf.toString();
+        }
+
+        getPathToComponent(component, buf);
+
+        buf.insert(0, "{Component-Path : ");
+        buf.append("}");
+
+        return buf.toString();
+    }
+
+    //copied from org.apache.myfaces.commons.exporter.util.ComponentUtils
+    private static void getPathToComponent(UIComponent component,
+            StringBuffer buf) {
+
+        if (component == null)
+            return;
+
+        StringBuffer intBuf = new StringBuffer();
+
+        intBuf.append("[Class: ");
+        intBuf.append(component.getClass().getName());
+        if (component instanceof UIViewRoot)
+        {
+            intBuf.append(",ViewId: ");
+            intBuf.append(((UIViewRoot) component).getViewId());
+        }
+        else
+        {
+            intBuf.append(",Id: ");
+            intBuf.append(component.getId());
+        }
+        intBuf.append("]");
+
+        buf.insert(0, intBuf.toString());
+
+        getPathToComponent(component.getParent(), buf);
+    }
+
 }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DragSourceBehaviorHandler.java Sun May 15 22:14:19 2011
@@ -38,9 +38,9 @@ import org.apache.myfaces.buildtools.mav
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
 import org.apache.myfaces.html5.behavior.DragSourceBehavior;
 import org.apache.myfaces.html5.component.api.Draggable;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.event.DropEvent;
 import org.apache.myfaces.html5.renderkit.util.ClientBehaviorEvents;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
 
 /**
  * Tag handler for {@link DragSourceBehavior}. Sets the "draggable" attribute of the parent and attaches the behavior to
@@ -102,7 +102,7 @@ public class DragSourceBehaviorHandler e
         if (!ComponentHandler.isNew(parent))
         {
             if (log.isLoggable(Level.FINE))
-                log.fine("Component " + RendererUtils.getPathToComponent(parent)
+                log.fine("Component " + ComponentUtils.getPathToComponent(parent)
                         + " is not new, thus return without any operation.");
 
             return;
@@ -133,7 +133,7 @@ public class DragSourceBehaviorHandler e
             else
             {
                 if (log.isLoggable(Level.WARNING))
-                    log.warning("Parent " + RendererUtils.getPathToComponent(parent)
+                    log.warning("Parent " + ComponentUtils.getPathToComponent(parent)
                             + " does not implement Draggable interface, thus unable to set the draggable attribute. "
                             + "Renderer of the parent must handle the decision of being draggable manually.");
             }
@@ -202,7 +202,7 @@ public class DragSourceBehaviorHandler e
         {
             throw new TagException(getTag(),
                     "DragSourceBehavior must be attached to a ClientBehaviorHolder parent. Component "
-                            + RendererUtils.getPathToComponent(parent) + "is not a ClientBehaviorHolder.");
+                            + ComponentUtils.getPathToComponent(parent) + "is not a ClientBehaviorHolder.");
         }
 
         ClientBehaviorHolder holder = (ClientBehaviorHolder) parent;
@@ -224,7 +224,7 @@ public class DragSourceBehaviorHandler e
             message.append("ClientBehaviorHolders that support the '");
             message.append(eventName);
             message.append("' event.  The parent ClientBehaviorHolder "
-                    + RendererUtils.getPathToComponent((UIComponent) holder) + " only ");
+                    + ComponentUtils.getPathToComponent((UIComponent) holder) + " only ");
             message.append("supports the following events: ");
 
             for (String supportedEventName : eventNames)

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/DropTargetBehaviorHandler.java Sun May 15 22:14:19 2011
@@ -38,11 +38,11 @@ import javax.faces.view.facelets.TagExce
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletAttribute;
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
 import org.apache.myfaces.html5.behavior.DropTargetBehavior;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.event.DropEvent;
 import org.apache.myfaces.html5.event.DropListener;
 import org.apache.myfaces.html5.renderkit.behavior.DropTargetBehaviorRenderer;
 import org.apache.myfaces.html5.renderkit.util.ClientBehaviorEvents;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
 
 /* 
  * Facelets tag handler for DropTargetBehavior.
@@ -164,7 +164,7 @@ public class DropTargetBehaviorHandler e
         if (!ComponentHandler.isNew(parent))
         {
             if (log.isLoggable(Level.FINE))
-                log.fine("Component" + RendererUtils.getPathToComponent(parent)
+                log.fine("Component" + ComponentUtils.getPathToComponent(parent)
                         + " is not new, thus return without any operation.");
             return;
         }
@@ -273,7 +273,7 @@ public class DropTargetBehaviorHandler e
         {
             throw new TagException(getTag(),
                     "DropTargetBehavior must be attached to a ClientBehaviorHolder parent. Component "
-                            + RendererUtils.getPathToComponent(parent) + "is not a ClientBehaviorHolder");
+                            + ComponentUtils.getPathToComponent(parent) + "is not a ClientBehaviorHolder");
         }
 
         ClientBehaviorHolder holder = (ClientBehaviorHolder) parent;
@@ -297,7 +297,7 @@ public class DropTargetBehaviorHandler e
             message.append("ClientBehaviorHolders that support the '");
             message.append(eventName);
             message.append("' event.  The parent ClientBehaviorHolder "
-                    + RendererUtils.getPathToComponent((UIComponent) holder) + " only ");
+                    + ComponentUtils.getPathToComponent((UIComponent) holder) + " only ");
             message.append("supports the following events: ");
 
             for (String supportedEventName : eventNames)

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourceHandler.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourceHandler.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourceHandler.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourceHandler.java Sun May 15 22:14:19 2011
@@ -30,9 +30,9 @@ import javax.faces.view.facelets.TagHand
 
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletAttribute;
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.holder.MediaSourceHolder;
 import org.apache.myfaces.html5.model.MediaInfo;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
 
 /**
  * Provides media sources for media components. This should be nested inside of an instance of {@link MediaSourceHolder}
@@ -100,7 +100,7 @@ public class MediaSourceHandler extends 
         if (!(parent instanceof MediaSourceHolder))
         {
             if (log.isLoggable(Level.WARNING))
-                log.warning("parent component " + RendererUtils.getPathToComponent(parent) + " is not a MediaSourceHolder. handler will not apply anything.");
+                log.warning("parent component " + ComponentUtils.getPathToComponent(parent) + " is not a MediaSourceHolder. handler will not apply anything.");
             return;
         }
         else

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourcesHandler.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourcesHandler.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourcesHandler.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/handler/MediaSourcesHandler.java Sun May 15 22:14:19 2011
@@ -32,9 +32,9 @@ import javax.faces.view.facelets.TagHand
 
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletAttribute;
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.holder.MediaSourceHolder;
 import org.apache.myfaces.html5.model.MediaInfo;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
 
 /**
  * Provides media sources for media components. This should be nested inside of an instance of {@link MediaSourceHolder}
@@ -95,7 +95,7 @@ public class MediaSourcesHandler extends
         if (!(parent instanceof MediaSourceHolder))
         {
             if (log.isLoggable(Level.WARNING))
-                log.warning("parent component " + RendererUtils.getPathToComponent(parent) + " is not a MediaSourceHolder. handler will not apply anything.");
+                log.warning("parent component " + ComponentUtils.getPathToComponent(parent) + " is not a MediaSourceHolder. handler will not apply anything.");
             return;
         }
 

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationPulseRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationPulseRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationPulseRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationPulseRenderer.java Sun May 15 22:14:19 2011
@@ -22,7 +22,7 @@ package org.apache.myfaces.html5.renderk
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.animation.AbstractAnimationPulse;
 import org.apache.myfaces.html5.component.animation.AbstractBaseAnimation;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 import javax.faces.context.FacesContext;
 import java.text.NumberFormat;

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationRenderer.java Sun May 15 22:14:19 2011
@@ -25,15 +25,14 @@ import org.apache.myfaces.html5.componen
 import org.apache.myfaces.html5.renderkit.util.CSS;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.Html5RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HTML;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlRenderer;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 import org.apache.myfaces.view.facelets.PostBuildComponentTreeOnRestoreViewEvent;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.event.*;
+import javax.faces.render.Renderer;
 import java.io.IOException;
 
 @ListenersFor({
@@ -41,7 +40,7 @@ import java.io.IOException;
         @ListenerFor(systemEventClass = PostBuildComponentTreeOnRestoreViewEvent.class)
 })
 @JSFRenderer(renderKitId = "HTML_BASIC", family = "org.apache.myfaces.Animation", type = "org.apache.myfaces.html5.Animation")
-public class AnimationRenderer extends HtmlRenderer implements ComponentSystemEventListener {
+public class AnimationRenderer extends Renderer implements ComponentSystemEventListener {
 
     @Override
     public boolean getRendersChildren() {
@@ -58,7 +57,7 @@ public class AnimationRenderer extends H
 
         ResponseWriter writer = facesContext.getResponseWriter();
 
-        writer.startElement(HTML.STYLE_ELEM, component);
+        writer.startElement(HTML5.STYLE_ELEM, component);
 
         RendererUtils.checkParamValidity(facesContext, uiComponent, AbstractAnimation.class);
 
@@ -78,7 +77,7 @@ public class AnimationRenderer extends H
 
         ResponseWriter writer = facesContext.getResponseWriter();
 
-        writer.endElement(HTML.STYLE_ELEM);
+        writer.endElement(HTML5.STYLE_ELEM);
     }
 
     protected String getAnimationDefinition(FacesContext facesContext, AbstractAnimation component){

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationScaleRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationScaleRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationScaleRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationScaleRenderer.java Sun May 15 22:14:19 2011
@@ -22,7 +22,7 @@ package org.apache.myfaces.html5.renderk
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.animation.AbstractAnimationScale;
 import org.apache.myfaces.html5.component.animation.AbstractBaseAnimation;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 import javax.faces.context.FacesContext;
 import java.text.NumberFormat;

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationShakeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationShakeRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationShakeRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationShakeRenderer.java Sun May 15 22:14:19 2011
@@ -22,7 +22,7 @@ package org.apache.myfaces.html5.renderk
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.animation.AbstractAnimationShake;
 import org.apache.myfaces.html5.component.animation.AbstractBaseAnimation;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 import javax.faces.context.FacesContext;
 import java.text.NumberFormat;

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationsRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationsRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationsRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/AnimationsRenderer.java Sun May 15 22:14:19 2011
@@ -25,15 +25,14 @@ import org.apache.myfaces.html5.componen
 import org.apache.myfaces.html5.renderkit.util.CSS;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.Html5RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HTML;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlRenderer;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 import org.apache.myfaces.view.facelets.PostBuildComponentTreeOnRestoreViewEvent;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.event.*;
+import javax.faces.render.Renderer;
 import java.io.IOException;
 
 @ListenersFor({
@@ -41,7 +40,7 @@ import java.io.IOException;
         @ListenerFor(systemEventClass = PostBuildComponentTreeOnRestoreViewEvent.class)
 })
 @JSFRenderer(renderKitId = "HTML_BASIC", family = "org.apache.myfaces.Animations", type = "org.apache.myfaces.html5.Animations")
-public class AnimationsRenderer extends HtmlRenderer implements ComponentSystemEventListener {
+public class AnimationsRenderer extends Renderer implements ComponentSystemEventListener {
 
     @Override
     public boolean getRendersChildren() {
@@ -58,7 +57,7 @@ public class AnimationsRenderer extends 
 
         ResponseWriter writer = facesContext.getResponseWriter();
 
-        writer.startElement(HTML.STYLE_ELEM, component);
+        writer.startElement(HTML5.STYLE_ELEM, component);
     }
 
     @Override
@@ -92,7 +91,7 @@ public class AnimationsRenderer extends 
 
         ResponseWriter writer = facesContext.getResponseWriter();
 
-        writer.endElement(HTML.STYLE_ELEM);
+        writer.endElement(HTML5.STYLE_ELEM);
     }
 
     protected String getAnimationDefinition(FacesContext facesContext, AbstractAnimations component){

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/BaseAnimationRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/BaseAnimationRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/BaseAnimationRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/animation/BaseAnimationRenderer.java Sun May 15 22:14:19 2011
@@ -20,15 +20,15 @@
 package org.apache.myfaces.html5.renderkit.animation;
 
 import org.apache.myfaces.html5.component.animation.AbstractBaseAnimation;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlRenderer;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
+import javax.faces.render.Renderer;
 import java.io.IOException;
 
-public abstract class BaseAnimationRenderer extends HtmlRenderer {
+public abstract class BaseAnimationRenderer extends Renderer {
 
     @Override
     public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException {

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/BaseEffectRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/BaseEffectRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/BaseEffectRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/BaseEffectRenderer.java Sun May 15 22:14:19 2011
@@ -20,15 +20,15 @@
 package org.apache.myfaces.html5.renderkit.effect;
 
 import org.apache.myfaces.html5.component.effect.AbstractBaseEffect;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlRenderer;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
+import javax.faces.render.Renderer;
 import java.io.IOException;
 
-public abstract class BaseEffectRenderer extends HtmlRenderer {
+public abstract class BaseEffectRenderer extends Renderer {
 
     @Override
     public void encodeBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException {

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectOutputRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectOutputRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectOutputRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectOutputRenderer.java Sun May 15 22:14:19 2011
@@ -26,15 +26,14 @@ import org.apache.myfaces.html5.componen
 import org.apache.myfaces.html5.renderkit.util.CSS;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.Html5RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HTML;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlRenderer;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 import org.apache.myfaces.view.facelets.PostBuildComponentTreeOnRestoreViewEvent;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.event.*;
+import javax.faces.render.Renderer;
 import java.io.IOException;
 
 @ListenersFor({
@@ -42,7 +41,7 @@ import java.io.IOException;
         @ListenerFor(systemEventClass = PostBuildComponentTreeOnRestoreViewEvent.class)
 })
 @JSFRenderer(renderKitId = "HTML_BASIC", family = "org.apache.myfaces.EffectOutput", type = "org.apache.myfaces.html5.EffectOutput")
-public class EffectOutputRenderer extends HtmlRenderer implements ComponentSystemEventListener {
+public class EffectOutputRenderer extends Renderer implements ComponentSystemEventListener {
 
     @Override
     public boolean getRendersChildren() {
@@ -59,7 +58,7 @@ public class EffectOutputRenderer extend
 
         ResponseWriter writer = facesContext.getResponseWriter();
 
-        writer.startElement(HTML.STYLE_ELEM, component);
+        writer.startElement(HTML5.STYLE_ELEM, component);
     }
 
     @Override
@@ -90,7 +89,7 @@ public class EffectOutputRenderer extend
 
         ResponseWriter writer = facesContext.getResponseWriter();
 
-        writer.endElement(HTML.STYLE_ELEM);
+        writer.endElement(HTML5.STYLE_ELEM);
     }
 
     public void processEvent(ComponentSystemEvent event) {

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectRenderer.java Sun May 15 22:14:19 2011
@@ -22,7 +22,7 @@ package org.apache.myfaces.html5.renderk
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.effect.AbstractBaseEffect;
 import org.apache.myfaces.html5.component.effect.AbstractEffect;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 import javax.faces.context.FacesContext;
 

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectTransformRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectTransformRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectTransformRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectTransformRenderer.java Sun May 15 22:14:19 2011
@@ -24,7 +24,7 @@ import org.apache.myfaces.buildtools.mav
 import org.apache.myfaces.html5.component.effect.AbstractBaseEffect;
 import org.apache.myfaces.html5.component.effect.AbstractEffectTransform;
 import org.apache.myfaces.html5.renderkit.util.CSS;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 import javax.faces.context.FacesContext;
 import java.text.NumberFormat;

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectsRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectsRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectsRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/effect/EffectsRenderer.java Sun May 15 22:14:19 2011
@@ -23,15 +23,11 @@ import org.apache.commons.lang.StringUti
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.effect.AbstractEffects;
 import org.apache.myfaces.html5.renderkit.util.CSS;
-import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.Html5RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HTML;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlRenderer;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 import org.apache.myfaces.view.facelets.PostBuildComponentTreeOnRestoreViewEvent;
 
 import javax.faces.component.UIComponent;
-import javax.faces.component.behavior.ClientBehaviorHolder;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.event.*;

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/Html5BaseInputTextRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/Html5BaseInputTextRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/Html5BaseInputTextRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/Html5BaseInputTextRenderer.java Sun May 15 22:14:19 2011
@@ -18,25 +18,21 @@
  */
 package org.apache.myfaces.html5.renderkit.input;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import org.apache.myfaces.html5.component.input.Html5BaseInputText;
+import org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper;
+import org.apache.myfaces.html5.renderkit.util.*;
 
 import javax.faces.component.UIComponent;
 import javax.faces.component.behavior.ClientBehavior;
 import javax.faces.component.behavior.ClientBehaviorHolder;
 import javax.faces.context.FacesContext;
-
-import org.apache.myfaces.html5.component.input.Html5BaseInputText;
-import org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper;
-import org.apache.myfaces.html5.renderkit.util.Html5RendererUtils;
-import org.apache.myfaces.html5.renderkit.util.JsfProperties;
-import org.apache.myfaces.html5.renderkit.util.PassThroughClientBehaviorEvents;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlTextRendererBase;
-import org.apache.myfaces.shared_html5.renderkit.html.util.ResourceUtils;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.Renderer;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * An extensible base of the Html5 input renderers.
@@ -44,7 +40,7 @@ import org.apache.myfaces.shared_html5.r
  * @author Ali Ok
  * 
  */
-public abstract class Html5BaseInputTextRenderer extends HtmlTextRendererBase
+public abstract class Html5BaseInputTextRenderer extends Renderer
 {
 
     private static final Logger log = Logger.getLogger(Html5BaseInputTextRenderer.class.getName());
@@ -57,13 +53,9 @@ public abstract class Html5BaseInputText
         Html5BaseInputText component = (Html5BaseInputText) uiComponent;
 
         // first, check whether we have behaviors, and render jsf.js if necessary
-        Map<String, List<ClientBehavior>> behaviors = null;
-        behaviors = ((ClientBehaviorHolder) component).getClientBehaviors();
+        Map<String, List<ClientBehavior>> behaviors = component.getClientBehaviors();
         if (!behaviors.isEmpty())
         {
-            if (log.isLoggable(Level.FINE))
-                log.fine("component " + RendererUtils.getPathToComponent(uiComponent) + " has behaviors, rendering jsf.js");
-
             ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, facesContext.getResponseWriter());
         }
 
@@ -99,19 +91,47 @@ public abstract class Html5BaseInputText
                 log.fine("will render generated datalist");
             suggestionRendererHelper.renderDataList(facesContext, component);
         }
+
+    }
+
+    protected void renderInput(FacesContext facesContext, UIComponent component)
+        throws IOException
+    {
+        //allow subclasses to render custom attributes by separating rendering begin and end
+        renderInputBegin(facesContext, component);
+        renderInputEnd(facesContext, component);
     }
 
-    @Override
     protected void renderInputBegin(FacesContext facesContext, UIComponent uiComponent) throws IOException
     {
         RendererUtils.checkParamValidity(facesContext, uiComponent, getComponentClass());
 
-        // let parent render standard attributes
-        super.renderInputBegin(facesContext, uiComponent);
+        ResponseWriter writer = facesContext.getResponseWriter();
+
+        Html5BaseInputText component = (Html5BaseInputText) uiComponent;
+
+        String clientId = component.getClientId(facesContext);
+        String value = RendererUtils.getStringValue(facesContext, component);
+
+        writer.startElement(HTML5.INPUT_ELEM, component);
+        writer.writeAttribute(HTML5.ID_ATTR, clientId, null);
+        writer.writeAttribute(HTML5.NAME_ATTR, clientId, null);
+
+        //allow extending classes to modify html input element's type
+        String inputHtmlType = getInputHtmlType(component);
+        writer.writeAttribute(HTML5.TYPE_ATTR, inputHtmlType, null);
+
+        if (value != null)
+        {
+            writer.writeAttribute(HTML5.VALUE_ATTR, value, JsfProperties.VALUE_PROP);
+        }
+
+        Map<String, List<ClientBehavior>> behaviors = component.getClientBehaviors();
+
+        Html5RendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, component, behaviors);
+        Html5RendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
+        Html5RendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, component, behaviors);
 
-        if (log.isLoggable(Level.FINE))
-            log.fine("parent rendered standart stuff. rendering additional pass thru attrs");
-        
         renderPassThruAttrsAndEvents(facesContext, uiComponent);
     }
 
@@ -120,20 +140,26 @@ public abstract class Html5BaseInputText
             throws IOException
     {
         Map<String, List<ClientBehavior>> clientBehaviors = ((ClientBehaviorHolder)uiComponent).getClientBehaviors();
-        
+
+        Html5RendererUtils.renderPassThroughAttributes(facesContext.getResponseWriter(), uiComponent, PassThroughAttributes.BASE_INPUT);
         Html5RendererUtils.renderPassThroughClientBehaviorEventHandlers(facesContext, uiComponent, PassThroughClientBehaviorEvents.BASE_INPUT, clientBehaviors);
-        
+
         Html5RendererUtils.renderPassThroughAttributes(facesContext.getResponseWriter(), uiComponent, getExtraPassThroughAttributes());
     }
 
-    @Override
     protected void renderInputEnd(FacesContext facesContext, UIComponent component) throws IOException
     {
-        // do nothing special. override for improving readability.
-        super.renderInputEnd(facesContext, component);
+        ResponseWriter writer = facesContext.getResponseWriter();
+
+        writer.endElement(HTML5.INPUT_ELEM);
     }
 
     /**
+     * Returns the HTML type attribute of HTML input element, which is being rendered.
+     */
+    protected abstract String getInputHtmlType(Html5BaseInputText component);
+
+    /**
      * Returns pass through attributes that are not present in {@link javax.faces.component.html.HtmlInputText} Child
      * component classes can override this method to modify pass through attributes, which are rendered at
      * {@link Html5BaseInputTextRenderer#renderInputBegin(FacesContext, UIComponent)}

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputColorRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputColorRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputColorRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputColorRenderer.java Sun May 15 22:14:19 2011
@@ -31,11 +31,12 @@ import javax.faces.convert.ConverterExce
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.input.Html5BaseInputText;
 import org.apache.myfaces.html5.component.input.HtmlInputColor;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.renderkit.input.delegate.HtmlTextInputSuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.PassThroughAttributes;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 /**
  * Renderer for < hx:inputColor > component.
@@ -64,7 +65,7 @@ public class HtmlInputColorRenderer exte
         if (submittedValue != null && !(submittedValue instanceof String))
         {
             throw new IllegalArgumentException("Submitted value of type String for component : "
-                    + RendererUtils.getPathToComponent(uiComponent) + "expected");
+                    + ComponentUtils.getPathToComponent(uiComponent) + "expected");
         }
 
         RendererUtils.checkParamValidity(facesContext, uiComponent, HtmlInputColor.class);
@@ -93,7 +94,7 @@ public class HtmlInputColorRenderer exte
     }
 
     @Override
-    protected String getInputHtmlType(UIComponent component)
+    protected String getInputHtmlType(Html5BaseInputText component)
     {
         return HTML5.INPUT_TYPE_COLOR;
     }
@@ -152,7 +153,7 @@ class ColorConverter implements Converte
                     // new Object[] { _MessageUtils.getLabel(facesContext,
                     // uiComponent) }));
                     // XXX: externalize and localize the message later!
-                    throw new ConverterException(new FacesMessage("Provided value for component " + RendererUtils.getPathToComponent(uiComponent) + " is not a valid simple color: "
+                    throw new ConverterException(new FacesMessage("Provided value for component " + ComponentUtils.getPathToComponent(uiComponent) + " is not a valid simple color: "
                             + value));
                 }
             }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputDateTimeRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputDateTimeRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputDateTimeRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputDateTimeRenderer.java Sun May 15 22:14:19 2011
@@ -38,6 +38,7 @@ import javax.faces.validator.Validator;
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.input.Html5BaseInputText;
 import org.apache.myfaces.html5.component.input.HtmlInputDateTime;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.renderkit.input.delegate.HtmlTextInputSuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.input.util.Html5DateTimeConverter;
@@ -45,8 +46,8 @@ import org.apache.myfaces.html5.renderki
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.JsfProperties;
 import org.apache.myfaces.html5.renderkit.util.PassThroughAttributes;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 import org.apache.myfaces.html5.validator.DateTimeRangeValidator;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
 
 /**
  * Renderer of hx:inputDateTime. <br/>
@@ -83,7 +84,7 @@ public class HtmlInputDateTimeRenderer e
         if (submittedValue != null && !(submittedValue instanceof String))
         {
             throw new IllegalArgumentException("Submitted value of type String for component : "
-                    + RendererUtils.getPathToComponent(uiComponent) + " expected");
+                    + ComponentUtils.getPathToComponent(uiComponent) + " expected");
         }
 
         RendererUtils.checkParamValidity(facesContext, uiComponent, HtmlInputDateTime.class);
@@ -129,7 +130,7 @@ public class HtmlInputDateTimeRenderer e
         else if (step < 0)
         {
             throw new FacesException("'step' cannot be negative for component "
-                    + RendererUtils.getPathToComponent(uiComponent) + ". Provided " + step);
+                    + ComponentUtils.getPathToComponent(uiComponent) + ". Provided " + step);
         }
         else
         {
@@ -163,7 +164,7 @@ public class HtmlInputDateTimeRenderer e
                 }
                 catch (ParseException e)
                 {
-                    throw new FacesException("Unable to resolve minimum value of component " + RendererUtils.getPathToComponent(component) + ".", e);
+                    throw new FacesException("Unable to resolve minimum value of component " + ComponentUtils.getPathToComponent(component) + ".", e);
                 }
                 if (minimum != null)
                     return Html5DateTimeFormatUtils.formatDateTime(minimum, component.getType());
@@ -192,7 +193,7 @@ public class HtmlInputDateTimeRenderer e
                 catch (ParseException e)
                 {
                     throw new FacesException("Unable to resolve maximum value of component "
-                            + RendererUtils.getPathToComponent(component) + ".", e);
+                            + ComponentUtils.getPathToComponent(component) + ".", e);
                 }
                 if (maximum != null)
                     return Html5DateTimeFormatUtils.formatDateTime(maximum, component.getType());
@@ -243,13 +244,13 @@ public class HtmlInputDateTimeRenderer e
         {
             if (!(Arrays.asList(ALLOWED_INPUT_TYPES).contains(type)))
                 throw new FacesException("\"type\" attribute of component "
-                        + RendererUtils.getPathToComponent(uiComponent) + " can be one of "
+                        + ComponentUtils.getPathToComponent(uiComponent) + " can be one of "
                         + Arrays.toString(ALLOWED_INPUT_TYPES) + " . Provided: \"" + type + "\"");
         }
     }
 
     @Override
-    protected String getInputHtmlType(UIComponent component)
+    protected String getInputHtmlType(Html5BaseInputText component)
     {
         // obj type check for component is done in #encodeEnd, no need to check it again
         return ((HtmlInputDateTime) component).getType();

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputEmailRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputEmailRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputEmailRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputEmailRenderer.java Sun May 15 22:14:19 2011
@@ -29,13 +29,14 @@ import javax.faces.convert.ConverterExce
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.HtmlInputEmail;
 import org.apache.myfaces.html5.component.input.Html5BaseInputText;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.renderkit.input.delegate.HtmlTextInputSuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.input.util.Html5EmailConverter;
 import org.apache.myfaces.html5.renderkit.input.util.InputPatternRendererUtil;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.PassThroughAttributes;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 /**
  * Renderer for < hx:inputEmail > component.
@@ -57,7 +58,7 @@ public class HtmlInputEmailRenderer exte
         if (submittedValue != null && !(submittedValue instanceof String))
         {
             throw new IllegalArgumentException("Submitted value of type String for component : "
-                    + RendererUtils.getPathToComponent(uiComponent) + " expected");
+                    + ComponentUtils.getPathToComponent(uiComponent) + " expected");
         }
 
         RendererUtils.checkParamValidity(facesContext, uiComponent, HtmlInputEmail.class);
@@ -100,7 +101,7 @@ public class HtmlInputEmailRenderer exte
     }
 
     @Override
-    protected String getInputHtmlType(UIComponent component)
+    protected String getInputHtmlType(Html5BaseInputText component)
     {
         return HTML5.INPUT_TYPE_EMAIL;
     }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSliderRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSliderRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSliderRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSliderRenderer.java Sun May 15 22:14:19 2011
@@ -32,11 +32,11 @@ import javax.faces.validator.Validator;
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.input.Html5BaseInputText;
 import org.apache.myfaces.html5.component.input.HtmlInputNumberSlider;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.renderkit.input.delegate.HtmlTextInputSuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.PassThroughAttributes;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
 
 /**
  * Renderer for hx:inputNumberSlider.
@@ -89,7 +89,7 @@ public class HtmlInputNumberSliderRender
 
         if (max <= min)
         {
-            throw new FacesException("Maximum must be larger than minimum for component " + RendererUtils.getPathToComponent(uiComponent) + ". "
+            throw new FacesException("Maximum must be larger than minimum for component " + ComponentUtils.getPathToComponent(uiComponent) + ". "
                     + "These values are calculated from the first attached DoubleRangeValidator or LongRangeValidator");
         }
 
@@ -116,14 +116,14 @@ public class HtmlInputNumberSliderRender
         if (step != Double.MIN_VALUE && segmentCount != Integer.MIN_VALUE)
         { // if both are set
             throw new FacesException(
-                    "Only one of 'step' or 'segmentCount' properties must be defined for component " + RendererUtils.getPathToComponent(component) + ". Undefined one will be calculated.");
+                    "Only one of 'step' or 'segmentCount' properties must be defined for component " + ComponentUtils.getPathToComponent(component) + ". Undefined one will be calculated.");
         }
 
         if (step != Double.MIN_VALUE)
         { // if only step is set
             if (step <= 0)
             { // if it is set but it is negative
-                throw new FacesException("'step' property of component " + RendererUtils.getPathToComponent(component) + " must be positive");
+                throw new FacesException("'step' property of component " + ComponentUtils.getPathToComponent(component) + " must be positive");
             }
             calculatedStep = step;
         }
@@ -131,7 +131,7 @@ public class HtmlInputNumberSliderRender
         { // if only segmentCount is set
             if (segmentCount <= 0)
             { // if it is set but it is negative
-                throw new FacesException("'segmentCount' property of component " + RendererUtils.getPathToComponent(
+                throw new FacesException("'segmentCount' property of component " + ComponentUtils.getPathToComponent(
                         component) + " must be positive");
             }
             calculatedStep = (max - min) / segmentCount;
@@ -167,7 +167,7 @@ public class HtmlInputNumberSliderRender
     }
 
     @Override
-    protected String getInputHtmlType(UIComponent component)
+    protected String getInputHtmlType(Html5BaseInputText component)
     {
         return HTML5.INPUT_TYPE_RANGE;
     }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSpinnerRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSpinnerRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSpinnerRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputNumberSpinnerRenderer.java Sun May 15 22:14:19 2011
@@ -26,6 +26,7 @@ import javax.faces.component.html.HtmlIn
 import javax.faces.context.FacesContext;
 
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
+import org.apache.myfaces.html5.component.input.Html5BaseInputText;
 import org.apache.myfaces.html5.component.input.HtmlInputNumberSpinner;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.PassThroughAttributes;
@@ -60,7 +61,7 @@ public class HtmlInputNumberSpinnerRende
     }
 
     @Override
-    protected String getInputHtmlType(UIComponent component)
+    protected String getInputHtmlType(Html5BaseInputText component)
     {
         return HTML5.INPUT_TYPE_NUMBER;
     }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputTextRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputTextRenderer.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputTextRenderer.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/HtmlInputTextRenderer.java Sun May 15 22:14:19 2011
@@ -31,11 +31,10 @@ import javax.faces.render.Renderer;
 
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFRenderer;
 import org.apache.myfaces.html5.component.input.HtmlInputText;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.renderkit.input.delegate.HtmlInputTextRendererDelegate;
-import org.apache.myfaces.html5.renderkit.input.delegate.HtmlSecretRendererDelegate;
 import org.apache.myfaces.html5.renderkit.input.delegate.HtmlTextAreaRendererDelegate;
 import org.apache.myfaces.html5.renderkit.util.JsfProperties;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
 
 /**
  * Renderer for < hx:inputText > component.
@@ -58,16 +57,14 @@ public class HtmlInputTextRenderer exten
     private static final Logger log = Logger.getLogger(HtmlInputTextRendererDelegate.class.getName());
 
     protected Renderer _textTypeRendererDelegate = null;
-    protected Renderer _passwordTypeRendererDelegate = null;
     protected Renderer _textareaTypeRendererDelegate = null;
 
     public HtmlInputTextRenderer()
     {
         super();
 
-        // let's create all three delegates since renderers are created once in application lifecycle
+        // let's create the delegates since renderers are created once in application lifecycle
         _textTypeRendererDelegate = new HtmlInputTextRendererDelegate();
-        _passwordTypeRendererDelegate = new HtmlSecretRendererDelegate();
         _textareaTypeRendererDelegate = new HtmlTextAreaRendererDelegate();
     }
 
@@ -108,17 +105,13 @@ public class HtmlInputTextRenderer exten
         {
             return _textTypeRendererDelegate;
         }
-        else if (type.equals(JsfProperties.INPUTTEXT_TYPE_PASSWORD))
-        {
-            return _passwordTypeRendererDelegate;
-        }
         else if (type.equals(JsfProperties.INPUTTEXT_TYPE_TEXTAREA))
         {
             return _textareaTypeRendererDelegate;
         }
         else
         {
-            throw new IllegalStateException("Input type of component " + RendererUtils.getPathToComponent(component) + " is not one of the expected types: \""
+            throw new IllegalStateException("Input type of component " + ComponentUtils.getPathToComponent(component) + " is not one of the expected types: \""
                     + JsfProperties.INPUTTEXT_TYPE_TEXT + "\", \"" + JsfProperties.INPUTTEXT_TYPE_SEARCH + "\", \""
                     + JsfProperties.INPUTTEXT_TYPE_URL + "\" ,\"" + JsfProperties.INPUTTEXT_TYPE_TEL + "\". Provided: \""
                     + type + "\".");
@@ -191,7 +184,7 @@ public class HtmlInputTextRenderer exten
         else
         {
             if (!(Arrays.asList(ALLOWED_INPUT_TYPES).contains(type)))
-                throw new FacesException("\"type\" attribute of component " + RendererUtils.getPathToComponent(uiComponent) + " can be one of " + Arrays.toString(ALLOWED_INPUT_TYPES)
+                throw new FacesException("\"type\" attribute of component " + ComponentUtils.getPathToComponent(uiComponent) + " can be one of " + Arrays.toString(ALLOWED_INPUT_TYPES)
                         + ". You provided: \"" + type + "\"");
         }
     }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlDataListSuggestionRendererHelper.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlDataListSuggestionRendererHelper.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlDataListSuggestionRendererHelper.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlDataListSuggestionRendererHelper.java Sun May 15 22:14:19 2011
@@ -28,9 +28,10 @@ import javax.faces.convert.Converter;
 import javax.faces.model.SelectItem;
 
 import org.apache.myfaces.html5.component.input.HtmlDataList;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.JsfProperties;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 /**
  * Implementation of {@link SuggestionRendererHelper} for usage in {@link org.apache.myfaces.html5.component.input.HtmlDataList}s.
@@ -54,7 +55,11 @@ public class HtmlDataListSuggestionRende
     @Override
     public void renderDataList(FacesContext facesContext, UIComponent component) throws IOException
     {
-        super.renderDataList(facesContext, component);
+        renderDataListBegin(facesContext, component);
+
+        renderDataListOptions(facesContext, component, null);
+
+        renderDataListEnd(facesContext, component);
     }
 
     protected void renderDataListBegin(FacesContext facesContext, UIComponent component) throws IOException
@@ -89,7 +94,7 @@ public class HtmlDataListSuggestionRende
         else
         {
             throw new IllegalArgumentException(
-                    "Component " + RendererUtils.getPathToComponent(uiComponent) + " is not instance of HtmlDataList. HtmlDataListSuggestionRendererHelper is unable to render options of suggestions attr.");
+                    "Component " + ComponentUtils.getPathToComponent(uiComponent) + " is not instance of HtmlDataList. HtmlDataListSuggestionRendererHelper is unable to render options of suggestions attr.");
         }
     }
 

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlInputTextRendererDelegate.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlInputTextRendererDelegate.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlInputTextRendererDelegate.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlInputTextRendererDelegate.java Sun May 15 22:14:19 2011
@@ -34,7 +34,7 @@ import org.apache.myfaces.html5.renderki
 import org.apache.myfaces.html5.renderkit.input.util.InputPatternRendererUtil;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
 import org.apache.myfaces.html5.renderkit.util.PassThroughAttributes;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
 
 /**
  * Delegate renderer that is used when the type of < hx:input > is one of "text", "search", "url" or "tel".
@@ -111,7 +111,7 @@ public class HtmlInputTextRendererDelega
     }
 
     @Override
-    protected String getInputHtmlType(UIComponent component)
+    protected String getInputHtmlType(Html5BaseInputText component)
     {
         // obj type check for component is done in #encodeEnd, no need to check it again
         return ((HtmlInputText) component).getType();

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextAreaRendererDelegate.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextAreaRendererDelegate.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextAreaRendererDelegate.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextAreaRendererDelegate.java Sun May 15 22:14:19 2011
@@ -18,24 +18,21 @@
  */
 package org.apache.myfaces.html5.renderkit.input.delegate;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
+import org.apache.commons.collections.MapUtils;
+import org.apache.myfaces.html5.component.input.Html5BaseInputText;
+import org.apache.myfaces.html5.renderkit.util.*;
 
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIInput;
+import javax.faces.component.UIOutput;
 import javax.faces.component.behavior.ClientBehavior;
-import javax.faces.component.behavior.ClientBehaviorHolder;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
-
-import org.apache.myfaces.html5.component.input.HtmlInputText;
-import org.apache.myfaces.html5.renderkit.util.Html5RendererUtils;
-import org.apache.myfaces.html5.renderkit.util.PassThroughAttributes;
-import org.apache.myfaces.html5.renderkit.util.PassThroughClientBehaviorEvents;
-import org.apache.myfaces.shared_html5.renderkit.html.HTML;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlRendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.util.JavascriptUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HtmlTextareaRendererBase;
+import javax.faces.convert.ConverterException;
+import javax.faces.render.Renderer;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Delegate renderer that is used when the type of < hx:input > is one of "textarea".
@@ -43,31 +40,88 @@ import org.apache.myfaces.shared_html5.r
  * @author Ali Ok
  * 
  */
-public class HtmlTextAreaRendererDelegate extends HtmlTextareaRendererBase
+public class HtmlTextAreaRendererDelegate extends Renderer
 {
-    @Override
-    protected void renderTextAreaBegin(FacesContext facesContext,
-            UIComponent uiComponent) throws IOException
+
+     public void encodeEnd(FacesContext facesContext, UIComponent uiComponent)
+            throws IOException
     {
-        renderPassThruAttrsAndEvents(facesContext, uiComponent);
+        RendererUtils.checkParamValidity(facesContext, uiComponent, UIInput.class);
+
+        Html5BaseInputText component = (Html5BaseInputText) uiComponent;
+
+        Map<String, List<ClientBehavior>> behaviors = component.getClientBehaviors();
+        if (MapUtils.isNotEmpty(behaviors))
+        {
+            ResourceUtils.renderDefaultJsfJsInlineIfNecessary(facesContext, facesContext.getResponseWriter());
+        }
+
+        encodeTextArea(facesContext, component);
+
     }
 
-    // to make this extendible
-    protected void renderPassThruAttrsAndEvents(FacesContext facesContext, UIComponent uiComponent) throws IOException
+     protected void encodeTextArea(FacesContext facesContext, Html5BaseInputText component) throws IOException {
+       //allow subclasses to render custom attributes by separating rendering begin and end
+        renderTextAreaBegin(facesContext, component);
+        renderTextAreaValue(facesContext, component);
+        renderTextAreaEnd(facesContext, component);
+
+    }
+
+    //Subclasses can set the value of an attribute before, or can render a custom attribute after calling this method
+    protected void renderTextAreaBegin(FacesContext facesContext, Html5BaseInputText component) throws IOException
     {
-        Map<String, List<ClientBehavior>> clientBehaviors = ((ClientBehaviorHolder) uiComponent).getClientBehaviors();
+        ResponseWriter writer = facesContext.getResponseWriter();
+        writer.startElement(HTML5.TEXTAREA_ELEM, component);
+
+        writer.writeAttribute(HTML5.ID_ATTR, component.getClientId(facesContext), null);
+        writer.writeAttribute(HTML5.NAME_ATTR, component.getClientId(facesContext), null);
+
+        Map<String, List<ClientBehavior>> behaviors  = component.getClientBehaviors();
+        Html5RendererUtils.renderBehaviorizedOnchangeEventHandler(facesContext, writer, component, behaviors);
+        Html5RendererUtils.renderBehaviorizedEventHandlers(facesContext, writer, component, behaviors);
+        Html5RendererUtils.renderBehaviorizedFieldEventHandlersWithoutOnchange(facesContext, writer, component, behaviors);
+
+        Html5RendererUtils.renderPassThroughClientBehaviorEventHandlers(facesContext, component,
+                PassThroughClientBehaviorEvents.BASE_INPUT, behaviors);
 
-        Html5RendererUtils.renderPassThroughClientBehaviorEventHandlers(facesContext, uiComponent,
-                PassThroughClientBehaviorEvents.BASE_INPUT, clientBehaviors);
+        Html5RendererUtils.renderPassThroughAttributes(facesContext.getResponseWriter(), component,
+                PassThroughAttributes.BASE_INPUT);
 
-        Html5RendererUtils.renderPassThroughAttributes(facesContext.getResponseWriter(), uiComponent,
+        Html5RendererUtils.renderPassThroughAttributes(facesContext.getResponseWriter(), component,
                 PassThroughAttributes.INPUT_TEXTAREA);
     }
 
-    @Override
-    protected boolean isDisabled(FacesContext facesContext, UIComponent uiComponent)
+    //Subclasses can override the writing of the "text" value of the textarea
+    protected void renderTextAreaValue(FacesContext facesContext, UIComponent uiComponent) throws IOException
+    {
+        ResponseWriter writer = facesContext.getResponseWriter();
+        String strValue = RendererUtils.getStringValue(facesContext, uiComponent);
+        writer.writeText(strValue, JsfProperties.VALUE_PROP);
+    }
+
+    protected void renderTextAreaEnd(FacesContext facesContext,
+            Html5BaseInputText component) throws IOException
+    {
+        facesContext.getResponseWriter().endElement(HTML5.TEXTAREA_ELEM);
+    }
+
+    public void decode(FacesContext facesContext, UIComponent component)
+    {
+        RendererUtils.checkParamValidity(facesContext, component, Html5BaseInputText.class);
+        Html5RendererUtils.decodeUIInput(facesContext, component);
+        if (!((Html5BaseInputText)component).isDisabled())
+        {
+            Html5RendererUtils.decodeClientBehaviors(facesContext, component);
+        }
+    }
+
+    public Object getConvertedValue(FacesContext facesContext, UIComponent uiComponent, Object submittedValue) throws ConverterException
     {
-        return ((HtmlInputText) uiComponent).isDisabled();
+        RendererUtils.checkParamValidity(facesContext, uiComponent, UIOutput.class);
+        return RendererUtils.getConvertedUIOutputValue(facesContext,
+                                                       (UIOutput)uiComponent,
+                                                       submittedValue);
     }
 
 }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextInputSuggestionRendererHelper.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextInputSuggestionRendererHelper.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextInputSuggestionRendererHelper.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/delegate/HtmlTextInputSuggestionRendererHelper.java Sun May 15 22:14:19 2011
@@ -36,12 +36,11 @@ import javax.faces.model.SelectItem;
 
 import org.apache.myfaces.html5.component.input.Html5BaseInputText;
 import org.apache.myfaces.html5.component.input.HtmlInputText;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 import org.apache.myfaces.html5.renderkit.util.HTML5;
-import org.apache.myfaces.html5.renderkit.util.Html5RendererUtils;
 import org.apache.myfaces.html5.renderkit.util.JsfProperties;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
-import org.apache.myfaces.shared_html5.renderkit.html.HTML;
-import org.apache.myfaces.shared_html5.util.SelectItemsIterator;
+import org.apache.myfaces.html5.renderkit.util.RendererUtils;
+import org.apache.myfaces.html5.renderkit.util.SelectItemsIterator;
 
 /**
  * Implementation of {@link SuggestionRendererHelper} for usage in {@link HtmlInputText}s.
@@ -77,13 +76,13 @@ public class HtmlTextInputSuggestionRend
             {
                 // WIKI: put a wiki page about this error
                 throw new FacesException(
-                        "Either \"list\" attribute or \"suggestions\" attribute and children with type SelectItem mechanism can be used for suggestions. Component " + RendererUtils.getPathToComponent(uiComponent) + "has both!");
+                        "Either \"list\" attribute or \"suggestions\" attribute and children with type SelectItem mechanism can be used for suggestions. Component " + ComponentUtils.getPathToComponent(uiComponent) + "has both!");
             }
         }
         else
         {
             throw new IllegalArgumentException(
-                    "Component " + RendererUtils.getPathToComponent(uiComponent) + " is not instance of Html5BaseInputText. HtmlTextInputSuggestionRendererHelper is unable to check suggestions.");
+                    "Component " + ComponentUtils.getPathToComponent(uiComponent) + " is not instance of Html5BaseInputText. HtmlTextInputSuggestionRendererHelper is unable to check suggestions.");
         }
 
     }
@@ -119,23 +118,21 @@ public class HtmlTextInputSuggestionRend
         else
         {
             throw new IllegalArgumentException(
-                    "Component " + RendererUtils.getPathToComponent(uiComponent) + " is not instance of Html5BaseInputText. HtmlTextInputSuggestionRendererHelper is unable to determine whether datalist will be generated or not.");
+                    "Component " + ComponentUtils.getPathToComponent(uiComponent) + " is not instance of Html5BaseInputText. HtmlTextInputSuggestionRendererHelper is unable to determine whether datalist will be generated or not.");
         }
     }
 
     /*
      * (non-Javadoc)
      * 
-     * @see
-     * org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper#renderDataList(javax.faces.context
-     * .FacesContext, org.apache.myfaces.html5.component.input.Html5BaseInputText)
+     * @see org.apache.myfaces.html5.renderkit.input.delegate.SuggestionRendererHelper#renderDataList(javax.faces.context.FacesContext, org.apache.myfaces.html5.component.input.Html5BaseInputText)
      */
     public void renderDataList(FacesContext facesContext, UIComponent component) throws IOException
     {
         renderDataListBegin(facesContext, component);
 
         // create converter and pass it to methods here to prevent duplicate creation of the converter
-        Converter converter = Html5RendererUtils.findUIOutputConverterFailSafe(facesContext, component);
+        Converter converter = RendererUtils.findUIOutputConverterFailSafe(facesContext, component);
 
         renderDataListOptions(facesContext, component, converter);
 
@@ -180,7 +177,7 @@ public class HtmlTextInputSuggestionRend
         else
         {
             throw new IllegalArgumentException(
-                    "Component " + RendererUtils.getPathToComponent(uiComponent) + " is not instance of Html5BaseInputText. HtmlTextInputSuggestionRendererHelper is unable to render options of suggestions attr.");
+                    "Component " + ComponentUtils.getPathToComponent(uiComponent) + " is not instance of Html5BaseInputText. HtmlTextInputSuggestionRendererHelper is unable to render options of suggestions attr.");
         }
     }
 
@@ -246,7 +243,7 @@ public class HtmlTextInputSuggestionRend
 
             writer.write(TABULATOR);
 
-            writer.startElement(HTML.OPTION_ELEM, null);
+            writer.startElement(HTML5.OPTION_ELEM, null);
 
             /*
              * we're writing an attribute, not text here: using <option value="value" label="Label" /> notation, not
@@ -254,14 +251,14 @@ public class HtmlTextInputSuggestionRend
              */
             String itemLabel = selectItem.getLabel();
             // writeAttribute method escapes the label anyway. so ignore SelectItem#isEscape()...
-            writer.writeAttribute(HTML.LABEL_ATTR, itemLabel, null);
+            writer.writeAttribute(HTML5.LABEL_ATTR, itemLabel, null);
 
-            String itemStrValue = RendererUtils.getConvertedStringValue(facesContext, component, converter, selectItem);
+            String itemStrValue = RendererUtils.getConvertedStringValue(facesContext, component, converter, selectItem.getValue());
             writer.writeAttribute(HTML5.VALUE_ATTR, itemStrValue, null);
 
-            writer.writeAttribute(HTML.DISABLED_ATTR, selectItem.isDisabled(), null);
+            writer.writeAttribute(HTML5.DISABLED_ATTR, selectItem.isDisabled(), null);
 
-            writer.endElement(HTML.OPTION_ELEM);
+            writer.endElement(HTML5.OPTION_ELEM);
 
         }
     }

Modified: myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5DateTimeConverter.java
URL: http://svn.apache.org/viewvc/myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5DateTimeConverter.java?rev=1103558&r1=1103557&r2=1103558&view=diff
==============================================================================
--- myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5DateTimeConverter.java (original)
+++ myfaces/html5/trunk/myfaces-html5-core/src/main/java/org/apache/myfaces/html5/renderkit/input/util/Html5DateTimeConverter.java Sun May 15 22:14:19 2011
@@ -29,7 +29,7 @@ import javax.faces.convert.Converter;
 import javax.faces.convert.ConverterException;
 
 import org.apache.myfaces.html5.component.input.HtmlInputDateTime;
-import org.apache.myfaces.shared_html5.renderkit.RendererUtils;
+import org.apache.myfaces.html5.component.util.ComponentUtils;
 
 /**
  * Converter for use in hx:inputDateTime.
@@ -53,12 +53,12 @@ public class Html5DateTimeConverter impl
             }
             catch (ParseException e)
             {
-                throw new ConverterException(new FacesMessage("Unable to parse input " + value + " for " + RendererUtils.getPathToComponent(uiComponent) + " with type " + type), e);
+                throw new ConverterException(new FacesMessage("Unable to parse input " + value + " for " + ComponentUtils.getPathToComponent(uiComponent) + " with type " + type), e);
             }
         }
         else
         {
-            throw new FacesException("Component " + RendererUtils.getPathToComponent(uiComponent) + " is not a HtmlInputDateTime");
+            throw new FacesException("Component " + ComponentUtils.getPathToComponent(uiComponent) + " is not a HtmlInputDateTime");
         }
 
     }
@@ -69,7 +69,7 @@ public class Html5DateTimeConverter impl
             return null;
 
         if (!(objValue instanceof Date))
-            throw new FacesException("Value is not a java.util.Date for component " + RendererUtils.getPathToComponent(uiComponent) + ".");
+            throw new FacesException("Value is not a java.util.Date for component " + ComponentUtils.getPathToComponent(uiComponent) + ".");
 
         if (uiComponent instanceof HtmlInputDateTime)
         {
@@ -82,7 +82,7 @@ public class Html5DateTimeConverter impl
         }
         else
         {
-            throw new FacesException("Component " + RendererUtils.getPathToComponent(uiComponent) + " is not a HtmlInputDateTime");
+            throw new FacesException("Component " + ComponentUtils.getPathToComponent(uiComponent) + " is not a HtmlInputDateTime");
         }
 
     }