The fact that it generates both compressed and uncompressed in this test
case is not a bug, but as designed.
In selectors without a namespace, like af|, I output both compressed and
uncompressed since these could be a user's styleclass that they are
using in a way that doesn't get compressed, like through their own html
tags.
I don't think this is the reason for Renzo's problem, but instead it is
because he wasn't turning compression off. The problem must be that he
sets styleClass="invisible" and this gets compressed because the
renderer calls renderStyleClass which compresses it if compression is
enabled.
Another workaround might be to try adding to the styleClass attribute
another styleclass name that is not written in the skin css file.
Then it won't compress. The reason is that when we process the skin css
file, we get the selector and put it in a map of selector->compressed
selector. If it isn't in the skin css file, it won't get in this map,
thus it won't get compressed, even when renderStyleClass is called.
This is a kludge, no doubt about it. But it will keep you from having to
uncompress everything.
- Jeanne
Renzo Tomaselli wrote:
Thanks, Simon. Disabling compression makes things working like they did
previously.
Btw, the reason why it used to work with previous versions was that
until some versions ago (1.0.1) we could disable compression on:
org.apache.myfaces.trinidadinternal.DISABLE_CONTENT_COMPRESSION
while now it's org.apache.myfaces.trinidad.
Moreover, the best solution would be to compress only Trinidad classes -
leaving custom classes as they are, but I gues this is impossible if
translation occurs after css merging.
-- Renzo
Simon Lessard wrote:
Hmmm, sounds like a bug. In compression mode, only .xe0 should be
generated. You can try to disable content compression for now using
<context-param>
<param-name>org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION
</param-name>
<param-value>true</param-value>
</context-param>
Regards,
~ Simon
On Nov 14, 2007 3:55 AM, Renzo Tomaselli < [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
Hi, I noticed an unpleasant effect due to Trinidad class
compression/aliasing. If I define my own class such as:
.invisible {
display: none;
visibility: hidden;
}
then the generated css contains:
.invisible,.xe0 {display:none;visibility:hidden}
The rendered html page contains always *both* classes, even in places
where xhtml source specified just .invisible.
The final result is that any js code looking for .invisible fails.
I'm using Trinidad 1.0.3. Till 1.0.1 these things were running
properly.
Even adding dummy attributes to my classes seems not working: an alias
is generated anyway, and used in html (in place of original class
name).
Should I disable alisasing - leaving original class names ? Is that
possible at all ?
-- Renzo