Hi,

As you probably know, there are a lot of "composed" renderers in Trinidad
which delegate to other "sub"renderers to render parts of the component.
i.e. Table renderer delegates to:
 - NavBar(subclass of SelectRangeChoiceBarRenderer),
 - AllDetails (subclass of ShowDetailRenderer)
 - DetailColumnRenderer

input fields renderers (subclasses of InputLabelAndMessageRenderer) delegate
to:
 - one renderer that renders the input field (subclass of FormInputRenderer)
 - Label (subclass of OutputLabelRenderer)
 - Message (subclass of MessageRenderer)

and many more...

As this may look like "good practice", it makes life hell for the developers

that want to customize/override these renderers.

I have 2 possible solutions:

1. make some xml config file that maps a "sub-renderer" type to a renderer
class
I know this might look like the old uix practice, but it's for a differernt
reason.
With a small xsd and some docs, this will be much more transparent.

2. at least have protected getters that return a renderer instance
either for using the default defined sub-renderer in an overriden method
or just for overriding that sub-renderer itself

I personally like the 1st solution more, because it's easier to override
sub-renderers
defined in a super class of more renderers (LabelAndMessageRenderer)

Opinions, suggestions, other solutions?

regards

-- 
Cristi Toth

-------------
Codebeat
www.codebeat.ro

Reply via email to