@Override
 public void fileCreated(@NotNull VirtualFileEvent event) {
   final VirtualFile createdFile = event.getFile();
   final VirtualFile taskDir = createdFile.getParent();
   if (taskDir != null && taskDir.getName().contains(Task.TASK_DIR)) {
     int taskIndex = StudyUtils.getIndex(taskDir.getName(), Task.TASK_DIR);
     final VirtualFile lessonDir = taskDir.getParent();
     if (lessonDir != null && lessonDir.getName().contains(StudyNames.LESSON_DIR)) {
       int lessonIndex = StudyUtils.getIndex(lessonDir.getName(), StudyNames.LESSON_DIR);
       if (myCourse != null) {
         List<Lesson> lessons = myCourse.getLessons();
         if (StudyUtils.indexIsValid(lessonIndex, lessons)) {
           final Lesson lesson = lessons.get(lessonIndex);
           final List<Task> tasks = lesson.getTaskList();
           if (StudyUtils.indexIsValid(taskIndex, tasks)) {
             final Task task = tasks.get(taskIndex);
             final TaskFile taskFile = new TaskFile();
             taskFile.init(task, false);
             taskFile.setUserCreated(true);
             task.getTaskFiles().put(createdFile.getName(), taskFile);
           }
         }
       }
     }
   }
 }
 @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;
 }