Hi Jakob<br><br>Could you create an issue on MyFaces and start providing some patches<br>there?. Right now I&#39;m trying to make cc:attribute &quot;targets&quot; to work on any<br>condition, including nested composite components, to see if we can solve <br>
that from Mojarra, but it will take some time.<br><br>best regards,<br><br>Leonardo Uribe<br><br><div class="gmail_quote">2010/10/29 Martin Marinschek <span dir="ltr">&lt;<a href="mailto:mmarinschek@apache.org">mmarinschek@apache.org</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi Jakob,<br>
<br>
+1 from my side,<br>
<br>
best regards,<br>
<font color="#888888"><br>
Martin<br>
</font><div><div></div><div class="h5"><br>
On 10/29/10, Jakob Korherr &lt;<a href="mailto:jakob.korherr@gmail.com">jakob.korherr@gmail.com</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; Thinking more of it and trying out some prototypes, I now think<br>
&gt; Leonardo&#39;s approach is the way to go. Of course, it would somehow be<br>
&gt; possible to circumvent the problems mentioned before (like multiple<br>
&gt; action listeners or the missing f: tag for client behaviors), but<br>
&gt; after reading the vdldocs again, I think it&#39;s much more consistent<br>
&gt; with what we have right now.<br>
&gt;<br>
&gt; Consider the current facet solution: The user can provide facets for<br>
&gt; the composite component and the author of the composite component can<br>
&gt; add them to implementation-components via cc:insertFacet. And this is<br>
&gt; exactly what we need for cc:actionSource, cc:valueHolder,<br>
&gt; cc:editableValueHolder and cc:clientBehavior.<br>
&gt;<br>
&gt; Thus I would propose the following new tags (from Leonardo&#39;s original<br>
&gt; proposal):<br>
&gt;<br>
&gt; &lt;cc:insertActionSource name=&quot;XXX&quot; /&gt;<br>
&gt; &lt;cc:insertEditableValueHolder name=&quot;XXX&quot;/&gt;<br>
&gt; &lt;cc:insertValueHolder name=&quot;XXX&quot; /&gt;<br>
&gt; &lt;cc:insertClientBehavior name=&quot;XXX&quot; /&gt;<br>
&gt;<br>
&gt; What do you think?<br>
&gt;<br>
&gt; Regards,<br>
&gt; Jakob<br>
&gt;<br>
&gt; 2010/10/29 Martin Marinschek &lt;<a href="mailto:mmarinschek@apache.org">mmarinschek@apache.org</a>&gt;:<br>
&gt;&gt; Hi Gentlemen,<br>
&gt;&gt;<br>
&gt;&gt; I am leaning toward Jakob&#39;s approach, but if it is not possible due to<br>
&gt;&gt; the constraints Leonardo mentioned, then why not add the necessary<br>
&gt;&gt; tags?<br>
&gt;&gt;<br>
&gt;&gt; @Leonardo, Jakob: can you put your heads together and come up with a<br>
&gt;&gt; combined proposal?<br>
&gt;&gt;<br>
&gt;&gt; best regards,<br>
&gt;&gt;<br>
&gt;&gt; Martin<br>
&gt;&gt;<br>
&gt;&gt; On 10/29/10, Ed Burns &lt;<a href="mailto:edward.burns@oracle.com">edward.burns@oracle.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; On Thu, 28 Oct 2010 12:56:53 -0500, Leonardo Uribe<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; &lt;<a href="mailto:lu4242@gmail.com">lu4242@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; said:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; LU&gt; Hi<br>
&gt;&gt;&gt; LU&gt; To be more explicit, this is the example that should fail:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; LU&gt; &lt;ez:loginPanel id=&quot;loginPanel&quot; model=&quot;#{bean}&quot;&gt;<br>
&gt;&gt;&gt; LU&gt;        &lt;f:actionListener for=&quot;loginEvent&quot;<br>
&gt;&gt;&gt; LU&gt;                          binding=&quot;#{bean.loginEventListener}&quot; /&gt;<br>
&gt;&gt;&gt; LU&gt;        &lt;f:actionListener for=&quot;loginEvent&quot;<br>
&gt;&gt;&gt; LU&gt;                          binding=&quot;#{bean.loginEventListener2}&quot; /&gt;<br>
&gt;&gt;&gt; LU&gt;        &lt;f:actionListener for=&quot;cancelEvent&quot;<br>
&gt;&gt;&gt; LU&gt;                          binding=&quot;#{bean.cancelEventListener}&quot; /&gt;<br>
&gt;&gt;&gt; LU&gt;      &lt;/ez:loginPanel&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; LU&gt;      &lt;composite:interface name=&quot;loginPanel&quot;&gt;<br>
&gt;&gt;&gt; LU&gt;        &lt;composite:actionSource name=&quot;loginEvent&quot; /&gt;<br>
&gt;&gt;&gt; LU&gt;        &lt;composite:actionSource name=&quot;cancelEvent&quot; /&gt;<br>
&gt;&gt;&gt; LU&gt;      &lt;/composite:interface&gt;<br>
&gt;&gt;&gt; LU&gt;      &lt;composite:implementation&gt;<br>
&gt;&gt;&gt; LU&gt;                  &lt;h:commandButton name=&quot;button1&quot;&gt;<br>
&gt;&gt;&gt; LU&gt;                         &lt;f:actionListener<br>
&gt;&gt;&gt; LU&gt; binding=&quot;#{cc.actionSource.loginEvent}&quot;/&gt;<br>
&gt;&gt;&gt; LU&gt;                  &lt;/h:commandButton&gt;<br>
&gt;&gt;&gt; LU&gt;                  &lt;x:mycompositecomponent name=&quot;button2&quot;&gt;<br>
&gt;&gt;&gt; LU&gt;                         &lt;f:actionListener<br>
&gt;&gt;&gt; LU&gt; binding=&quot;#{cc.actionSource.cancelEvent}&quot; for=&quot;someOtherEvent&quot;/&gt;<br>
&gt;&gt;&gt; LU&gt;                  &lt;/x:mycompositecomponent&gt;<br>
&gt;&gt;&gt; LU&gt;      &lt;/composite:implementation&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; LU&gt; In this case, the binding #{cc.actionSource.loginEvent} does not<br>
&gt;&gt;&gt; point<br>
&gt;&gt;&gt; to<br>
&gt;&gt;&gt; LU&gt; just<br>
&gt;&gt;&gt; LU&gt; one actionListener.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; GP&gt; Leo, IMO your example wouldn&#39;t need to fail: the nested<br>
&gt;&gt;&gt; GP&gt; actionListener with binding=&quot;#{cc.actionSource.loginEvent}&quot; would<br>
&gt;&gt;&gt; GP&gt; need to execute *all* actionListeners that have been bound to<br>
&gt;&gt;&gt; GP&gt; &quot;loginEvent&quot;. In this case &quot;#{bean.loginEventListener}&quot; and<br>
&gt;&gt;&gt; GP&gt; &quot;#{bean.loginEventListener2}&quot; would reside in a Map named<br>
&gt;&gt;&gt; GP&gt; cc.actionSource.loginEvent and could both be executed. Wouldn&#39;t this<br>
&gt;&gt;&gt; GP&gt; work?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The type of the binding attribute is specified thus.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;   Value binding expression that evaluates to an object that implements<br>
&gt;&gt;&gt;   javax.faces.event.ActionListener<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; How would you make that handle a list?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Sure, we could go and add a raft of new &quot;bindingList&quot; attributes to all<br>
&gt;&gt;&gt; of the attached object handlers in f:, but is it worth the complexity?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Ed<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; | <a href="mailto:edward.burns@oracle.com">edward.burns@oracle.com</a> | office: +1 407 458 0017<br>
&gt;&gt;&gt; | homepage:               | <a href="http://ridingthecrest.com/" target="_blank">http://ridingthecrest.com/</a><br>
&gt;&gt;&gt; |  9 work days until German Oracle User&#39;s Group Conference<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt;<br>
&gt;&gt; <a href="http://www.irian.at" target="_blank">http://www.irian.at</a><br>
&gt;&gt;<br>
&gt;&gt; Your JSF powerhouse -<br>
&gt;&gt; JSF Consulting, Development and<br>
&gt;&gt; Courses in English and German<br>
&gt;&gt;<br>
&gt;&gt; Professional Support for Apache MyFaces<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Jakob Korherr<br>
&gt;<br>
&gt; blog: <a href="http://www.jakobk.com" target="_blank">http://www.jakobk.com</a><br>
&gt; twitter: <a href="http://twitter.com/jakobkorherr" target="_blank">http://twitter.com/jakobkorherr</a><br>
&gt; work: <a href="http://www.irian.at" target="_blank">http://www.irian.at</a><br>
&gt;<br>
<br>
<br>
</div></div>--<br>
<div><div></div><div class="h5"><br>
<a href="http://www.irian.at" target="_blank">http://www.irian.at</a><br>
<br>
Your JSF powerhouse -<br>
JSF Consulting, Development and<br>
Courses in English and German<br>
<br>
Professional Support for Apache MyFaces<br>
</div></div></blockquote></div><br>