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]

