getModelAdaptHelper( ).markDirty( true );
	public void insertRow( int rowNumber, int parentRowNumber )			throws SemanticException	{		transStar( TRANS_LABEL_INSERT_ROW );		Assert.isLegal( rowNumber != 0 );		int realRowNumber = rowNumber > 0				? parentRowNumber + rowNumber				: parentRowNumber + rowNumber + 1;		int shiftPos = rowNumber > 0 ? rowNumber : rowNumber + 1;		RowHandle row = (RowHandle) getRow( parentRowNumber );		RowHandleAdapter adapt = HandleAdapterFactory.getInstance( )				.getRowHandleAdapter( row );		RowHandle copy = (RowHandle) adapt.copy( );		TableHandleAdapter.RowUIInfomation rowInfo = getRowInfo( row );		List rowList = rowInfo.getAllChildren( );		int rowSize = rowList.size( );		for ( int i = 0; i < rowSize; i++ )		{			CellHandle parentCell = (CellHandle) rowList.get( i );			CellHandle cell = getCellHandleCopy( parentCell );			copy.getSlot( RowHandle.CONTENT_SLOT ).add( cell );		}		SlotHandle parentHandle = row.getContainerSlotHandle( );		parentHandle.add( ( copy ) );		int pos = parentHandle.findPosn( row );		parentHandle.shift( copy, pos + shiftPos );		RowHandleAdapter copyAdapt = HandleAdapterFactory.getInstance( )				.getRowHandleAdapter( copy );		List copyChildren = copyAdapt.getChildren( );		TableHandleAdapter.RowUIInfomation info = getRowInfo( copy );		List list = info.getAllChildren( );		List temp = new ArrayList( );		int size = list.size( );		List hasAdjust = new ArrayList( );		for ( int i = 0; i < size; i++ )		{			Object fillCell = list.get( i );			CellHandleAdapter cellAdapt = HandleAdapterFactory.getInstance( )					.getCellHandleAdapter( fillCell );			if ( cellAdapt.getRowNumber( ) != realRowNumber )			{				if ( !hasAdjust.contains( fillCell ) )				{					cellAdapt.setRowSpan( cellAdapt.getRowSpan( ) + 1 );					hasAdjust.add( fillCell );				}				temp.add( new Integer( i ) );			}		}		int copyRowSize = copyChildren.size( );		for ( int i = 0; i < copyRowSize; i++ )		{			if ( temp.contains( new Integer( i ) ) )			{				( (CellHandle) copyChildren.get( i ) ).drop( );			}		}		transEnd( );	}