<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
Why would you not use &lt;composite:renderFacet name=&quot;...&quot; /&gt; in this case? Why does &lt;composite:insertFacet /&gt; exist except for convenience? <BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;h:panelGrid&gt;</FONT></TT><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;f:facet name=&quot;caption&quot;&gt;<BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp;&nbsp;&nbsp;&nbsp; &lt;composite:</FONT></TT><TT>render</TT><TT><FONT COLOR="#1a1a1a">Facet name=&quot;caption&quot;/&gt;</FONT></TT><BR>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/f:facet&gt;<BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;/h:panelGrid&gt;</FONT></TT><BR>
</BLOCKQUOTE>
vs.<BR>
<BLOCKQUOTE TYPE=CITE>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;h:panelGrid&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp;&nbsp;&nbsp;&nbsp; &lt;composite:insertFacet name=&quot;caption&quot;/&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;/h:panelGrid&gt;</FONT></TT><BR>
</BLOCKQUOTE>
<BR>
Since renderFacet already transfers its children into the parent component, &lt;f:facet&gt; could be used to propagate those children upward... that seems like a simple enough solution to me unless I am missing a use case. If I'm right, this is potentially duplicate functionality, potentially confusing since there are two very similar tags with similar functionality, and potentially complex to implement (not a super big consideration, but simplicity should always be the goal.)<BR>
<BR>
My suggestion in this case is to remove &lt;cc:insertFacet /&gt; from the spec altogether, leave the repositioning to be done manually -- with not much extra code (how deep are people really going to nest facets most of the time? It's not that much extra work and provides just as much control.)<BR>
<BR>
--Lincoln<BR>
<BR>
PS. Going a step further, &quot;renderFacet&quot; is really inserting the facet children, and could be renamed to &quot;insertFacet&quot; should we decide to do away with the current &quot;insertFacet&quot; - I find that the word &quot;render&quot; is slightly misleading, since it's not truly causing a render to occur, simply inserting children into a different parent.<BR>
<BR>
<BR>
<B><FONT SIZE="5">Tag insertFacet</FONT></B><BR>

<HR>
<BR>
The presence of this tag in a <TT>&lt;composite:implementation&gt;</TT> section must cause the named facet to be taken from the facet map of the <I>top level component</I> and inserted as a facet child of the component in which this element is nested.<BR>
<BR>
<B><FONT SIZE="5">Tag renderFacet</FONT></B><BR>

<HR>

This element is used in the <TT>&lt;composite:implementation&gt;</TT> section. The facet with the name equal to the value of the name attribute, given by the page author in the using page, will be rendered at this point in the composite component PDL page. <BR>
<BR>
The implementation of this tag handler must insert a component with <TT>component-type</TT> <TT>javax.faces.Output</TT> and <TT>renderer-type</TT> <TT>javax.faces.CompositeFacet</TT> as a child at this point in the component tree.<BR>
<BR>
The implementation of this tag handler must store an attribute into the created component's attribute map under the key given by the value of the symbolic constant <TT>UIComponent.FACETS_KEY</TT>. The value for this key must be the evaluated value of the &quot;name&quot; attribute.<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
On Tue, 2009-09-15 at 19:29 -0400, Andy Schwartz wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <TT><FONT COLOR="#1a1a1a">&lt;composite:interface&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;composite:facet name=&quot;caption&quot;/&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;composite:facet name=&quot;backupCaption&quot;/&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&lt;/composite:interface&gt;</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#1a1a1a">&lt;composite:implementation&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;h:panelGrid&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp;&nbsp;&nbsp;&nbsp; &lt;composite:insertFacet name=&quot;caption&quot;/&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;/h:panelGrid&gt;</FONT></TT><BR>
    <BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;h:panelGrid&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp;&nbsp;&nbsp; &lt;!-- Uh oh. --&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp;&nbsp;&nbsp; &lt;composite:insertFacet name=&quot;backupCaption&quot;/&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&nbsp; &lt;/h:panelGrid&gt;</FONT></TT><BR>
    <TT><FONT COLOR="#1a1a1a">&lt;/composite:implementation&gt;</FONT></TT><BR>
</BLOCKQUOTE>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
--<BR>
<B>Lincoln Baxter, III</B><BR>
Co-Founder of <A HREF="http://ocpsoft.com">OcpSoft</A><BR>
Author of <A HREF="http://ocpsoft.com/prettyfaces">PrettyFaces</A> URL Rewriting for JSF<BR>
<BR>
<BR>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>