private void updateBeanValueForColumnInRow ( final WTableRowRenderer rowRenderer , final UIContext rowContext , final List < Integer > rowIndex , final int col , final TableModel model ) { // The actual component is wrapped in a renderer wrapper, so we have to fetch it from that WComponent renderer = ( ( Container ) rowRenderer . getRenderer ( col ) ) . getChildAt ( 0 ) ; UIContextHolder . pushContext ( rowContext ) ; try { // If the column is a Container then call updateBeanValue to let the column renderer and its children update // the "bean" returned by getValueAt(row, col) if ( renderer instanceof Container ) { WebUtilities . updateBeanValue ( renderer ) ; } else if ( renderer instanceof DataBound ) { // Update Databound renderer Object oldValue = model . getValueAt ( rowIndex , col ) ; Object newValue = ( ( DataBound ) renderer ) . getData ( ) ; if ( ! Util . equals ( oldValue , newValue ) ) { model . setValueAt ( newValue , rowIndex , col ) ; } } } finally { UIContextHolder . popContext ( ) ; } }
Update the column in the row .