package com.jetbrains.edu.learning.actions;
-import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.project.Project;
+import com.jetbrains.edu.courseFormat.StudyStatus;
import com.jetbrains.edu.courseFormat.Task;
import org.jetbrains.annotations.NotNull;
-public abstract class StudyAfterCheckAction extends AnAction {
- public abstract void run(@NotNull final Project project, @NotNull final Task solvedTask);
+public abstract class StudyAfterCheckAction {
+ public abstract void run(@NotNull final Project project, @NotNull final Task solvedTask, StudyStatus statusBeforeCheck);
}
else {
onTaskFailed(testsOutput);
}
+ runAfterTaskSolvedActions();
}
protected void onTaskFailed(StudyTestsOutputParser.TestsOutput testsOutput) {
myTaskManger.setStatus(myTask, StudyStatus.Solved);
ApplicationManager.getApplication().invokeLater(
() -> StudyCheckUtils.showTestResultPopUp(testsOutput.getMessage(), MessageType.INFO.getPopupBackground(), myProject));
- runAfterTaskActions();
}
- private void runAfterTaskActions() {
+ private void runAfterTaskSolvedActions() {
StudyPluginConfigurator configurator = StudyUtils.getConfigurator(myProject);
if (configurator != null) {
StudyAfterCheckAction[] checkActions = configurator.getAfterCheckActions();
if (checkActions != null) {
for (StudyAfterCheckAction action: checkActions) {
- action.run(myProject, myTask);
+ action.run(myProject, myTask, myStatusBeforeCheck);
}
}
}