code: void addColumn(final WTableColumn column, final int columnIndex) {
  		WComponent renderer = column.getRenderer();
  
  		if (renderer == null) {
  			Class<? extends WComponent> rendererClass = column.getRendererClass();
  
  			if (!(BeanProviderBound.class.isAssignableFrom(rendererClass))
  					&& !(BeanBound.class.isAssignableFrom(rendererClass))
  					&& !(DataBound.class.isAssignableFrom(rendererClass))) {
  				throw new IllegalArgumentException(
  						"Column renderers must be BeanProvider-, Bean- or Data-Bound");
  			}
  
  			add(new RendererWrapper(this, rendererClass, columnIndex));
  		} else {
  			if (!(renderer instanceof BeanProviderBound) && !(renderer instanceof BeanBound)
  					&& !(renderer instanceof DataBound)) {
  				throw new IllegalArgumentException(
  						"Column renderers must be BeanProvider-, Bean- or Data-Bound");
  			}
  
  			add(new RendererWrapper(this, renderer, columnIndex));
  		}
  	}
docs: Adds a column to the renderer. This method is called by {@link WTable} to keep the renderer's and table's columns
  in sync.
  
  @param column the column to add.
  @param columnIndex the index of the column. Zero based.