@Nullable
  @Override
  public Object getData(@NotNull String id) {
    if (VcsDataKeys.CHANGES.is(id)) {
      List<CommitNode> commitNodes = getSelectedCommitNodes();
      return collectAllChanges(commitNodes).toArray(Change.EMPTY_CHANGE_ARRAY);
    }
    else if (VcsDataKeys.VCS_REVISION_NUMBERS.is(id)) {
      List<CommitNode> commitNodes = getSelectedCommitNodes();
      return ContainerUtil.map2Array(commitNodes, VcsRevisionNumber.class, commitNode -> {
        Hash hash = commitNode.getUserObject().getId();
        return new TextRevisionNumber(hash.asString(), hash.toShortString());
      });
    }
    else if (VcsDataKeys.VCS_COMMIT_SUBJECTS.is(id)) {
      List<CommitNode> commitNodes = getSelectedCommitNodes();
      return ContainerUtil.map2Array(commitNodes, String.class, commitNode -> commitNode.getUserObject().getSubject());
    }
    return null;
  }
@Nullable
  @Override
  public Object getData(@NotNull String id)