@Override
    @NotNull
    public List<CommittedChangeList> filterChangeLists(@NotNull List<? extends CommittedChangeList> changeLists) {
      if ((!myFilterAlien.mySelected) && (!myFilterNotMerged.mySelected) && (!myFilterMerged.mySelected)) {
        return new ArrayList<>(changeLists);
      }

      final List<CommittedChangeList> result = new ArrayList<>();
      for (CommittedChangeList list : changeLists) {
        final ListMergeStatus status = getStatus(list, true);
        if (ListMergeStatus.REFRESHING.equals(status)) {
          result.add(list);
        }
        else if ((status == null) || ListMergeStatus.ALIEN.equals(status)) {
          if (!myFilterAlien.mySelected) {
            result.add(list);
          }
        }
        else if (ListMergeStatus.MERGED.equals(status) || ListMergeStatus.COMMON.equals(status)) {
          if (!myFilterMerged.mySelected) {
            result.add(list);
          }
        }
        else {
          // not merged
          if (!myFilterNotMerged.mySelected) {
            result.add(list);
          }
        }
      }
      return result;
    }
@Override
    @NotNull
    public List<CommittedChangeList> filterChangeLists(@NotNull List<? extends CommittedChangeList> changeLists)