Hey Simon...

[EMAIL PROTECTED] wrote:

Heya!

Another day, another issue. I just helped one of my teammate debugging the af|inputText:required::content he's trying to implements and I found out some issues.

1) af|inputText:required::content got transformed to af_inputText:required_content instead of af_inputText_required_content because I assume single colon is kept to allow the skin to use CSS pseudo-classes. So I decided to test the various :disabled::label selectors already existing to find out those are working correctly. So I assume there's a list of "allowed" component states hidden somewhere. Anyone knows where that is? Also, shouldn't it be the other way around to make it simpler for skin users? That is keep the single colon in the resulting selector only if the pseudo-clas is a known CSS3 class as specified by W3C. This way, it will be easier for component developers to add new component with custom states supporting selectors using the :state synthax.
Yes, there is a list in FileSystemStyleCache. When I finish up some projects that are high priority for me now, I was going to open up this topic, because we do need a way to make the pseudo-classes work without maintaining a list like this. One proposal could be what you suggest, but then we wouldn't be able to use disabled, cuz that is a css pseudo-class, and we'd have to keep this list up to date, and then what happens if it wasn't in the list, and we use it automatically, then the css3 proposal changes and it gets added to the list? Another proposal is to have a list, but not in FileSystemStyleCache, maybe somewhere else, like in the Skin, or a configuration file??, where we keep track of the component and its pseudo-classes that do not get passed through to the css file. So, if it is a processTrain component, it might not want :hover to pass through, but if it is some other component, it might want it to pass through. Another proposal is to add a prefix to the pseudo-classes, like -tri-disabled, and we know NOT to pass these through, but to convert them to a styleclass.

2) If you use a disabled inputText inside a panelForm and override the af|inputText:disabled::label selector with color property set to red, it won't have any effect because the style class applied to the cell containing the label will be set to "af|inputText:disabled::label af|panelForm::label-cell", giving priority to af|panelFoorm::label-cell that set color to black. I think the style classes should be either inverted so af|inputText:disabled::label get priority or af|inputText:disabled::label should be placed on the <label> element instead of the cell itself.
good catch.
I've tested in the past swapping the style classes in the html file, and that has no effect. It is the order they are defined in the css file, and I don't want to attempt to keep the css file ordered; that would be a maintenance black hole.
Can you submit an issue for this bug?
Thanks,
Jeanne


Regards,

Simon Lessard
Fujitsu Consulting

Reply via email to