question: private void updatePercentagesAndAdjustmentWeights ( int span ) { adjustmentWeights = new int [ columnRequirements . length ] ; for ( int i = 0 ; i < columnRequirements . length ; i ++ ) { adjustmentWeights [ i ] = 0 ; } if ( relativeCells ) { percentages = new int [ columnRequirements . length ] ; } else { percentages = null ; } int nrows = getRowCount ( ) ; for ( int rowIndex = 0 ; rowIndex < nrows ; rowIndex ++ ) { RowView row = getRow ( rowIndex ) ; int col = 0 ; int ncells = row . getViewCount ( ) ; for ( int cell = 0 ; cell < ncells ; cell ++ , col ++ ) { View cv = row . getView ( cell ) ; for ( ; row . isFilled ( col ) ; col ++ ) ; int rowSpan = getRowsOccupied ( cv ) ; int colSpan = getColumnsOccupied ( cv ) ; AttributeSet a = cv . getAttributes ( ) ; CSS . LengthValue lv = ( CSS . LengthValue ) a . getAttribute ( CSS . Attribute . WIDTH ) ; if ( lv != null ) { int len = ( int ) ( lv . getValue ( span ) / colSpan + 0.5f ) ; for ( int i = 0 ; i < colSpan ; i ++ ) { if ( lv . isPercentage ( ) ) { percentages [ col + i ] = Math . max ( percentages [ col + i ] , len ) ; adjustmentWeights [ col + i ] = Math . max ( adjustmentWeights [ col + i ] , WorstAdjustmentWeight ) ; } else { adjustmentWeights [ col + i ] = Math . max ( adjustmentWeights [ col + i ] , WorstAdjustmentWeight - 1 ) ; } } } col += colSpan - 1 ; } } }
target:  Update percentage adjustments if they are needed.