public void show(final TablePresenter tablePresenter,
                     final Column column,
                     final BiConsumer<Column, Column> columnChangeConsumer) {
        this.tablePresenter = tablePresenter;
        this.column = column;
        this.columnChangeConsumer = columnChangeConsumer;

        if (column.getExpression() != null) {
            editorPresenter.setText(column.getExpression());
        } else {
            editorPresenter.setText("");
        }
        final SearchModel searchModel = tablePresenter.getCurrentSearchModel();
        if (searchModel != null) {
            final IndexLoader indexLoader = searchModel.getIndexLoader();
            if (indexLoader != null) {
                queryHelpPresenter.setDataSourceRef(indexLoader.getLoadedDataSourceRef());
            }
        }

        final PopupSize popupSize = PopupSize.resizable(800, 700);
        ShowPopupEvent.builder(this)
                .popupType(PopupType.OK_CANCEL_DIALOG)
                .popupSize(popupSize)
                .caption("Set Expression For '" + column.getName() + "'")
                .onShow(this)
                .onHideRequest(this)
                .onHide(this)
                .fire();
    }
This is the presenter for editing the function expression in a dashboard column
stroom-core-client/src/main/java/stroom/dashboard/client/table/ColumnFunctionEditorPresenter.java