From d7a657b16902f922d969baa0fb53c4d58b9b1520 Mon Sep 17 00:00:00 2001 From: "liana.bakradze" Date: Sat, 6 Aug 2016 21:14:19 +0300 Subject: [PATCH] EDU-717 Adaptive/Nonadaptive sorting breaks "Preview Course" action --- .../jetbrains/edu/learning/StudyUtils.java | 16 +++----------- .../StudyProjectGenerator.java | 22 +++++++++++++++++-- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java index c82a0379c2d1..8c926e52ceea 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java @@ -59,7 +59,6 @@ import com.jetbrains.edu.learning.core.EduUtils; 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; @@ -69,7 +68,9 @@ import org.jetbrains.annotations.Nullable; 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; @@ -722,17 +723,6 @@ public class StudyUtils { showCheckPopUp(project, balloon); } - public static void sortCourses(List 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(); diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java index b512f91cfa3b..0a12c9558fdd 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java @@ -407,10 +407,28 @@ public class StudyProjectGenerator { if (myCourses.isEmpty()) { myCourses = getBundledIntro(); } - StudyUtils.sortCourses(myCourses); + sortCourses(myCourses); return myCourses; } + public void sortCourses(List 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 getCoursesUnderProgress(boolean force, @NotNull final String progressTitle, @NotNull final Project project) { try { @@ -539,7 +557,7 @@ public class StudyProjectGenerator { File courseFile = courseFiles[0]; CourseInfo courseInfo = getCourseInfo(courseFile); if (courseInfo != null) { - courses.add(courseInfo); + courses.add(0, courseInfo); } return courseInfo; } -- 2.23.3