diff --git a/python/educational-core/src/com/jetbrains/edu/learning/StudyProjectComponent.java b/python/educational-core/src/com/jetbrains/edu/learning/StudyProjectComponent.java index 16aa194a1ba4..860f4d4a1941 100644 --- a/python/educational-core/src/com/jetbrains/edu/learning/StudyProjectComponent.java +++ b/python/educational-core/src/com/jetbrains/edu/learning/StudyProjectComponent.java @@ -1,6 +1,7 @@ package com.jetbrains.edu.learning; import com.intellij.ide.ui.UISettings; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.notification.Notification; import com.intellij.notification.NotificationListener; import com.intellij.notification.NotificationType; @@ -21,7 +22,6 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.DumbAwareRunnable; import com.intellij.openapi.project.Project; -import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.startup.StartupManager; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; @@ -58,6 +58,7 @@ import java.util.Map; import static com.jetbrains.edu.learning.StudyUtils.execCancelable; import static com.jetbrains.edu.learning.StudyUtils.navigateToStep; +import static com.jetbrains.edu.learning.stepic.EduStepicNames.STEP_ID; public class StudyProjectComponent implements ProjectComponent { @@ -111,12 +112,7 @@ public class StudyProjectComponent implements ProjectComponent { private void selectStep() { StartupManager.getInstance(myProject).runWhenProjectIsInitialized(() -> { - Project defaultProject = ProjectManager.getInstance().getDefaultProject(); - if (myProject == defaultProject) { - return; - } - StudyTaskManager defaultTaskManager = StudyTaskManager.getInstance(defaultProject); - int stepId = defaultTaskManager.getStepId(); + int stepId = PropertiesComponent.getInstance().getInt(STEP_ID, 0); if (stepId != 0) { StudyTaskManager taskManager = StudyTaskManager.getInstance(myProject); @@ -124,7 +120,6 @@ public class StudyProjectComponent implements ProjectComponent { if (course != null) { navigateToStep(myProject, course, stepId); - defaultTaskManager.setStepId(0); } } }); diff --git a/python/educational-core/src/com/jetbrains/edu/learning/StudyTaskManager.java b/python/educational-core/src/com/jetbrains/edu/learning/StudyTaskManager.java index 210dd11c6a87..9fe00e9759d3 100644 --- a/python/educational-core/src/com/jetbrains/edu/learning/StudyTaskManager.java +++ b/python/educational-core/src/com/jetbrains/edu/learning/StudyTaskManager.java @@ -55,7 +55,6 @@ public class StudyTaskManager implements PersistentStateComponent, Dumb private boolean myTurnEditingMode = false; @Transient private final Project myProject; - @Transient private int myStepId; public StudyTaskManager(Project project) { myProject = project; @@ -257,11 +256,4 @@ public class StudyTaskManager implements PersistentStateComponent, Dumb myTurnEditingMode = turnEditingMode; } - public void setStepId(int stepId) { - myStepId = stepId; - } - - public int getStepId() { - return myStepId; - } } diff --git a/python/educational-core/src/com/jetbrains/edu/learning/builtInServer/EduBuiltInServerUtils.java b/python/educational-core/src/com/jetbrains/edu/learning/builtInServer/EduBuiltInServerUtils.java index 32408c5262ae..a79f1a15a279 100644 --- a/python/educational-core/src/com/jetbrains/edu/learning/builtInServer/EduBuiltInServerUtils.java +++ b/python/educational-core/src/com/jetbrains/edu/learning/builtInServer/EduBuiltInServerUtils.java @@ -17,6 +17,7 @@ package com.jetbrains.edu.learning.builtInServer; import com.intellij.ide.RecentProjectsManagerBase; import com.intellij.ide.impl.ProjectUtil; +import com.intellij.ide.util.PropertiesComponent; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.TransactionGuard; import com.intellij.openapi.project.Project; @@ -40,6 +41,7 @@ import java.util.List; import static com.jetbrains.edu.learning.StudyUtils.navigateToStep; import static com.jetbrains.edu.learning.core.EduNames.STUDY_PROJECT_XML_PATH; +import static com.jetbrains.edu.learning.stepic.EduStepicNames.STEP_ID; public class EduBuiltInServerUtils { public static boolean focusOpenProject(int courseId, int stepId) { @@ -104,7 +106,7 @@ public class EduBuiltInServerUtils { int courseId = getCourseId(taskManager, component); if (courseId == targetCourseId) { - taskManager.setStepId(stepId); + PropertiesComponent.getInstance().setValue(STEP_ID, stepId, 0); Project project = openProject(projectPath); if (project != null) { return true; @@ -146,7 +148,7 @@ public class EduBuiltInServerUtils { public static boolean createProject(int courseId, int stepId) { ApplicationManager.getApplication().invokeLater(() -> { - getDefaultTaskManager().setStepId(stepId); + PropertiesComponent.getInstance().setValue(STEP_ID, stepId, 0); EduCreateNewProjectDialog createNewProjectDlg = new EduCreateNewStepikProjectDialog(courseId); createNewProjectDlg.show(); });