EDU-327 Course creator: sort lessons by its number
authorLiana Bakradze <liana.bakradze@jetbrains.com>
Wed, 21 Jan 2015 10:56:59 +0000 (13:56 +0300)
committerLiana Bakradze <liana.bakradze@jetbrains.com>
Wed, 21 Jan 2015 10:56:59 +0000 (13:56 +0300)
python/educational/course-creator/src/com/jetbrains/edu/coursecreator/projectView/CCDirectoryNode.java

index eb48a7af42a8eede69ff465e208e389f454e9462..d6c3ef697dcc7c522b4126eda8b2418eeded1e28 100644 (file)
@@ -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;
+  }
 }