Object (@NotNull String dataId) { if (CommonDataKeys.PROJECT.is(dataId)) { return myProject; } else if (USAGE_VIEW_KEY.is(dataId)) { return UsageViewImpl.this; } else if (PlatformCoreDataKeys.HELP_ID.is(dataId)) { return HELP_ID; } else if (PlatformDataKeys.COPY_PROVIDER.is(dataId)) { return myCopyProvider; } else if (ExclusionHandler.EXCLUSION_HANDLER.is(dataId)) { return myExclusionHandler; } else if (PlatformDataKeys.EXPORTER_TO_TEXT_FILE.is(dataId)) { return myTextFileExporter; } else if (CommonDataKeys.NAVIGATABLE_ARRAY.is(dataId)) { return ContainerUtil.mapNotNull(selectedNodes(), n-> ObjectUtils.tryCast(TreeUtil.getUserObject(n), Navigatable.class)) .toArray(Navigatable.EMPTY_NAVIGATABLE_ARRAY); } else if (USAGE_TARGETS_KEY.is(dataId)) { var targets = ContainerUtil.mapNotNull( selectedNodes(), o -> o instanceof UsageTargetNode ? ((UsageTargetNode)o).getTarget() : null ); return targets.isEmpty() ? null : targets.toArray(UsageTarget.EMPTY_ARRAY); } else { DataProvider selectedProvider = ObjectUtils.tryCast(TreeUtil.getUserObject(getSelectedNode()), DataProvider.class); if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) { List<TreeNode> selectedNodes = allSelectedNodes(); DataProvider selectedBgtProvider = selectedProvider == null ? null : PlatformCoreDataKeys.BGT_DATA_PROVIDER.getData(selectedProvider); return CompositeDataProvider.compose(slowId -> getSlowData(slowId, selectedNodes), selectedBgtProvider); } Object nodeData = selectedProvider != null ? selectedProvider.getData(dataId) : null; if (nodeData != null) { return DataValidators.validOrNull(nodeData, dataId, selectedProvider); } } return null; }