regionLM.setBandContent( band );
regionLM.initialize( band, null );
	protected void addCaption( String caption )	{		if ( caption == null || "".equals( caption ) )		{			return;		}		IReportContent report = tableContent.getReportContent( );		ILabelContent captionLabel = report.createLabelContent( );		captionLabel.setText( caption );		captionLabel.getStyle( ).setProperty( IStyle.STYLE_TEXT_ALIGN,				IStyle.CENTER_VALUE );		ICellContent cell = report.createCellContent( );		cell.setColSpan( tableContent.getColumnCount( ) );		cell.setRowSpan( 1 );		cell.setColumn( 0 );		captionLabel.setParent( cell );		cell.getChildren( ).add( captionLabel );		IRowContent row = report.createRowContent( );		row.getChildren( ).add( cell );		cell.setParent( row );		ITableBandContent band = report.createTableBandContent( );		band.getChildren( ).add( row );		row.setParent( band );		band.setParent( tableContent );		PDFLayoutEngineContext con = new PDFLayoutEngineContext( context				.getLayoutEngine( ) );		con.setFactory( context.getFactory( ) );		con.setFormat( context.getFormat( ) );		con.setAllowPageBreak( false );		PDFTableRegionLM regionLM = new PDFTableRegionLM( con, content,				layoutInfo );		regionLM.setBandContent( band );		regionLM.layout( );		TableArea tableRegion = (TableArea) content				.getExtension( IContent.LAYOUT_EXTENSION );		if ( tableRegion != null				&& tableRegion.getHeight( ) < this.getMaxAvaHeight( )						- currentBP )		{			// add to root			Iterator iter = tableRegion.getChildren( );			while ( iter.hasNext( ) )			{				RowArea rowArea = (RowArea) iter.next( );				root.addChild( rowArea );				rowArea.setPosition( 0, currentBP );				setCurrentBP( currentBP + rowArea.getHeight( ) );				repeatRowCount++;			}		}		content.setExtension( IContent.LAYOUT_EXTENSION, null );	}