diff --git a/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyProjectComponent.java b/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyProjectComponent.java index 7b6844a938c7..0327f3d3663f 100644 --- a/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyProjectComponent.java +++ b/python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyProjectComponent.java @@ -233,6 +233,7 @@ public class StudyProjectComponent implements ProjectComponent { } } } + myListener = null; } @Override @@ -285,6 +286,7 @@ public class StudyProjectComponent implements ProjectComponent { private class FileCreatedByUserListener extends VirtualFileAdapter { @Override public void fileCreated(@NotNull VirtualFileEvent event) { + if (myProject.isDisposed()) return; final VirtualFile createdFile = event.getFile(); final VirtualFile taskDir = createdFile.getParent(); final Course course = StudyTaskManager.getInstance(myProject).getCourse(); diff --git a/python/educational/src/com/jetbrains/edu/courseFormat/Course.java b/python/educational/src/com/jetbrains/edu/courseFormat/Course.java index 9bf78703364c..9d0223457cec 100644 --- a/python/educational/src/com/jetbrains/edu/courseFormat/Course.java +++ b/python/educational/src/com/jetbrains/edu/courseFormat/Course.java @@ -4,6 +4,7 @@ import com.intellij.lang.Language; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class Course { @@ -17,7 +18,11 @@ public class Course { private String myLanguage; public List getLessons() { - return lessons; + return Collections.unmodifiableList(lessons); + } + + public void addLesson(@NotNull final Lesson lesson) { + lessons.add(lesson); } public String getAuthor() {