private void removeProcessor() {
        final Selection<ProcessorListRow> selection = processorListPresenter.getSelectionModel().getSelection();
        if (selection != null && selection.getSelectedItems() != null) {
            final List<ProcessorFilterRow> rows = selection
                    .getSelectedItems()
                    .stream()
                    .filter(s -> s instanceof ProcessorFilterRow)
                    .map(s -> (ProcessorFilterRow) s)
                    .collect(Collectors.toList());
            if (rows.size() > 0) {
                String message = "Are you sure you want to delete the selected filter?";
                if (rows.size() > 1) {
                    message = "Are you sure you want to delete the selected filters?";
                }
                ConfirmEvent.fire(this, message, result -> {
                    if (result) {
                        final CountDownAndRun countDownAndRun = new CountDownAndRun(rows.size(), () ->
                                processorListPresenter.refresh());
                        for (final ProcessorFilterRow row : rows) {
                            restFactory
                                    .create(PROCESSOR_FILTER_RESOURCE)
                                    .method(res -> res.delete(row.getProcessorFilter().getId()))
                                    .onSuccess(res ->
                                            countDownAndRun.countdown())
                                    .onFailure(new DefaultErrorHandler(this, () ->
                                            countDownAndRun.countdown()))
                                    .taskMonitorFactory(this)
                                    .exec();
                        }
                    }
                });
            }
        }
    }
Make a copy of the currently selected processor
stroom-core-client/src/main/java/stroom/processor/client/presenter/ProcessorPresenter.java