@Nullable
  protected AbstractTreeNode<?> doCreateNode(@NotNull VirtualFile virtualFile,
                                             @NotNull PsiManager psiManager,
                                             @Nullable ViewSettings viewSettings) {
    if (virtualFile.isDirectory()) {
      PsiDirectory directory = psiManager.findDirectory(virtualFile);
      if (directory != null) {
        return new PsiDirectoryNode(myProject, directory, viewSettings);
      }
    }
    else {
      PsiFile file = psiManager.findFile(virtualFile);
      if (file != null) {
        return new PsiFileNode(myProject, file, viewSettings);
      }
    }
    return null;
  }
@Nullable
  protected AbstractTreeNode<?> doCreateNode(@NotNull VirtualFile virtualFile,
                                             @NotNull PsiManager psiManager,
                                             @Nullable ViewSettings viewSettings)