private void initTableColumns() {
        dataGrid.addColumn(
                DataGridUtil.updatableTickBoxColumnBuilder(TickBoxState.createTickBoxFunc(ContentTemplate::isEnabled))
                        .enabledWhen(ContentTemplate::isEnabled)
                        .centerAligned()
                        .withFieldUpdater((index, contentTemplate, tickBoxState) -> {
                            if (enabledStateHandler != null) {
                                enabledStateHandler.accept(contentTemplate, tickBoxState.toBoolean());
                            }
                        })
                        .build(),
                DataGridUtil.headingBuilder("Enabled")
                        .withToolTip("Whether the template will be included for matching on data receipt.")
                        .centerAligned()
                        .build(),
                ColumnSizeConstants.ENABLED_COL);

        dataGrid.addColumn(
                DataGridUtil.columnBuilder(
                                DataGridUtil.toStringFunc(ContentTemplate::getTemplateNumber),
                                TextCell::new)
                        .enabledWhen(ContentTemplate::isEnabled)
                        .rightAligned()
                        .build(),
                DataGridUtil.headingBuilder("Template No.")
                        .rightAligned()
                        .build(),
                100);

        dataGrid.addResizableColumn(
                DataGridUtil.textColumnBuilder(ContentTemplate::getName)
                        .enabledWhen(ContentTemplate::isEnabled)
                        .build(),
                DataGridUtil.headingBuilder("Name")
                        .withToolTip("The name of the template.")
                        .build(),
                200);

//        dataGrid.addResizableColumn(
//                DataGridUtil.textColumnBuilder(ContentTemplate::getDescription)
//                        .enabledWhen(ContentTemplate::isEnabled)
//                        .build(),
//                DataGridUtil.headingBuilder("Description")
//                        .withToolTip("The description of the template.")
//                        .build(),
//                200);

        dataGrid.addResizableColumn(
                DataGridUtil.textColumnBuilder(DataGridUtil.toStringFunc(ContentTemplate::getTemplateType))
                        .enabledWhen(ContentTemplate::isEnabled)
                        .build(),
                DataGridUtil.headingBuilder("Type")
                        .withToolTip("The type of content to create.")
                        .build(),
                160);

        final DocRefCell.Builder<ContentTemplate> docRefCellBuilder =
                new DocRefCell.Builder<ContentTemplate>()
                        .eventBus(getEventBus())
                        .docRefFunction(row ->
                                NullSafe.get(row, ContentTemplate::getPipeline))
                        .showIcon(true);
        dataGrid.addResizableColumn(
                DataGridUtil.docRefColumnBuilder(docRefCellBuilder)
                        .enabledWhen(ContentTemplate::isEnabled)
                        .build(),
                DataGridUtil.headingBuilder("Pipeline")
                        .withToolTip("The pipeline to use as a template for creating content.")
                        .build(),
                300);

        dataGrid.addColumn(
                DataGridUtil.columnBuilder(
                                DataGridUtil.toStringFunc(ContentTemplate::getProcessorPriority),
                                TextCell::new)
                        .enabledWhen(ContentTemplate::isEnabled)
                        .rightAligned()
                        .build(),
                DataGridUtil.headingBuilder("Priority")
                        .withToolTip("The priority that will be assigned to the pipeline processor on creation.")
                        .rightAligned()
                        .build(),
                100);

        dataGrid.addColumn(
                DataGridUtil.columnBuilder(
                                DataGridUtil.toStringFunc(ContentTemplate::getProcessorMaxConcurrent),
                                TextCell::new)
                        .enabledWhen(ContentTemplate::isEnabled)
                        .rightAligned()
                        .build(),
                DataGridUtil.headingBuilder("Max Concurrent")
                        .withToolTip("The maximum number of concurrent tasks that will be assigned to the pipeline " +
                                     "processor on creation.")
                        .rightAligned()
                        .build(),
                130);

//        dataGrid.addAutoResizableColumn(
//                DataGridUtil.textColumnBuilder(DataGridUtil.toStringFunc(ContentTemplate::getExpression))
//                        .enabledWhen(ContentTemplate::isEnabled)
//                        .build(),
//                DataGridUtil.headingBuilder("Expression")
//                        .withToolTip("The expression to match received data with. " +
//                                     "Template expressions are tested in Template No. order, lowest first.")
//                        .build(),
//                100);

        dataGrid.addColumn(
                DataGridUtil.columnBuilder(
                                Function.identity(),
                                () -> new ActionCell<>(this::showActionMenu))
                        .enabledWhen(ContentTemplate::isEnabled)
                        .centerAligned()
                        .build(),
                "",
                24);

        dataGrid.addEndColumn(new EndColumn<>());
    }
Add the columns to the table.
stroom-core-client/src/main/java/stroom/receive/content/client/presenter/ContentTemplateListPresenter.java