do not store stepic step id in study task manager

This commit is contained in:
Ekaterina Tuzova
2017-04-21 20:31:56 +03:00
parent 8906ea39da
commit 27ad90521f
3 changed files with 7 additions and 18 deletions
@@ -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);
}
}
});
@@ -55,7 +55,6 @@ public class StudyTaskManager implements PersistentStateComponent<Element>, 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<Element>, Dumb
myTurnEditingMode = turnEditingMode;
}
public void setStepId(int stepId) {
myStepId = stepId;
}
public int getStepId() {
return myStepId;
}
}
@@ -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();
});