void (@NotNull DataContext dataContext, @Nullable Runnable callback) { if (LaterInvocator.isInModalContext() || PlatformCoreDataKeys.CONTEXT_COMPONENT.getData(dataContext) instanceof NavBarPanel) { return; } DataContext asyncDataContext = Utils.createAsyncDataContext(dataContext); ReadAction.nonBlocking(() -> createModel(asyncDataContext)) .expireWith(myProject) .finishOnUiThread(ModalityState.current(), model -> { setModelWithUpdate(model); if (callback != null) callback.run(); }) .submit(ourExecutor); }