/**
   * Adds a column to be rendered at the right side of the table.
   *
   * @param column The column to add
   * @param component The component
   * @param renderable The renderer
   * @param position where to put the column - at the right or left side
   */
  public void addColumn(
      final IColumn column, Component component, final IRenderable renderable, Position position) {
    if (component != null) {
      add(component);
    }

    if (column.isVisible()) {
      if (position == Position.APPEND) {
        columns.add(column);
        components.add(component);
        renderables.add(renderable);
      } else {
        columns.add(0, column);
        components.add(0, component);
        renderables.add(0, renderable);
      }
    }
  }