@Override
  public Object getData(@NotNull String dataId) {
    if (PlatformCoreDataKeys.HELP_ID.is(dataId)) {
      return HELP_ID;
    }
    if (DATA_KEY.is(dataId)) {
      return this;
    }
    if (ExclusionHandler.EXCLUSION_HANDLER.is(dataId)) {
      return myExclusionHandler;
    }
    if (PlatformCoreDataKeys.SELECTED_ITEM.is(dataId)) {
      TreePath[] paths = myTree.getSelectionPaths();
      if (paths == null || paths.length == 0) return null;
      return paths[0].getLastPathComponent();
    }
    if (PlatformCoreDataKeys.SELECTED_ITEMS.is(dataId)) {
      TreePath[] paths = myTree.getSelectionPaths();
      if (paths == null || paths.length == 0) return null;
      return ContainerUtil.map2Array(paths, p -> p.getLastPathComponent());
    }
    if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
      TreePath[] paths = myTree.getSelectionPaths();
      if (paths == null || paths.length == 0) return null;
      return (DataProvider)slowId -> getSlowData(slowId, paths);
    }
    return null;
  }
@Override
  public Object getData(@NotNull String dataId)