move course to another service for old projects

This commit is contained in:
liana.bakradze
2016-04-21 14:31:02 +03:00
parent 66ddc0382b
commit 20ddc22d04
@@ -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);
}