private void addUsageNodes(
     @NotNull GroupNode root,
     @NotNull final UsageViewImpl usageView,
     @NotNull List<UsageNode> outNodes) {
   for (UsageNode node : root.getUsageNodes()) {
     Usage usage = node.getUsage();
     if (usageView.isVisible(usage)) {
       node.setParent(root);
       outNodes.add(node);
     }
   }
   for (GroupNode groupNode : root.getSubGroups()) {
     groupNode.setParent(root);
     addUsageNodes(groupNode, usageView, outNodes);
   }
 }