public void renderInternal(UIXRenderingContext context, UINode dataNode)
throws IOException
{
Renderer renderer = null;
try
{
renderer = getRenderer(context, dataNode);
}
catch( UndeclaredThrowableException e )
{
if (_LOG.isWarning())
_LOG.warning(e.getMessage());
return;
}
if (renderer != null)
{
// See if we need to push/pop ourselves. This should only
// happen in two cases:
// - We're the root of the tree.
// - We're a private bean, and a Renderer called render() directly
// instead of using composite widgets.
boolean pushAndPop = (context.getRenderedAncestorNode(0) != dataNode);
if (pushAndPop)
{
context.pushChild(dataNode, null, -1);
context.pushRenderedChild(context, dataNode);
}
try
{
renderer.render(context, dataNode);
}
// Annotate all exceptions thrown by UIX to indicate
// which component is the guilty one
catch (RuntimeException re)
{