code: public Object addGroup( String display, String name, Object parent )
  	{
  		int row = display != null ? table.getRowCount() : -1;
  
  		// create the new group
  		GroupInfo parentInfo = (GroupInfo) parent;
  		GroupInfo info = new GroupInfo( name, parentInfo, row );
  
  		// display the new group
  		if( display != null && row >= 0 )
  		{
  			table.setHTML( row, 0, display );
  			table.getCellFormatter().getElement( row, 0 ).getStyle().setVerticalAlign( VerticalAlign.TOP );
  			table.getCellFormatter().getElement( row, 0 ).setAttribute( "colSpan", "2" );
  			table.getCellFormatter().getElement( row, 0 ).getStyle().setPaddingTop( 25, Unit.PX );
  			table.getCellFormatter().getElement( row, 0 ).getStyle().setPaddingBottom( 10, Unit.PX );
  			table.getCellFormatter().getElement( row, 0 ).getStyle().setFontWeight( FontWeight.BOLD );
  		}
  
  		return info;
  	}
docs: /*
  HashMap<FieldInfo,HTMLStream> fieldCommentsSlots = new HashMap<FieldInfo,
  HTMLStream>(); public AcceptsOneWidget addCommentSlot( Object field ) {
  FieldInfo info = (FieldInfo)field;
  
  HTMLStream stream = fieldCommentsSlots.get( info ); if( stream == null )
  { stream = new HTMLStream(); fieldCommentsSlots.put( info, stream );
  
  table.setWidget( info.row, 3, stream );
  table.getCellFormatter().getElement( info.row, 3
  ).getStyle().setFontWeight( FontWeight.NORMAL ); }
  
  SimplePanel slot = new SimplePanel(); stream.addLeft( slot );
  
  return slot; }