You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sk...@apache.org on 2005/12/22 03:52:49 UTC

svn commit: r358448 - /myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlTableRendererBase.java

Author: skitching
Date: Wed Dec 21 18:52:45 2005
New Revision: 358448

URL: http://svn.apache.org/viewcvs?rev=358448&view=rev
Log:
Added new protected methods beforeBody and afterBody as hooks for
subclasses. Moved the header/footer facet rendering into the beforeBody
method so that subclasses can control what gets rendered before/after
these facets. In particular, it allows subclasses to render COL elements
before the THEAD.

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

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=358448&r1=358447&r2=358448&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 Wed Dec 21 18:52:45 2005
@@ -77,11 +77,6 @@
         writer.startElement(HTML.TABLE_ELEM, uiComponent);
         HtmlRendererUtils.writeIdIfNecessary(writer, uiComponent, facesContext);
         HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent, HTML.TABLE_PASSTHROUGH_ATTRIBUTES);
-
-        // Render the THEAD and TFOOT sections, including the output of header/footer
-        // facets attached to both the UIData and its child UIColumn components.
-        renderFacet(facesContext, writer, uiComponent, true);
-        renderFacet(facesContext, writer, uiComponent, false);
     }
 
     /**
@@ -93,9 +88,10 @@
     {
         RendererUtils.checkParamValidity(facesContext, component, UIData.class);
 
-
         ResponseWriter writer = facesContext.getResponseWriter();
 
+        beforeBody(facesContext, (UIData) component);
+
         HtmlRendererUtils.writePrettyLineSeparator(facesContext);
         writer.startElement(HTML.TBODY_ELEM, component);
         writer.writeAttribute(HTML.ID_ATTR, component.getClientId(facesContext)+":tbody_element", null);
@@ -103,6 +99,8 @@
         encodeInnerHtml(facesContext, component);
 
         writer.endElement(HTML.TBODY_ELEM);
+
+        afterBody(facesContext, (UIData) component);
     }
 
     /**
@@ -264,7 +262,9 @@
     }
 
     /**
-     * Convenient method for derived table renderers.
+     * Perform any operations necessary immediately before the TABLE start tag
+     * is output.
+     *
      * @param facesContext the <code>FacesContext</code>.
      * @param uiData the <code>UIData</code> being rendered.
      */
@@ -273,7 +273,27 @@
     }
 
     /**
-     * Convenient method for derived table renderers.
+     * Perform any operations necessary after TABLE start tag is output
+     * but before the TBODY start tag.
+     * <p>
+     * This method generates the THEAD/TFOOT sections of a table if there
+     * are any header or footer facets defined on the table or on any child
+     * UIColumn component.
+     *
+     * @param facesContext the <code>FacesContext</code>.
+     * @param uiData the <code>UIData</code> being rendered.
+     */
+    protected void beforeBody(FacesContext facesContext, UIData uiData) throws IOException
+    {
+        ResponseWriter writer = facesContext.getResponseWriter();
+        renderFacet(facesContext, writer, uiData, true);
+        renderFacet(facesContext, writer, uiData, false);
+    }
+
+    /**
+     * Perform any operations necessary immediately before each TR start tag
+     * is output.
+     *
      * @param facesContext the <code>FacesContext</code>.
      * @param uiData the <code>UIData</code> being rendered.
      */
@@ -282,7 +302,9 @@
     }
 
     /**
-     * Convenient method for derived table renderers.
+     * Perform any operations necessary immediately after each TR end tag
+     * is output.
+     *
      * @param facesContext the <code>FacesContext</code>.
      * @param uiData the <code>UIData</code> being rendered.
      */
@@ -291,7 +313,20 @@
     }
 
     /**
-     * Convenient method for derived table renderers.
+     * Perform any operations necessary immediately after the TBODY end tag
+     * is output.
+     *
+     * @param facesContext the <code>FacesContext</code>.
+     * @param uiData the <code>UIData</code> being rendered.
+     */
+    protected void afterBody(FacesContext facesContext, UIData uiData) throws IOException
+    {
+    }
+
+    /**
+     * Perform any operations necessary immediately after the TABLE end tag
+     * is output.
+     *
      * @param facesContext the <code>FacesContext</code>.
      * @param uiData the <code>UIData</code> being rendered.
      */