void (@NotNull DataContext dataContext) { Project project = dataContext.getData(CommonDataKeys.PROJECT); if (project == null) return; List<ServiceViewItem> selectedItems = ServiceViewActionProvider.getSelectedItems(dataContext); List<Pair<ServiceViewItem, Runnable>> items = ContainerUtil.mapNotNull(selectedItems, item -> { Runnable remover = item.getViewDescriptor().getRemover(); return remover == null ? null : Pair.create(item, remover); }); items = filterChildren(items); if (items.isEmpty()) return; if (Messages.showYesNoDialog(project, ExecutionBundle.message("service.view.delete.confirmation", ExecutionBundle.message("service.view.items", items.size())), CommonBundle.message("button.delete"), Messages.getWarningIcon()) != Messages.YES) { return; } for (Pair<ServiceViewItem, Runnable> item : items) { item.second.run(); } }