You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/11/10 17:54:20 UTC

svn commit: r332327 - in /myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html: HtmlGridRendererBase.java HtmlLinkRendererBase.java HtmlRenderer.java HtmlTableRendererBase.java

Author: mmarinschek
Date: Thu Nov 10 08:54:06 2005
New Revision: 332327

URL: http://svn.apache.org/viewcvs?rev=332327&view=rev
Log:
fix for MYFACES-707. Thanks to Simon Kitching.

Modified:
    myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlGridRendererBase.java
    myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java
    myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRenderer.java
    myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlTableRendererBase.java

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlGridRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlGridRendererBase.java?rev=332327&r1=332326&r2=332327&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlGridRendererBase.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlGridRendererBase.java Thu Nov 10 08:54:06 2005
@@ -176,13 +176,13 @@
             : StringUtils.trim(StringUtils.splitShortString(rowClasses, ','));
         int rowClassesCount = rowClassesArray.length;
 
-        int childCount = component.getChildCount();
+        int childCount = getChildCount(component);
         if (childCount > 0)
         {
             int columnIndex = 0;
             int rowClassIndex = 0;
             boolean rowStarted = false;
-            for (Iterator it = component.getChildren().iterator(); it.hasNext(); )
+            for (Iterator it = getChildren(component).iterator(); it.hasNext(); )
             {
                 UIComponent child = (UIComponent)it.next();
                 if (child.isRendered())

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java?rev=332327&r1=332326&r2=332327&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java Thu Nov 10 08:54:06 2005
@@ -251,7 +251,7 @@
         }
 
         //add child parameters
-        for (Iterator it = component.getChildren().iterator(); it.hasNext(); )
+        for (Iterator it = getChildren(component).iterator(); it.hasNext(); )
         {
             UIComponent child = (UIComponent)it.next();
             if (child instanceof UIParameter)
@@ -323,7 +323,7 @@
         hrefBuf.append('=');
         hrefBuf.append(clientId);
 
-        if (component.getChildCount() > 0)
+        if (getChildCount(component) > 0)
         {
             addChildParametersToHref(component, hrefBuf,
                                      false, //not the first url parameter
@@ -355,7 +355,7 @@
                                           String charEncoding)
             throws IOException
     {
-        for (Iterator it = linkComponent.getChildren().iterator(); it.hasNext(); )
+        for (Iterator it = getChildren(linkComponent).iterator(); it.hasNext(); )
         {
             UIComponent child = (UIComponent)it.next();
             if (child instanceof UIParameter)
@@ -376,7 +376,7 @@
 
         //calculate href
         String href = RendererUtils.getStringValue(facesContext, output);
-        if (output.getChildCount() > 0)
+        if (getChildCount(output) > 0)
         {
             StringBuffer hrefBuf = new StringBuffer(href);
             addChildParametersToHref(output, hrefBuf,

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRenderer.java?rev=332327&r1=332326&r2=332327&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRenderer.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlRenderer.java Thu Nov 10 08:54:06 2005
@@ -15,13 +15,15 @@
  */
 package org.apache.myfaces.renderkit.html;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import java.io.IOException;
+import java.util.List;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.render.Renderer;
-import java.io.IOException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 
 /**
@@ -47,5 +49,34 @@
                 log.warn("Renderer " + getClass().getName() + " does not render its children. Method encodeChildren should not be called.");
             }
         }
+    }
+    
+    /**
+     * Return the list of children of the specified component.
+     * <p>
+     * This default implementation simply returns component.getChildren().
+     * However this method should always be used in order to allow
+     * renderer subclasses to override it and provide filtered or
+     * reordered views of the component children to rendering
+     * methods defined in their ancestor classes.
+     * <p>
+     * Any method that overrides this to "hide" child components
+     * should also override the getChildCount method.
+     * 
+     * @return a list of UIComponent objects.
+     */
+    public List getChildren(UIComponent component) 
+    {
+        return component.getChildren();
+    }
+
+    /**
+     * Return the number of children of the specified component.
+     * <p>
+     * See {@link #getChildren(UIComponent)} for more information.
+     */
+    public int getChildCount(UIComponent component) 
+    {
+        return component.getChildCount();
     }
 }

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlTableRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlTableRendererBase.java?rev=332327&r1=332326&r2=332327&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlTableRendererBase.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlTableRendererBase.java Thu Nov 10 08:54:06 2005
@@ -145,8 +145,8 @@
             HtmlRendererUtils.writePrettyLineSeparator(facesContext);
             renderRowStart(facesContext, writer, uiData, rowStyleIterator);
 
-            List children = component.getChildren();
-            for (int j = 0, size = component.getChildCount(); j < size; j++)
+            List children = getChildren(component);
+            for (int j = 0, size = getChildCount(component); j < size; j++)
             {
                 UIComponent child = (UIComponent) children.get(j);
                 if(child.isRendered())
@@ -308,7 +308,7 @@
     {
         int colspan = 0;
         boolean hasColumnFacet = false;
-        for (Iterator it = component.getChildren().iterator(); it.hasNext();)
+        for (Iterator it = getChildren(component).iterator(); it.hasNext();)
         {
             UIComponent uiComponent = (UIComponent) it.next();
             if(uiComponent.isRendered())
@@ -469,7 +469,7 @@
         HtmlRendererUtils.writePrettyLineSeparator(facesContext);
 
         writer.startElement(HTML.TR_ELEM, component);
-        for (Iterator it = component.getChildren().iterator(); it.hasNext();)
+        for (Iterator it = getChildren(component).iterator(); it.hasNext();)
         {
             UIComponent uiComponent = (UIComponent) it.next();
             if(uiComponent.isRendered())