import com.jetbrains.edu.learning.courseFormat.*;
import com.jetbrains.edu.learning.courseGeneration.StudyProjectGenerator;
import com.jetbrains.edu.learning.editor.StudyEditor;
-import com.jetbrains.edu.learning.stepic.CourseInfo;
import com.jetbrains.edu.learning.ui.StudyToolWindow;
import com.jetbrains.edu.learning.ui.StudyToolWindowFactory;
import com.petebevin.markdown.MarkdownProcessor;
import javax.swing.*;
import java.awt.*;
import java.io.*;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
showCheckPopUp(project, balloon);
}
- public static void sortCourses(List<CourseInfo> result) {
- // sort courses so as to have non-adaptive courses in the beginning of the list
- Collections.sort(result, (c1, c2) -> {
- if ((c1.isAdaptive() && c2.isAdaptive()) || (!c1.isAdaptive() && !c2.isAdaptive())) {
- return 0;
- }
-
- return c1.isAdaptive() ? 1 : -1;
- });
- }
-
public static void selectFirstAnswerPlaceholder(@Nullable final StudyEditor studyEditor, @NotNull final Project project) {
if (studyEditor == null) return;
final Editor editor = studyEditor.getEditor();
if (myCourses.isEmpty()) {
myCourses = getBundledIntro();
}
- StudyUtils.sortCourses(myCourses);
+ sortCourses(myCourses);
return myCourses;
}
+ public void sortCourses(List<CourseInfo> result) {
+ // sort courses so as to have non-adaptive courses in the beginning of the list
+ Collections.sort(result, (c1, c2) -> {
+ if (mySelectedCourseInfo != null) {
+ if (mySelectedCourseInfo.equals(c1)) {
+ return -1;
+ }
+ if (mySelectedCourseInfo.equals(c2)) {
+ return 1;
+ }
+ }
+ if ((c1.isAdaptive() && c2.isAdaptive()) || (!c1.isAdaptive() && !c2.isAdaptive())) {
+ return 0;
+ }
+ return c1.isAdaptive() ? 1 : -1;
+ });
+ }
+
@NotNull
public List<CourseInfo> getCoursesUnderProgress(boolean force, @NotNull final String progressTitle, @NotNull final Project project) {
try {
File courseFile = courseFiles[0];
CourseInfo courseInfo = getCourseInfo(courseFile);
if (courseInfo != null) {
- courses.add(courseInfo);
+ courses.add(0, courseInfo);
}
return courseInfo;
}