protected boolean acceptFilter(@Nullable Pair<PackageSetBase, NamedScopesHolder> filter, boolean showOnlyFilteredItems) {
    boolean apply = false;
    if (children != null && filter != null) {
      for (Iterator it = children.iterator(); it.hasNext(); ) {
        AbstractTreeNode node = (AbstractTreeNode)it.next();
        if (node.acceptFilter(filter, showOnlyFilteredItems)) {
          apply = true;
        }
        else if (showOnlyFilteredItems) {
          if (node instanceof Disposable) {
            Disposer.dispose((Disposable)node);
          }
          it.remove();
        }
      }
      applyFilter(apply);
    }
    return apply;
  }
protected boolean acceptFilter(@Nullable Pair<PackageSetBase, NamedScopesHolder> filter, boolean showOnlyFilteredItems)