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");
}
}