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