String menuId, String formName)
throws IOException {
for (int i = 0; i < items.length; i++) {
NavigationMenuItem item = items[i];
Object tempObj = null;
UINavigationMenuItem uiNavMenuItem = null;
if (i < uiNavMenuItemList.size()) {
tempObj = uiNavMenuItemList.get(i);
}
if (tempObj != null) {
if (tempObj instanceof UINavigationMenuItem) {
uiNavMenuItem = (UINavigationMenuItem) tempObj;
}
}
if (! item.isRendered()) {
continue;
}
if (i > 0) {
writer.append(",\n");
}
if (item.isSplit()) {
writer.append("_cmSplit,");
if (item.getLabel().equals("0")) {
continue;
}
}
writer.append("[");
if (item.getIcon() != null) {
String iconSrc = context.getApplication().getViewHandler().getResourceURL(context, item.getIcon());
writer.append("'<img src=\"");
writer.append(context.getExternalContext().encodeResourceURL(iconSrc));
writer.append("\"/>'");
}
else {
writer.append("null");
}
writer.append(", '");
if (item.getLabel() != null) {
writer.append(getString(context, item.getLabel()));
}
writer.append("', ");
StringBuffer actionStr = new StringBuffer();
if ((item.getAction() != null || item.getActionListener() != null) && ! item.isDisabled()) {
actionStr.append("'");
actionStr.append(menuId);
if (item.getActionListener() != null) {
actionStr.append(":L]");
actionStr.append(item.getActionListener());
if (uiNavMenuItem != null && uiNavMenuItem.getItemValue() != null) {
actionStr.append(';');
actionStr.append(getString(context, uiNavMenuItem.getItemValue()));
}
else if (item.getValue() != null) {
actionStr.append(';');
actionStr.append(getString(context, item.getValue()));
}
}
if (item.getAction() != null) {
actionStr.append(":A]");
actionStr.append(item.getAction());
if (uiNavMenuItem != null) {
encodeValueBinding(actionStr, uiNavMenuItem, item);
}
}
actionStr.append("'");
writer.append(actionStr.toString());
}
else {
writer.append("null");
}
writer.append(", '");
// Change here to allow the use of non dummy form.
writer.append(formName);
writer.append("', null");
if (item.isRendered() && ! item.isDisabled()) {
// render children only if parent is visible/enabled
NavigationMenuItem[] menuItems = item.getNavigationMenuItems();
if (menuItems != null && menuItems.length > 0) {
writer.append(",");
if (uiNavMenuItem != null) {
encodeNavigationMenuItems(context, writer, menuItems,
uiNavMenuItem.getChildren(), menuId, formName);
}
else {
encodeNavigationMenuItems(context, writer, menuItems,
new ArrayList(1), menuId, formName);
}