@Override
 public void fillFiles(Set<PsiFile> set, boolean recursively) {
   super.fillFiles(set, recursively);
   int count = getChildCount();
   Boolean isRoot = null;
   for (int i = 0; i < count; i++) {
     PackageDependenciesNode child = (PackageDependenciesNode) getChildAt(i);
     if (child instanceof FileNode || recursively) {
       child.fillFiles(set, true);
     } else if (child instanceof DirectoryNode) {
       if (isRoot == null) {
         isRoot = isContentOrSourceRoot();
       }
       if (isRoot) {
         child.fillFiles(set, false);
       }
     }
   }
 }
 private Set<PsiFile> getSelectedScope(final Tree tree) {
   TreePath[] paths = tree.getSelectionPaths();
   if (paths == null) return EMPTY_FILE_SET;
   Set<PsiFile> result = new HashSet<PsiFile>();
   for (TreePath path : paths) {
     PackageDependenciesNode node = (PackageDependenciesNode) path.getLastPathComponent();
     node.fillFiles(result, !mySettings.UI_FLATTEN_PACKAGES);
   }
   return result;
 }