if (!isExportMode) {
if (_showColumnAttributeLabelOnRowBinding != null || _useRowDetailExpansionControlBinding != null) {
result.add(_RowAttributeExpandoColumn);
}
else {
Column extra = _dataTable.findColumnForKey("PostRowFieldColumn");
if (extra != null) result.add(extra);
}
}
_firstAttributeColumnIndex = result.size();
Set visibleColumns = _dataTable.visibleColumnSet();
// TODO: add column if displaying _rowAttributeFields
// TODO: mask for visibility!!!
_columnEdgeRoot.createColumnsForLeafLevel(result);
Set used = new HashSet();
ListUtil.addToCollection(used, _rowFields);
ListUtil.addToCollection(used, _columnFields);
ListUtil.addToCollection(used, _allColumnAttributes().toArray());
// All other visible fields are rowAttributeFields
_optionalRowAttributes = ListUtil.list();
List rowAttributes = ListUtil.list();
List allColumns = _dataTable.columns();
int count = allColumns.size();
for (int i=0; i < count; i++) {
Column col = (Column)allColumns.get(i);
if (!used.contains(col)) {
col.prepare(_dataTable);
if (col.isOptional(_dataTable)) _optionalRowAttributes.add(col);
if (visibleColumns.contains(col)) rowAttributes.add(col);
}
}
_rowAttributeFields = createColumnArray(rowAttributes);