if (model.getRendererClass(rowIndex) != null) { return;
if (dataModel.getRendererClass(child.getRowIndex()) != null) { rendererPresent = true; break; getRendererClass(child .getRowIndex()));
/** * Updates the bean using the table data model's {@link TableModel#setValueAt(Object, List, int)} method. This * method only updates the data for the currently set row ids. */ private void updateBeanValueForRenderedRows() { WTableRowRenderer rowRenderer = (WTableRowRenderer) repeater.getRepeatedComponent(); TableModel model = getTableModel(); int index = 0; List<RowIdWrapper> wrappers = repeater.getBeanList(); int columnCount = getColumnCount(); for (RowIdWrapper wrapper : wrappers) { UIContext rowContext = repeater.getRowContext(wrapper, index++); List<Integer> rowIndex = wrapper.getRowIndex(); Class<? extends WComponent> expandRenderer = model.getRendererClass(rowIndex); if (expandRenderer == null) { // Process Columns for (int col = 0; col < columnCount; col++) { // Check if this cell is editable if (model.isCellEditable(rowIndex, col)) { updateBeanValueForColumnInRow(rowRenderer, rowContext, rowIndex, col, model); } } } else if (model.isCellEditable(rowIndex, -1)) { // Check if this expanded row is editable updateBeanValueForRowRenderer(rowRenderer, rowContext, expandRenderer); } } }
/** * Retrieves the renderer class for a given row. * * @return the renderer class for a given row (if it's an expanded row), otherwise null. */ private Class<? extends WComponent> getRowRendererClass() { RowIdWrapper wrapper = getCurrentRowIdWrapper(); if (wrapper != null) { return table.getTableModel().getRendererClass(wrapper.getRowIndex()); } return null; }