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.
*/