Hi Cristi! Here are some comments about this:
Well the nice thing was that I don't need to define the selectors statically somewhere f.e. the selectors for tomahawk are made on this rule: mf|fully_qualified_component_Class::style_property_name:css_pseudo_class I get to the same selector solution at start of my project too, I say this to my graphical designer, but he doesn't understand this, because is too much complicated to do something like this in my case: af|javax_faces_component_html_HtmlOutputText::style:hover{ } if is a tomahawk component: af|org_apache_myfaces_component_html_ext_HtmlOutputText::style { } But the designer see in the jsp something like this <h:outputText ..... /> or <t:outputText ..... /> He had to ask me every time for each component what is the selector, and look through tomahawk code for the correct class name. It could be more clear if you can do this: h|outputText::style { } But you have to create one class per component that looks something like this: package org.apache.myfaces.custom.skin.html; import org.apache.myfaces.custom.skin.AdapterSkinRenderer; public class HtmlOutputTextSkinRenderer extends AdapterSkinRenderer { public HtmlOutputTextSkinRenderer() { super("h", "outputText"); } } Note that the price for an increase of code is very low, compared with the easy of use and speed of code for my designer. Note that this is my point of view, not the absolute truth. about the properties ending in Class but not being a StyleClass property the only thing you shouldn't do is declare that selector in the skin So you hacked the map that contains the skin selectors (in the original Skin implementation of trinidad hide this map) and I suppose that you can find the selectors mapped to a specific component ?. or you call to a class that works like RenderingContext like this: styleClass = arc.getStyleClass(selector); And if does not return anything you don't set the property through reflection? about properties with style classes list (rowClasses, columnClasses) it's very simple : you can define the selectors with the suffix rowClass1,rowClass2, ... Cool idea! But for doing this you have to search through the selectors that matches for an specific component (this feature is not inside trinidad skin implementation)? How you are doing this? for any uncommon skinning behavior, you just have to extend the base renderer How do you register the extended the base renderer? How does he call to the base renderer in tomahawk? Sorry if I ask many questions but I want to do the best for the community (and for my projects too!!). If you could publish your code with Apache 2.0license, It would be nice ;) regards Att: Leonardo Uribe