+ PropertyUtil.getDimensionValue( style
+ getDimensionValue( style
	private int[] resolveColumnWidth( )	{		int[] colWidth = new int[columnNumber];		int colHasNoWidth = 0;		int colSum = 0;		for ( int j = 0; j < tableContent.getColumnCount( ); j++ )		{			IColumn column = (IColumn) tableContent.getColumn( j );			int columnWidth = PropertyUtil					.getDimensionValue( column.getWidth( ) );			if ( columnWidth > 0 )			{				colWidth[j] = columnWidth;				colSum += columnWidth;			}			else			{				colWidth[j] = -1;				colHasNoWidth++;			}		}		if ( colHasNoWidth == 0 )		{			tableWidth = colSum;			return colWidth;		}		tableWidth = PropertyUtil.getDimensionValue( tableContent.getWidth( ) );		int avaWidth = parent.getMaxAvaWidth( ) - parent.getCurrentIP( );		int parentMaxWidth = parent.getMaxAvaWidth( );		boolean isInline = PropertyUtil.isInlineElement( content );		if ( tableWidth == 0 )		{			// user do not set the width			if ( !isInline )			{				tableWidth = avaWidth;			}			else			{				if ( avaWidth > parentMaxWidth / 4 )				{					tableWidth = avaWidth;				}				else				{					tableWidth = parentMaxWidth;				}			}		}		else		{			if ( !isInline )			{				tableWidth = Math.min( tableWidth, avaWidth );			}			else			{				tableWidth = Math.min( tableWidth, parentMaxWidth );			}		}		IStyle style = root.getStyle( );		int marginWidth = PropertyUtil.getDimensionValue( style				.getProperty( StyleConstants.STYLE_MARGIN_LEFT ) )				+ PropertyUtil.getDimensionValue( style						.getProperty( StyleConstants.STYLE_MARGIN_RIGHT ) );		// FIXME avawidth is not available		if ( marginWidth > tableWidth )		{			style.setProperty( StyleConstants.STYLE_MARGIN_LEFT,					IStyle.NUMBER_0 );			style.setProperty( StyleConstants.STYLE_MARGIN_RIGHT,					IStyle.NUMBER_0 );			marginWidth = 0;		}		tableWidth = tableWidth - marginWidth;		int delta = tableWidth - colSum;		if ( colHasNoWidth == columnNumber ) // all columns are set width		{			int dis = delta / columnNumber;			if ( delta != 0 )			{				for ( int i = 0; i < columnNumber; i++ )				{					colWidth[i] = dis;				}			}		}		else		{			if ( delta > 0 )			{				int leftColumnWidth = delta / colHasNoWidth;				for ( int i = 0; i < columnNumber; i++ )				{					if ( colWidth[i] < 0 )					{						colWidth[i] = leftColumnWidth;					}				}			}			else			{				// redistribute width for each column				int standardColumnWidth = tableWidth / columnNumber;				for ( int i = 0; i < columnNumber; i++ )				{					colWidth[i] = standardColumnWidth;				}			}		}		// enable visibility		for ( int i = 0; i < tableContent.getColumnCount( ); i++ )		{			IColumn column = tableContent.getColumn( i );			if ( isColumnHidden( column ) )			{				colWidth[i] = 0;			}		}		return colWidth;	}