Object (@NotNull @NonNls String dataId) { if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) { Object selection = myPsiTree.hasFocus() ? TreeUtil.getLastUserObject(myPsiTree.getSelectionPath()) : myRefs.hasFocus() ? myRefs.getSelectedValue() : null; return selection == null ? null : (DataProvider)slowId -> getSlowData(slowId, selection); } return null; }