diff --git a/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java b/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java index eb48a7af42a8..d6c3ef697dcc 100644 --- a/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java +++ b/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java @@ -62,4 +62,28 @@ public class CCDirectoryNode extends PsiDirectoryNode { data.setPresentableText(valueName); } + private static int getIndex(@NotNull final String fullName, @NotNull final String logicalName) { + if (!fullName.startsWith(logicalName)) { + throw new IllegalArgumentException(); + } + try { + return Integer.parseInt(fullName.substring(logicalName.length())) - 1; + } + catch (NumberFormatException e) { + return -1; + } + } + + @Override + public int getTypeSortWeight(boolean sortByType) { + String name = myValue.getName(); + String lessonDirName = "lesson"; + String taskDirName = "task"; + if (name.startsWith(lessonDirName) || name.startsWith(taskDirName)) { + String logicalName = name.contains(lessonDirName) ? lessonDirName : taskDirName; + int index = getIndex(name, logicalName) + 1; + return index != -1 ? index : 0; + } + return 0; + } }