@Nullable
 public TaskFile getTaskFile(@NotNull final VirtualFile file) {
   if (myCourse == null) {
     return null;
   }
   final VirtualFile taskDir = file.getParent();
   if (taskDir == null) {
     return null;
   }
   final String taskDirName = taskDir.getName();
   if (taskDirName.contains(Task.TASK_DIR)) {
     final VirtualFile lessonDir = taskDir.getParent();
     if (lessonDir != null) {
       int lessonIndex = StudyUtils.getIndex(lessonDir.getName(), StudyNames.LESSON_DIR);
       List<Lesson> lessons = myCourse.getLessons();
       if (!StudyUtils.indexIsValid(lessonIndex, lessons)) {
         return null;
       }
       final Lesson lesson = lessons.get(lessonIndex);
       int taskIndex = StudyUtils.getIndex(taskDirName, Task.TASK_DIR);
       final List<Task> tasks = lesson.getTaskList();
       if (!StudyUtils.indexIsValid(taskIndex, tasks)) {
         return null;
       }
       final Task task = tasks.get(taskIndex);
       return task.getFile(file.getName());
     }
   }
   return null;
 }