From 20ddc22d04dfeaca0a238288d4d1cc7f18a1d281 Mon Sep 17 00:00:00 2001 From: "liana.bakradze" Date: Thu, 21 Apr 2016 14:31:02 +0300 Subject: [PATCH] move course to another service for old projects --- .../edu/coursecreator/CCProjectComponent.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java index 2b91b9509dc2..b5a23ba917ed 100644 --- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java +++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCProjectComponent.java @@ -1,17 +1,40 @@ package com.jetbrains.edu.coursecreator; -import com.intellij.openapi.components.ProjectComponent; +import com.intellij.openapi.application.PathManager; +import com.intellij.openapi.components.AbstractProjectComponent; +import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFileManager; +import com.jetbrains.edu.learning.StudyProjectComponent; +import com.jetbrains.edu.learning.StudyTaskManager; +import com.jetbrains.edu.learning.courseFormat.Course; import org.jetbrains.annotations.NotNull; -public class CCProjectComponent implements ProjectComponent { - private final CCVirtualFileListener myTaskFileLifeListener = new CCVirtualFileListener(); +import java.io.File; + +public class CCProjectComponent extends AbstractProjectComponent { + private final CCVirtualFileListener myTaskFileLifeListener = new CCVirtualFileListener(); + private final Project myProject; + + protected CCProjectComponent(Project project) { + super(project); + myProject = project; + } public void initComponent() { VirtualFileManager.getInstance().addVirtualFileListener(myTaskFileLifeListener); } - public void disposeComponent() { + public void migrateIfNeeded() { + Course studyCourse = StudyTaskManager.getInstance(myProject).getCourse(); + Course course = CCProjectService.getInstance(myProject).getCourse(); + if (studyCourse == null && course != null) { + course.setCourseMode(CCUtils.COURSE_MODE); + File coursesDir = new File(PathManager.getConfigPath(), "courses"); + File courseDir = new File(coursesDir, course.getName() + "-" + myProject.getName()); + course.setCourseDirectory(courseDir.getPath()); + StudyTaskManager.getInstance(myProject).setCourse(course); + StudyProjectComponent.getInstance(myProject).registerStudyToolWindow(course); + } } @NotNull @@ -20,6 +43,7 @@ public class CCProjectComponent implements ProjectComponent { } public void projectOpened() { + migrateIfNeeded(); VirtualFileManager.getInstance().addVirtualFileListener(myTaskFileLifeListener); }