if (borderData == null || borderData.length != (2 * colCount * rowCount + colCount + rowCount)) { return; }
	protected void paintFigure( Graphics graphics )	{		IFigure figure = source.getLayer( LayerConstants.PRIMARY_LAYER );		TableBorderHelper helper = ( (TableLayout) figure.getLayoutManager( ) ).getBorderHelper( );		if ( helper == null )		{			return;		}		borderData = helper.getBorderData( );		rowCount = source.getRowCount( );		colCount = source.getColumnCount( );		for ( int i = 0; i < rowCount; i++ )		{			int y = TableUtil.caleY( source, i + 1 );			int h = caleVisualHeight( i + 1 );			for ( int j = 0; j < colCount; j++ )			{				int bottomIndex = ( i + 1 ) * ( 2 * colCount + 1 ) + j;				int rightIndex = i * ( 2 * colCount + 1 ) + colCount + j + 1;				int topIndex = i * ( 2 * colCount + 1 ) + j;				int leftIndex = i * ( 2 * colCount + 1 ) + colCount + j;				int x = TableUtil.caleX( source, j + 1 );				int w = caleVisualWidth( j + 1 );				// Only need to draw the right/bottom edge for single line				// pattern.				//if ( j < colCount - 1 )				if ( j == 0 )				{					drawLeft( graphics, i, j, x, y, w, h, borderData[leftIndex] );				}				drawRight( graphics, i, j, x, y, w, h, borderData[rightIndex] );				//if ( i < rowCount - 1 )				if ( i == 0 )				{					drawTop( graphics, i, j, x, y, w, h, borderData[topIndex] );				}				drawBottom( graphics, i, j, x, y, w, h, borderData[bottomIndex] );			}		}	}