Author: gvanmatre
Date: Mon Apr 17 20:19:46 2006
New Revision: 394828

URL: http://svn.apache.org/viewcvs?rev=394828&view=rev
Log:
Fix for bug 39294 reported by Simon Matic Langford. I narrowed the scope from 
the general category of renderer's in command family to the Link and Button 
renderer type's that are specified in the JSF runtime and have know behavior.  


Modified:
    
struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java

Modified: 
struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java
URL: 
http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java?rev=394828&r1=394827&r2=394828&view=diff
==============================================================================
--- 
struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java
 (original)
+++ 
struts/shale/trunk/core-library/src/java/org/apache/shale/faces/ValidatorRenderKit.java
 Mon Apr 17 20:19:46 2006
@@ -35,6 +35,9 @@
  * The majority of the implementation is passed on the the original 
  * <code>RenderKit</code> but requests for renderers registered with the 
  * "javax.faces.Command" and "javax.faces.Input" families are decorated.
+ * Only renderers in the "javax.faces.Command" family of types 
+ * "javax.faces.Link" and "javax.faces.Button" are considered.  These are
+ * renderers from the vanilla JSF runtime that have predictable behavior.  
  * The wrapper adds special behavior for the 
  * [EMAIL PROTECTED] org.apache.shale.validator.CommonsValidator} validator and
  * [EMAIL PROTECTED] org.apache.shale.component.ValidatorScript} component.</p>
@@ -44,6 +47,9 @@
     private static String COMMAND_FAMILY = "javax.faces.Command";
     private static String INPUT_FAMILY = "javax.faces.Input";
     
+    private static String COMMAND_LINK_TYPE = "javax.faces.Link";
+    private static String COMMAND_BUTTON_TYPE = "javax.faces.Button";
+    
     
     /**
      * <p>The original RenderKit.</p>
@@ -65,14 +71,17 @@
     /**
      * <p>If the component family is not "javax.faces.Command" or
      * "javax.faces.Input", the <code>defaultRenderKit</code> handles the 
-     * request.  If the family is "javax.faces.Command", the default
-     * renderer is decorated with [EMAIL PROTECTED] 
org.apache.shale.renderer.ValidatorCommandRenderer}.
+     * request.  If the family is "javax.faces.Command", and the renderer type
+     * is "javax.faces.Link" or "javax.faces.Button" the default
+     * renderer is decorated with [EMAIL PROTECTED] 
org.apache.shale.renderer.ValidatorCommandRenderer}. 
      * If the component family is "javax.faces.Input", the default 
      * renderer is decorated with [EMAIL PROTECTED] 
org.apache.shale.renderer.ValidatorInputRenderer}.
      */
     public Renderer getRenderer(String componentFamily, String rendererType) {
         Renderer target = defaultRenderKit.getRenderer(componentFamily, 
rendererType);
-        if (componentFamily.equals(COMMAND_FAMILY)) {
+        if (componentFamily.equals(COMMAND_FAMILY) && 
+            (rendererType.equals(COMMAND_LINK_TYPE) || 
+             rendererType.equals(COMMAND_BUTTON_TYPE))) {
            if (!(target instanceof ValidatorCommandRenderer)) {
                target = new ValidatorCommandRenderer(target);
                addRenderer(componentFamily, rendererType, target);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to