I'll have to wait until monday to get an answer on where exactly the
convertClientId method is used.

As for the interface:

For HTML, we have to ensure that all clientIds are unique.  This is
achieved through the spec by requiring that all id's are unique under
a namincontainer, and all clientIds correspond to
PARENT_NAMING_CONTAINER_CLIENT_ID + ":" + id.  This makes all
clientIds unique.  If the user is allowed to step ourside of this
automated process, we need to register all clientIds with the
UIViewRoot, and check that the directId hasn't already been specified
before returning it (if it has been specified, we would throw an
Exception).  This ensures that the HTML doesn't get into an
inconsistent state (multiple HTML elements with the same id (JSF
clientId)).


On Sun, 2 Jan 2005 21:42:31 -0500, Sean Schofield
<[EMAIL PROTECTED]> wrote:
> > All renderers have a method "convertClientId" which we could override
> > in our renderers to output whatever clientId we want.
> 
> I was just wondering about this method in the Renderer interface...
> When exactly is this called?  I couldn't find anything substantial
> about it in the spec.  It seems like it is supposed to be called from
> the getClientId() method of UIComponentBase (at least that is how
> MyFaces implementation is working.)
> 
> Perhaps this would be easier than modifying the clientId manually in
> the appropriate renderer code.  We would still need a directId
> attribute right?  If I understand your idea, you are suggesting that
> we implement the direct id behavior through getClientId instead of
> encode() and decode() right?  If so, that makes sense.  (Unless we are
> abusing the intended purpose of this method for some way.)
> 
> > In order to have this functionality, we might want to have an
> > interface for clientId uniqueness that an extended UIViewRoot could
> > implement.
> 
> Not sure what you mean by this.  Could you elaborate?  (I'm also fuzzy
> on the requirements for uniqueness both in JSF and XHTML).
> 
> sean
> 


-- 
-Heath Borders-Wing
[EMAIL PROTECTED]

Reply via email to