You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ar...@apache.org on 2007/08/31 23:10:09 UTC

svn commit: r571586 - in /myfaces/trinidad/trunk/trinidad/trinidad-impl/src: main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/

Author: arobinson74
Date: Fri Aug 31 14:10:09 2007
New Revision: 571586

URL: http://svn.apache.org/viewvc?rev=571586&view=rev
Log:
Jira TRINIDAD-653 - added code to find the first child that implements EditableValueHolder

Modified:
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimal-golden.xml
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIE-golden.xml
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIERtl-golden.xml
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalPPC-golden.xml
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalSaf-golden.xml
    myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalScrRdr-golden.xml

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java?rev=571586&r1=571585&r2=571586&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/PanelLabelAndMessageRenderer.java Fri Aug 31 14:10:09 2007
@@ -20,6 +20,7 @@
 
 import java.io.IOException;
 
+import javax.faces.component.EditableValueHolder;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 
@@ -78,9 +79,24 @@
   {
     String forValue = getFor(bean);
 
-    return MessageUtils.getClientIdFor(context,
-                                       component,
-                                       forValue);
+    String val = null;
+    if (forValue != null)
+    {
+      val = MessageUtils.getClientIdFor(context, component, forValue);
+    }
+    else
+    {
+      if (component.getChildCount() > 0)
+      {
+        UIComponent child = findForComponent(context, arc, component, bean);
+        if (child != null)
+        {
+          val = child.getClientId(context);
+        }
+      }
+    }
+    
+    return val;
   }
 
   @Override
@@ -158,6 +174,46 @@
     return toString(bean.getProperty(_labelInlineStyleKey));
   }
 
+  /**
+   * In the event that the {@link #getFor(FacesBean)} returns null,
+   * this class finds the first child that implements {@link EditableValueHolder}
+   * 
+   * @param context
+   * @param arc
+   * @param component
+   * @param bean
+   * @return
+   */
+  protected UIComponent findForComponent(
+    FacesContext        context,
+    RenderingContext    arc,
+    UIComponent         component,
+    FacesBean           bean)
+  {
+    // search children first
+    for (Object obj : component.getChildren())
+    {
+      UIComponent child = (UIComponent)obj;
+      if (obj instanceof EditableValueHolder)
+      {
+        return child;
+      }
+    }
+    
+    // recursively search the children of the children
+    for (Object obj : component.getChildren())
+    {
+      UIComponent child = (UIComponent)obj;
+      UIComponent result = findForComponent(context, arc, child, bean);
+      if (result != null)
+      {
+        return result;
+      }
+    }
+    
+    return null;
+  }
+  
   private PropertyKey _forKey;
   private PropertyKey _labelInlineStyleKey;
 }

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimal-golden.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimal-golden.xml?rev=571586&r1=571585&r2=571586&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimal-golden.xml (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimal-golden.xml Fri Aug 31 14:10:09 2007
@@ -190,7 +190,12 @@
                class="af_panelLabelAndMessage_label"
                nowrap="nowrap"
               >
-            test-label
+            
+            <label
+                 for="_idXXX"
+                >
+              test-label
+            </label>
           </td>
           <td
                class="AFContentCell"

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIE-golden.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIE-golden.xml?rev=571586&r1=571585&r2=571586&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIE-golden.xml (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIE-golden.xml Fri Aug 31 14:10:09 2007
@@ -190,7 +190,12 @@
                class="af_panelLabelAndMessage_label"
                nowrap="nowrap"
               >
-            test-label
+            
+            <label
+                 for="_idXXX"
+                >
+              test-label
+            </label>
           </td>
           <td
                class="AFContentCell"

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIERtl-golden.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIERtl-golden.xml?rev=571586&r1=571585&r2=571586&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIERtl-golden.xml (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalIERtl-golden.xml Fri Aug 31 14:10:09 2007
@@ -190,7 +190,12 @@
                class="af_panelLabelAndMessage_label"
                nowrap="nowrap"
               >
-            test-label
+            
+            <label
+                 for="_idXXX"
+                >
+              test-label
+            </label>
           </td>
           <td
                class="AFContentCell"

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalPPC-golden.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalPPC-golden.xml?rev=571586&r1=571585&r2=571586&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalPPC-golden.xml (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalPPC-golden.xml Fri Aug 31 14:10:09 2007
@@ -233,7 +233,12 @@
           <td
                class="af_panelLabelAndMessage_label"
               >
-            test-label
+            
+            <label
+                 for="_idXXX"
+                >
+              test-label
+            </label>
           </td>
           <td
                class="AFContentCell"

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalSaf-golden.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalSaf-golden.xml?rev=571586&r1=571585&r2=571586&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalSaf-golden.xml (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalSaf-golden.xml Fri Aug 31 14:10:09 2007
@@ -190,7 +190,12 @@
                class="af_panelLabelAndMessage_label"
                nowrap="nowrap"
               >
-            test-label
+            
+            <label
+                 for="_idXXX"
+                >
+              test-label
+            </label>
           </td>
           <td
                class="AFContentCell"

Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalScrRdr-golden.xml
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalScrRdr-golden.xml?rev=571586&r1=571585&r2=571586&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalScrRdr-golden.xml (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/test/resources/org/apache/myfaces/trinidadinternal/renderkit/golden/panelLabelAndMessage-minimalScrRdr-golden.xml Fri Aug 31 14:10:09 2007
@@ -190,7 +190,12 @@
                class="af_panelLabelAndMessage_label"
                nowrap="nowrap"
               >
-            test-label
+            
+            <label
+                 for="_idXXX"
+                >
+              test-label
+            </label>
           </td>
           <td
                class="AFContentCell"