if (!isRowAvailable()) {
break;
}
// <MOD-4>
CustomRowRenderingInfo customRowRenderingInfo = customRowRenderingInfos.get(rowIndex);
// </MOD-4>
int colIndex = 0;
List columnsForProcessing = getColumnsForProcessing(); // <MOD-3/> line added
for (Iterator it = columnsForProcessing.iterator(); it.hasNext(); colIndex++) { // <MOD-3/> getChildren().iterator() was here
UIComponent child = (UIComponent) it.next();
if (child instanceof UIColumn) {
if (!child.isRendered()) {
//Column is not visible
continue;
}
// <MOD-4>
if (customRowRenderingInfo != null && customRowRenderingInfo.getCustomCellRenderingInfo(colIndex) != null) {
continue;
}
// </MOD-4>
// <MOD-5>
List<UIComponent> colChildren;
Runnable restoreVariables = null;
if (child instanceof DynamicCol) {
DynamicCol dynamicCol = (DynamicCol) child;
restoreVariables = dynamicCol.enterComponentContext();
colChildren = dynamicCol.getChildrenForProcessing();
} else
colChildren = child.getChildren();
// </MOD-5>
for (UIComponent columnChild : colChildren) {// <MOD-5/> changed "child.getChildren()" -> "colChildren"
process(context, columnChild, processAction);
}
// <MOD-5>
if (child instanceof DynamicCol)
if (restoreVariables != null) restoreVariables.run();
// </MOD-5>
}
}
// <MOD-4>
if (customRowRenderingInfo != null) {
List<UIComponent> a4jSupportComponents = customRowRenderingInfo.getA4jSupportComponentsForThisRow(customRows);
for (UIComponent a4jSupportComponent : a4jSupportComponents) {
process(context, a4jSupportComponent, processAction);
}
for (int i = 0, count = columnsForProcessing.size(); i < count; i++) {
CustomCellRenderingInfo customCellRenderingInfo = customRowRenderingInfo.getCustomCellRenderingInfo(i);
if (customCellRenderingInfo == null || (!(customCellRenderingInfo instanceof CustomContentCellRenderingInfo)))
continue;
Cell customCell = ((CustomContentCellRenderingInfo) customCellRenderingInfo).findTableCell(customRows);
if (customCell != null)
process(context, customCell, processAction);