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

Reply via email to