@Override
  public void uiDataSnapshot(@NotNull DataSink sink) {
    List<FragmentNode> selectedNodes = myTree.getSelectedNodes();
    sink.set(ExclusionHandler.EXCLUSION_HANDLER, myExclusionHandler);
    sink.lazy(CommonDataKeys.NAVIGATABLE, () -> {
      if (selectedNodes.size() != 1) return null;
      return Optional.ofNullable(selectedNodes.get(0))
        .map(FragmentNode::getNavigatable)
        .orElse(null);
    });
    sink.lazy(CommonDataKeys.NAVIGATABLE_ARRAY, () -> {
      if (selectedNodes.isEmpty()) return null;
      return StreamEx.of(selectedNodes)
        .map(FragmentNode::getNavigatable)
        .nonNull()
        .toArray(Navigatable[]::new);
    });
  }
@Override
  public void uiDataSnapshot(@NotNull DataSink sink)