public TableSettings resolveTableSettings() {
        final TableComponentSettings tableComponentSettings = getTableComponentSettings();
        final TableComponentSettings.Builder builder = tableComponentSettings.copy();

        // Resolve parameters in columns.
        final DashboardContext dashboardContext = getDashboardContext();
        final List<Column> columnsIn = tableComponentSettings.getColumns();
        if (columnsIn != null) {
            List<Column> columnsOut = new ArrayList<>(columnsIn.size());
            columnsIn.forEach(column -> {
                final Column.Builder columnBuilder = column.copy();
                if (column.getExpression() != null) {
                    columnBuilder.expression(ParamUtil.replaceParameters(column.getExpression(),
                            dashboardContext,
                            true));
                }
                if (column.getFilter() != null) {
                    columnBuilder.filter(new IncludeExcludeFilter(
                            ParamUtil.replaceParameters(column.getFilter().getIncludes(),
                                    dashboardContext,
                                    true),
                            ParamUtil.replaceParameters(column.getFilter().getExcludes(),
                                    dashboardContext,
                                    true)));
                }
                if (column.getColumnFilter() != null) {
                    columnBuilder.columnFilter(new ColumnFilter(ParamUtil
                            .replaceParameters(column.getColumnFilter().getFilter(),
                                    dashboardContext,
                                    true)));
                }
                columnsOut.add(columnBuilder.build());
            });
            builder.columns(columnsOut);
        }

        // Resolve parameters in conditional formatting.
        final List<ConditionalFormattingRule> rulesIn = tableComponentSettings.getConditionalFormattingRules();
        if (rulesIn != null) {
            List<ConditionalFormattingRule> rulesOut = new ArrayList<>(rulesIn.size());
            rulesIn.forEach(rule -> {
                rulesOut.add(rule.copy().expression(dashboardContext.replaceExpression(rule.getExpression(),
                        true)).build());
            });
            builder.conditionalFormattingRules(rulesOut);
        }

        ExpressionOperator aggregateFilter = currentSelectionFilter;
        if (currentSelectionFilter != null) {
            aggregateFilter = dashboardContext.replaceExpression(aggregateFilter, true);
        }

        return builder.buildTableSettings().copy().aggregateFilter(aggregateFilter).build();
    }
Get the table component settings and perform parameter replacement on columns etc.

@return Resolved table settings.
stroom-core-client/src/main/java/stroom/dashboard/client/table/TablePresenter.java