You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Renzo Tomaselli <re...@tecnotp.it> on 2007/06/26 12:09:57 UTC

[Trinidad] avoiding using Trinidad skins for non-Trinidad components

Hi, in a mixed environment (Trinidad, Tomahawk, Facelets, Richfaces) I 
noticed that - even when using non-Trinidad components - we get Trinidad 
skins being used for classes.
For example, in:

<h:commandLink>
    <h:graphicImage value="#{sessionBean.map[menu.link.icon]}" 
style="border: 0px" rendered="#{menu.link.iconized}"/>
    <h:outputText value="#{menu.label}"/>
</h:commandLink>

there is no Trinidad component involved, but I get the class OraLink 
being used for rendering the <a> element.
Also I should remark that at higher level, there are other Trinidad 
containing components, but I guess there is no "inheritance" in 
rendering styles.
When such (standard) link is embedded into another library component - 
style conflict arise - such as in:

<rich:dropDownMenu>
    <f:facet name="label">
        <h:commandLink>
       ....
How can we avoid this effect ?

Thanks -- Renzo



Re: [Trinidad] avoiding using Trinidad skins for non-Trinidad components

Posted by Renzo Tomaselli <re...@tecnotp.it>.
Thanks, Matthias. But does it mean that I cannot override class OraLink 
for any h:commandLink when Trinidad is playing around ?

-- Renzo

Matthias Wessendorf wrote:
> The CoreRenderKit of Trinidad adds all "standard" JSF components,
> delivered by HTML_BASIC RenderKit.
> So for <h:graphicImage /> the javax.faces** component and renderer is 
> used.
>
> But, this isn't true for commandButton/commandLink/form
>
>      // But we render UIForms with our own renderer
>      addRenderer(UIForm.COMPONENT_FAMILY,
>                  "javax.faces.Form",
>                  new HtmlFormRenderer());
>      // And we render UICommandLink with our own renderer
>      addRenderer(UICommand.COMPONENT_FAMILY,
>                  "javax.faces.Link",
>                  new HtmlCommandLinkRenderer());
>      // In jsf 1.1_02 the ri FormRenderer writes out script used by
>      // h:commandButton. Since we override the RI FormRenderer, we also
>      // need to override the commandButton renderer:
>      addRenderer(UICommand.COMPONENT_FAMILY,
>                  "javax.faces.Button",
>                  new HtmlCommandButtonRenderer());
>
> -Matthias
>
> On 6/26/07, Renzo Tomaselli <re...@tecnotp.it> wrote:
>> Hi, in a mixed environment (Trinidad, Tomahawk, Facelets, Richfaces) I
>> noticed that - even when using non-Trinidad components - we get Trinidad
>> skins being used for classes.
>> For example, in:
>>
>> <h:commandLink>
>>     <h:graphicImage value="#{sessionBean.map[menu.link.icon]}"
>> style="border: 0px" rendered="#{menu.link.iconized}"/>
>>     <h:outputText value="#{menu.label}"/>
>> </h:commandLink>
>>
>> there is no Trinidad component involved, but I get the class OraLink
>> being used for rendering the <a> element.
>> Also I should remark that at higher level, there are other Trinidad
>> containing components, but I guess there is no "inheritance" in
>> rendering styles.
>> When such (standard) link is embedded into another library component -
>> style conflict arise - such as in:
>>
>> <rich:dropDownMenu>
>>     <f:facet name="label">
>>         <h:commandLink>
>>        ....
>> How can we avoid this effect ?
>>
>> Thanks -- Renzo
>>
>>
>>
>
>

Re: [Trinidad] avoiding using Trinidad skins for non-Trinidad components

Posted by Matthias Wessendorf <ma...@apache.org>.
The CoreRenderKit of Trinidad adds all "standard" JSF components,
delivered by HTML_BASIC RenderKit.
So for <h:graphicImage /> the javax.faces** component and renderer is used.

But, this isn't true for commandButton/commandLink/form

      // But we render UIForms with our own renderer
      addRenderer(UIForm.COMPONENT_FAMILY,
                  "javax.faces.Form",
                  new HtmlFormRenderer());
      // And we render UICommandLink with our own renderer
      addRenderer(UICommand.COMPONENT_FAMILY,
                  "javax.faces.Link",
                  new HtmlCommandLinkRenderer());
      // In jsf 1.1_02 the ri FormRenderer writes out script used by
      // h:commandButton. Since we override the RI FormRenderer, we also
      // need to override the commandButton renderer:
      addRenderer(UICommand.COMPONENT_FAMILY,
                  "javax.faces.Button",
                  new HtmlCommandButtonRenderer());

-Matthias

On 6/26/07, Renzo Tomaselli <re...@tecnotp.it> wrote:
> Hi, in a mixed environment (Trinidad, Tomahawk, Facelets, Richfaces) I
> noticed that - even when using non-Trinidad components - we get Trinidad
> skins being used for classes.
> For example, in:
>
> <h:commandLink>
>     <h:graphicImage value="#{sessionBean.map[menu.link.icon]}"
> style="border: 0px" rendered="#{menu.link.iconized}"/>
>     <h:outputText value="#{menu.label}"/>
> </h:commandLink>
>
> there is no Trinidad component involved, but I get the class OraLink
> being used for rendering the <a> element.
> Also I should remark that at higher level, there are other Trinidad
> containing components, but I guess there is no "inheritance" in
> rendering styles.
> When such (standard) link is embedded into another library component -
> style conflict arise - such as in:
>
> <rich:dropDownMenu>
>     <f:facet name="label">
>         <h:commandLink>
>        ....
> How can we avoid this effect ?
>
> Thanks -- Renzo
>
>
>


-- 
Matthias Wessendorf

further stuff:
blog: http://matthiaswessendorf.wordpress.com/
mail: matzew-at-apache-dot-org