Hi,
I think checking for Resource.COMPONENT_RESOURCE_KEY in the attributes of
the component is the right way. Checking in the RI source code, they do it
the same; of course, this attribute must be set by corresponding facelets
handler when instantiating the composite component from a given resource,
but I think this is also a requirement for composite components, to
associate the component with the actual resource it was created from.

regards,
Catalin

On Mon, Jun 15, 2009 at 2:02 PM, Werner Punz <[email protected]> wrote:

> Hello
>
> Since I am implementing this part, I have a question especially to the guys
> doing the facelet part.
>
> We have a method in UIComponent - isCompositeComponent
>
> Now it is not very clear to me if the code I found in our class is correct.
>
> We already have a private method: _isCompositeComponent which does
> following:
>
>  private boolean _isCompositeComponent() {
>        return getAttributes().get(Resource.COMPONENT_RESOURCE_KEY) != null;
>    }
>
>
>
> This looks somewhat strange to me, the component resource key,  which is :
> javax.faces.application.Resource.ComponentResource
>
> is this really an indicator for a composite component?
>
> In my opinion it should look like following:
>  private boolean _isCompositeComponent() {
>        component.getRendererType().equals("javax.faces.Composite");
> }
>
> but I am not totally sure either, this should work for java based
> components which are marked as composite in their renderers, but i am not
> sure if this triggers the correct behavior for facelets.
>
> In either case for now I have moved the private code to the public static
> method like the spec says!
>
>
> Werner
>
>


-- 
------------
Codebeat
www.codebeat.ro

Reply via email to