Promise<Void> (@NotNull Object service, @NotNull Class<?> contributorClass) { AsyncPromise<Void> result = new AsyncPromise<>(); // Ensure model is updated, then iterate over service views on EDT in order to find view with service and select it. myModel.getInvoker().invoke(() -> AppUIUtil.invokeLaterIfProjectAlive(myProject, () -> promiseFindView(contributorClass, result, serviceView -> serviceView.expand(service, contributorClass), null))); return result; }