Hi Simon,
thanks for your reply
Well, I also tried the contentStyle attribute but again the only class that
shows up in the vlass Attribute of the rendered <input> tag is
'af_inputText_content'.
So it seems to me that the trinidad renderer overwrites what ever is ment to
show up in the class attribute with the auto-generated skinning-class.
Anyway, in this case I *have* to change the components attribute
programmatically within a custom renderer for the <h:messages>-tag. Components
that are associatedt with thrown FacesMessages should be visually highlighted
by using a certain CSS-class. So I can't just use binding on the
styleClass-Attribute but have zo mnaipulate the component from within the
renderer.
As described above, it works for JSF standard components, but not for those
from Trinidad, so maybe i should focus on changing attributes of
Trinidad-Components. Im not totally sure how this is done the right way. Ijust
can't use the attributes map, right? So I have to use the FacesBean. How can I
change properties on that?
I tried this, but it didnt work:
if(component instanceof UIXComponentBase) {
UIXComponentBase trinidadComponent = (UIXComponentBase) component;
((FacesBean)
trinidadComponent.getFacesBean()).setProperty(PropertyKey.createPropertyKey("styleClass"),
styleClass);
}
Regards,
Tom
________________________________
Von: Simon Lessard [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 3. März 2008 19:58
An: MyFaces Discussion
Betreff: Re: Why is the styleClass Property always overridden?
Wow... really not my day... there's no such attribute... only contentStyle... I
always create it when I make custom components... oh well... JIRA ticket time...
On Mon, Mar 3, 2008 at 1:56 PM, Simon Lessard <[EMAIL PROTECTED]> wrote:
Oups, I misread something. You need to use the contentStyleClass
attribute to affect the input's style class, the styleClass attribute applies
the class on the input container.
On Mon, Mar 3, 2008 at 1:53 PM, Simon Lessard <[EMAIL PROTECTED]> wrote:
Hello Thomas,
why don't you simply use <tr:inputText styleClass="myClass"/>?
If the class changes at runtime you can use <tr:inputText
styleClass="#{bean.myClass}"/> or programatically:
<tr:inputText binding="#{bean.input}"/>
CoreInputText input;
public CoreInputText getInput()
{
return input;
}
public void setInput(CoreInputText input)
{
this.input = input;
this.input.setStyleClass("myClass");
}
Regards,
~ Simon
On Mon, Mar 3, 2008 at 1:39 PM, <[EMAIL PROTECTED]> wrote:
Hi everybody,
Im stuck with a problem and may need a little help to
get through.
Basically all I want to do is to add the name of a
CSS-class programmatically to the styleClass attribute so that somithing like
this is rendered in HTML:
<input id="myText" class="af_inputText_content myClass"
...>
The 'myClass' should be added to the class inserted by
the skinning-renderer of Trinidad.
Even the very basic approach of using the styleClass
Attribute of <tr:inputText> does not work as only af_inputText_content is
inserted as value for the class attribute.
Manipulating the componentes attribute map works for
JSF-Standard-Components but not for Trinidad-Components.
This is what my code looks like:
Map<String, Object>
attributes = component.getAttributes();
String styleClass =
(String) attributes.get("styleClass");
// Append myClass to
whatever is set as styleClass
attributes.put("styleClass", styleClass + " myClass");
Do I have to use the acesBean for Trinidad-Components?
If so, how can the styleClass-attribute be accessed?
Thanks in advance,
Tom
Thomas Asel
Diplom Informatiker (FH)
Selbständiger Softwareentwickler
im Auftrag der 24/7 IT-Services GmbH
== == == == == == == == == == == ==
www.thomas-asel.de
J2EE und Contentmanagement-Lösungen
L13,7 68161 Mannheim
Tel.: +49 (0) 621 / 386 448 3
Mobil: +49(0) 176 / 219 284 26
USt-IdNr.: DE248123620