@Override
  public void uiDataSnapshot(@NotNull DataSink sink) {
    super.uiDataSnapshot(sink);
    sink.set(ExternalSystemDataKeys.VIEW, this);
    sink.set(PlatformCoreDataKeys.HELP_ID, "reference.toolwindows.gradle");
    sink.set(CommonDataKeys.PROJECT, myProject);
    sink.set(ExternalSystemDataKeys.EXTERNAL_SYSTEM_ID, myExternalSystemId);
    sink.set(ExternalSystemDataKeys.UI_AWARE, myUiAware);
    sink.set(ExternalSystemDataKeys.PROJECTS_TREE, myTree);
    sink.set(ExternalSystemDataKeys.NOTIFICATION_GROUP, myNotificationGroup);

    //noinspection rawtypes
    List<ExternalSystemNode> selection = getSelectedNodes(ExternalSystemNode.class);
    ProjectNode projectNode = ObjectUtils.tryCast(ContainerUtil.getOnlyItem(selection), ProjectNode.class);

    sink.set(ExternalSystemDataKeys.SELECTED_NODES, selection);
    sink.set(ExternalSystemDataKeys.SELECTED_PROJECT_NODE, projectNode);

    sink.set(CommonDataKeys.VIRTUAL_FILE, selection.isEmpty() ? null : selection.get(0).getVirtualFile());
    sink.set(CommonDataKeys.VIRTUAL_FILE_ARRAY, VfsUtilCore.toVirtualFileArray(
      JBIterable.from(selection).filterMap(o -> o.getVirtualFile()).toList()));
    sink.set(CommonDataKeys.NAVIGATABLE_ARRAY, JBIterable.from(selection)
      .filterMap(o -> o.getNavigatable()).toArray(Navigatable.EMPTY_NAVIGATABLE_ARRAY));

    sink.lazy(Location.DATA_KEY, () -> extractLocation(selection));
  }
@Override
  public void uiDataSnapshot(@NotNull DataSink sink)