private void confirmSelection(final String actionType, final Runnable runnable) {
        // TODO For select ALL we get three confirm dialogs, else two.
        //  Not sure we need the initial one, just the summary one with the useful data in it.
        final Selection<Long> selection = getSelection();
        if (!selection.isMatchNothing()) {
            ConfirmEvent.fire(this,
                    "Are you sure you want to " + actionType + " the selected items?",
                    confirm -> {
                        if (confirm) {
                            if (selection.isMatchAll()) {
                                ConfirmEvent.fireWarn(AbstractMetaListPresenter.this,
                                        "You have clicked the select all checkbox.  " +
                                        "If you continue Stroom will " +
                                        actionType + " all items that match the filter, not just those " +
                                        "visible on screen.\n\nAre you sure you want to continue?",
                                        confirm1 -> {
                                            if (confirm1) {
                                                runnable.run();
                                            }
                                        });
                            } else {
                                runnable.run();
                            }
                        }
                    });
        } else {
            AlertEvent.fireError(
                    AbstractMetaListPresenter.this,
                    "You have not selected any items",
                    null);
        }
    }
@return The effective criteria taking into account the active filter and any
row selections.
stroom-core-client/src/main/java/stroom/data/client/presenter/AbstractMetaListPresenter.java