I have a situation where I *think* the solution is to write a custom
renderer.  It has brought up some issues with renderers I wanted to
ask about as well.  Here's my problem:

I need to display a combo box with "hierarchical" select items.  IOW,
the list of items in the combo box needs to be displayed as a tree
like follows:

Item 1
   Item 2
   Item 3
Item 4
   Item 5
       Item 6
etc....

I tried to do this with   in the itemLabel property of the
SelectItem and the renderer deleted the  's.  I stepped through
the code and found the following in
HtmlRendererUtils.renderSelectOptions():

               if (component instanceof EscapeCapable) {
                   escape = ((EscapeCapable) component).isEscape();
               }
               else {
                   escape =
RendererUtils.getBooleanAttribute(component, JSFAttr.ESCAPE_ATTR,
                                                              true);
//default is to escape
               }

If I import that source file into my codebase and comment out the
above snippet everything works beautifully.  So I thought maybe I
should just write a custom SelectItem renderer and use that.  But this
code is in a static method of a utility class.  I don't want a custom
renderer, I just want a custom implementation of this particular
method.  Is there a better way to customize this?  Or is there a way
to override the utility class with my own implementation?

Thanks,
Greg

Reply via email to