// we aren't stamping, but rather have explicitly defined children:
for(UIComponent child : (List<UIComponent>)component.getChildren())
{
if (child.isRendered())
{
UIXCommand navItem;
if (child instanceof UIXCommand)
{
navItem = (UIXCommand) child;
// collect the information needed to render this nav item:
_collectNavItemData(navItemData, navItem, -1, component);
}
else if(renderingHint == NavigationPaneRenderer._HINT_BAR ||
renderingHint == NavigationPaneRenderer._HINT_BUTTONS)
{
navItemData.addItemData(null);
nonNavItemList.add(child);
}
else
{
// we don't support a non-command child for other hints.
_LOG.severe("ILLEGAL_COMPONENT_HIERARCHY_UIXCOMMAND_EXPECTED");
return;
}
}
}
}
else
{
if (!(nodeStamp instanceof UIXCommand))
{
_LOG.severe("ILLEGAL_COMPONENT_HIERARCHY_UIXCOMMAND_EXPECTED");
return;
}
UIXCommand navStamp = (UIXCommand) nodeStamp;
// we are stamping the children:
// Save the current key
Object oldPath = component.getRowKey();
_setStartDepthPath(component,
((UIXNavigationLevel) component).getLevel());
int componentRowCount = component.getRowCount();
if (componentRowCount != 0)
{
int startIndex = component.getFirst();
int endIndex = TableUtils.getLast(component, startIndex);
for (int i = startIndex; i <= endIndex; i++)
{
component.setRowIndex(i);
if (navStamp.isRendered())
{
// collect the information needed to render this nav item:
_collectNavItemData(navItemData, navStamp, i, component);
}
}