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;
 }