fixed bugs after huge refactoring
authorLiana Bakradze <liana.bakradze@jetbrains.com>
Fri, 20 Mar 2015 14:26:59 +0000 (17:26 +0300)
committerLiana Bakradze <liana.bakradze@jetbrains.com>
Fri, 20 Mar 2015 14:26:59 +0000 (17:26 +0300)
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyState.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/StudyUtils.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyRefreshTaskFileAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/actions/StudyTaskNavigationAction.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/courseGeneration/StudyGenerator.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java
python/educational/interactive-learning/src/com/jetbrains/edu/learning/navigation/StudyNavigator.java
python/educational/src/com/jetbrains/edu/courseFormat/Lesson.java
python/educational/src/com/jetbrains/edu/courseFormat/Task.java

index 4aa06c5fb609464a982582087b0e3952bd41497f..4d2bd1ef99d74f4b26a9dd8d1f15e6157d2af7ca 100644 (file)
@@ -33,7 +33,6 @@ public class StudyState {
     return myTaskFile;
   }
 
-  @Nullable
   public VirtualFile getVirtualFile() {
     return myVirtualFile;
   }
index 99e4d058c6d2e94664846ed763c7c88abf1ee0bc..116aaba9c454d225601872fd85a15450545517c5 100644 (file)
@@ -132,7 +132,7 @@ public class StudyUtils {
     final StudyTaskManager taskManager = StudyTaskManager.getInstance(project);
     final Course course = taskManager.getCourse();
     int taskNum = task.getIndex() + 1;
-    int lessonNum = task.getLesson().getIndex() + 1;
+    int lessonNum = task.getLesson().getIndex();
     assert course != null;
     final String pathToResource = FileUtil.join(course.getCourseDirectory(), EduNames.LESSON + lessonNum, EduNames.TASK + taskNum);
     final File resourceFile = new File(pathToResource, copyName);
index 882634161936fc7b398b37778262ef4ae623b0ef..9725e19043b46670f990a219919e38147d22f731 100644 (file)
@@ -124,8 +124,8 @@ public class StudyRefreshTaskFileAction extends DumbAwareAction {
     taskFile.setTrackChanges(false);
     clearDocument(document);
     Task task = taskFile.getTask();
-    String lessonDir = EduNames.LESSON + String.valueOf(task.getLesson().getIndex() + 1);
-    String taskDir = EduNames.TASK + String.valueOf(task.getIndex() + 1);
+    String lessonDir = EduNames.LESSON + String.valueOf(task.getLesson().getIndex());
+    String taskDir = EduNames.TASK + String.valueOf(task.getIndex());
     Course course = task.getLesson().getCourse();
     File resourceFile = new File(course.getCourseDirectory());
     if (!resourceFile.exists()) {
index 70528cb617ad1cdf64614af93d2ba1e3cf91ff7b..015a18ff227dd275159aa94a910cfeaa9af7a2a3 100644 (file)
@@ -52,7 +52,7 @@ abstract public class StudyTaskNavigationAction extends DumbAwareAction {
       return;
     }
     VirtualFile projectDir = project.getBaseDir();
-    String lessonDirName = EduNames.LESSON + String.valueOf(lessonIndex + 1);
+    String lessonDirName = EduNames.LESSON + String.valueOf(lessonIndex);
     if (projectDir == null) {
       return;
     }
@@ -60,7 +60,7 @@ abstract public class StudyTaskNavigationAction extends DumbAwareAction {
     if (lessonDir == null) {
       return;
     }
-    String taskDirName = EduNames.TASK + String.valueOf(nextTaskIndex + 1);
+    String taskDirName = EduNames.TASK + String.valueOf(nextTaskIndex);
     VirtualFile taskDir = lessonDir.findChild(taskDirName);
     if (taskDir == null) {
       return;
index ba095f8e1054e09212290f563e16b25d43a57775..2bc832b4c0e3cd504f10ca687596ce52dfba8bb3 100644 (file)
@@ -52,7 +52,7 @@ public class StudyGenerator {
    */
   public static void createTask(@NotNull final Task task, @NotNull final VirtualFile lessonDir, @NotNull final File resourceRoot,
                                 @NotNull final Project project) throws IOException {
-    VirtualFile taskDir = lessonDir.createChildDirectory(project, EduNames.TASK + Integer.toString(task.getIndex() + 1));
+    VirtualFile taskDir = lessonDir.createChildDirectory(project, EduNames.TASK + Integer.toString(task.getIndex()));
     EduUtils.markDirAsSourceRoot(taskDir, project);
     File newResourceRoot = new File(resourceRoot, taskDir.getName());
     int i = 0;
@@ -84,11 +84,11 @@ public class StudyGenerator {
    */
   public static void createLesson(@NotNull final Lesson lesson, @NotNull final VirtualFile courseDir, @NotNull final File resourceRoot,
                                   @NotNull final Project project) throws IOException {
-    String lessonDirName = EduNames.LESSON + Integer.toString(lesson.getIndex() + 1);
+    String lessonDirName = EduNames.LESSON + Integer.toString(lesson.getIndex());
     VirtualFile lessonDir = courseDir.createChildDirectory(project, lessonDirName);
     final List<Task> taskList = lesson.getTaskList();
-    for (int i = 0; i < taskList.size(); i++) {
-      Task task = taskList.get(i);
+    for (int i = 1; i <= taskList.size(); i++) {
+      Task task = taskList.get(i - 1);
       task.setIndex(i);
       createTask(task, lessonDir, new File(resourceRoot, lessonDir.getName()), project);
     }
@@ -105,8 +105,8 @@ public class StudyGenerator {
 
               try {
                 final List<Lesson> lessons = course.getLessons();
-                for (int i = 0; i < lessons.size(); i++) {
-                  Lesson lesson = lessons.get(i);
+                for (int i = 1; i <= lessons.size(); i++) {
+                  Lesson lesson = lessons.get(i - 1);
                   lesson.setIndex(i);
                   createLesson(lesson, baseDir, resourceRoot, project);
                 }
index 0da182c952f56a5c4edcd841f76e13e75b34a06d..498948c3e12685e619d416458bb9797ca69d921a 100644 (file)
@@ -228,9 +228,6 @@ public class StudyProjectGenerator {
     }
   }
 
-  /**
-   * @return courses from memory or from cash file or parses course directory
-   */
   public List<CourseInfo> getCourses() {
     if (!myCourses.isEmpty()) {
       return myCourses;
index 2dd0ae1453d5ce1b673b66028b3eb6c44b8061aa..0f84f67c19c38185b638c9bfb65f4c624bf10375 100644 (file)
@@ -22,8 +22,8 @@ public class StudyNavigator {
   public static Task nextTask(@NotNull final Task task) {
     Lesson currentLesson = task.getLesson();
     List<Task> taskList = currentLesson.getTaskList();
-    if (task.getIndex() + 1 < taskList.size()) {
-      return taskList.get(task.getIndex() + 1);
+    if (task.getIndex() < taskList.size()) {
+      return taskList.get(task.getIndex());
     }
     Lesson nextLesson = nextLesson(currentLesson);
     if (nextLesson == null) {
@@ -34,8 +34,9 @@ public class StudyNavigator {
 
   public static Task previousTask(@NotNull final Task task) {
     Lesson currentLesson = task.getLesson();
-    if (task.getIndex() - 1 >= 0) {
-      return currentLesson.getTaskList().get(task.getIndex() - 1);
+    int prevTaskIndex = task.getIndex() - 2;
+    if (prevTaskIndex >= 0) {
+      return currentLesson.getTaskList().get(prevTaskIndex);
     }
     Lesson prevLesson = previousLesson(currentLesson);
     if (prevLesson == null) {
@@ -47,17 +48,19 @@ public class StudyNavigator {
 
   public static  Lesson nextLesson(@NotNull final Lesson lesson) {
     List<Lesson> lessons = lesson.getCourse().getLessons();
-    if (lesson.getIndex() + 1 >= lessons.size()) {
+    int nextLessonIndex = lesson.getIndex();
+    if (nextLessonIndex >= lessons.size()) {
       return null;
     }
-    return lessons.get(lesson.getIndex() + 1);
+    return lessons.get(nextLessonIndex);
   }
 
   public static  Lesson previousLesson(@NotNull final Lesson lesson) {
-    if (lesson.getIndex() - 1 < 0) {
+    int prevLessonIndex = lesson.getIndex() - 2;
+    if (prevLessonIndex < 0) {
       return null;
     }
-    return lesson.getCourse().getLessons().get(lesson.getIndex() - 1);
+    return lesson.getCourse().getLessons().get(prevLessonIndex);
   }
 
   public static void navigateToFirstFailedAnswerPlaceholder(@NotNull final Editor editor, @NotNull final TaskFile taskFile) {
index 0b4e4bece5fed32ad2757c5390be215f9b57364b..fd9a31c7bd8d2d2e7d3b9ca9e53c8f5b0946e7a6 100644 (file)
@@ -28,6 +28,8 @@ public class Lesson {
 
   @Transient
   private Course myCourse = null;
+
+  // index is visible to user number of lesson from 1 to lesson number
   private int myIndex = -1;
 
   public void initLesson(final Course course, boolean isRestarted) {
index a97803e3acda25e259b342cfdc4d174161fd3d34..11caa49249a8da9a8558a755202c4578c4e7b580 100644 (file)
@@ -20,6 +20,8 @@ import java.util.Map;
 public class Task {
   @Expose
   private String name;
+
+  // index is visible to user number of task from 1 to task number
   private int myIndex;
   @Expose
   @SerializedName("task_files")