@Override
      public @NotNull Iterable<? extends Wrapper> iterateAllChanges(@NotNull ChangesTree tree) {
        Set<ShelvedChangeList> changeLists =
          VcsTreeModelData.selected(tree).iterateUserObjects(ShelvedWrapper.class)
            .map(wrapper -> wrapper.getChangeList())
            .toSet();

        return VcsTreeModelData.all(tree).iterateRawNodes()
          .filter(node -> node instanceof ShelvedListNode && changeLists.contains(((ShelvedListNode)node).getList()))
          .flatMap(node -> VcsTreeModelData.allUnder(node).iterateUserObjects(ShelvedWrapper.class));
      }
@Override
      public @NotNull Iterable<? extends Wrapper> iterateAllChanges(@NotNull ChangesTree tree)