<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
While perhaps there are ways to improve findComponent further, I am
failing to see the short coming that he describes.&nbsp; He states:<br>
<br>
&nbsp;&nbsp;&nbsp; It would be much better if there would be a standard way to find a
component by name. In fact JSF&#8217;s UIComponent has a method called
findComponent. Unfortunately, this method stops searching the component
tree whenever it encounters a naming container when a search is
performed.<br>
<br>
This is not true when you use a clientId (relative or absolute).&nbsp; For
example here's how you use an absolute path:<br>
<br>
&nbsp;&nbsp;&nbsp; componentA.findComponent(":form:container:componentB");<br>
<br>
Now if he doesn't want to know the real name of the component
(clientId), and wants to search only by a simple id and return a
complete list of all matches, as he states, this is trivial:<br>
<br>
&nbsp;&nbsp;&nbsp; public List&lt;UIComponent&gt; usersFindComponents(UIComponent
base, String id) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; List&lt;UIComponent&gt; list = new
ArrayList&lt;UIComponent&gt;();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Iterator&lt;UIComponent&gt; it = base.getFacetsAndChildren();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; while (it.hasNext()) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; UIComponent comp = it.next();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; if (id.equals(comp.getId())) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; list.add(comp);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; list.addAll(usersFindComponent(comp, id));<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; return list;<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
While we can add this if this is desirable (I'm not convinced it is --
walking the tree to find all components is not something I'd
recommend), I'm missing the "big problem" that supposedly exists here.<br>
&nbsp;&nbsp;&nbsp; &nbsp; <br>
Ken<br>
<br>
Dan Allen wrote:
<blockquote
 cite="mid:19758da0912111023v61193d92sd839125983ad69a2@mail.gmail.com"
 type="cite">Actually, I forgot to mention that findComponent brings up
a point we were discussing about possibility introducing an XPath or
jQuery-like syntax for finding components that is less laborious.<br>
  <br>
And the "view actions" is definitely still an outstanding point, to add
to your list.<br>
  <br>
-Dan<br>
  <br>
  <div class="gmail_quote">On Fri, Dec 11, 2009 at 1:21 PM, Simon
Lessard <span dir="ltr">&lt;<a moz-do-not-send="true"
 href="mailto:Simon_Lessard@dmr.ca">Simon_Lessard@dmr.ca</a>&gt;</span>
wrote:<br>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br>
    <br>
The only valid points remaining seem to be the no state --&gt; style
support, as well as conditional validations and find component support.<br>
    <br>
For the state styling he even point out at how easy it would be to
implement #{component} for conditional styleClass. Of course,
#{component} was already public when the article was written but I
guess he didn't read that part of the specification. Also, that could
be adressed with a skinning engine<br>
    <br>
For the conditional validation, I kind of agree however, but I have yet
to think of a really nice way to standaize that.<br>
    <br>
Finally, for the findComponent, I think invokeOnComponent adresses this
decently well.<br>
    <br>
    <br>
Regards,<br>
    <br>
~ Simon<br>
    <br>
________________________________<br>
    <br>
From: <a moz-do-not-send="true"
 href="mailto:jsr-314-open-bounces@jcp.org">jsr-314-open-bounces@jcp.org</a>
on behalf of Kito Mann<br>
Sent: Fri 12/11/2009 12:57 PM<br>
To: JSR 314 Open Mailing list<br>
Subject: [jsr-314-open] Another big article<br>
    <div class="im"><br>
    <br>
FYI, I just saw a tweet about another (not positive) article: <a
 moz-do-not-send="true" href="http://bit.ly/50sA4f" target="_blank">http://bit.ly/50sA4f</a>.
I haven't finished reading it yet, but we should definitely review it
and provide a good response.<br>
---<br>
Kito D. Mann | twitter: kito99 | Author, JSF in Action<br>
    </div>
Virtua, Inc. | <a moz-do-not-send="true" href="http://www.virtua.com"
 target="_blank">http://www.virtua.com</a> &lt;<a moz-do-not-send="true"
 href="http://www.virtua.com/" target="_blank">http://www.virtua.com/</a>&gt;
&nbsp;| JSF/Java EE training and consulting<br>
    <a moz-do-not-send="true" href="http://www.JSFCentral.com"
 target="_blank">http://www.JSFCentral.com</a> &lt;<a
 moz-do-not-send="true" href="http://www.jsfcentral.com/"
 target="_blank">http://www.jsfcentral.com/</a>&gt; &nbsp;- JavaServer Faces
FAQ, news, and info | twitter: jsfcentral<br>
    <div>
    <div class="h5">+1 203-404-4848 x3<br>
    <br>
Sign up for the JSFCentral newsletter: <a moz-do-not-send="true"
 href="http://oi.vresp.com/?fid=ac048d0e17" target="_blank">http://oi.vresp.com/?fid=ac048d0e17</a><br>
    <br>
    <br>
    </div>
    </div>
  </blockquote>
  </div>
  <br>
  <br clear="all">
  <br>
-- <br>
Dan Allen<br>
Senior Software Engineer, Red Hat | Author of Seam in Action<br>
Registered Linux User #231597<br>
  <br>
  <a moz-do-not-send="true" href="http://mojavelinux.com">http://mojavelinux.com</a><br>
  <a moz-do-not-send="true" href="http://mojavelinux.com/seaminaction">http://mojavelinux.com/seaminaction</a><br>
  <a moz-do-not-send="true"
 href="http://www.google.com/profiles/dan.j.allen">http://www.google.com/profiles/dan.j.allen</a><br>
</blockquote>
</body>
</html>