return myTaskFile;
}
- @Nullable
public VirtualFile getVirtualFile() {
return myVirtualFile;
}
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);
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()) {
return;
}
VirtualFile projectDir = project.getBaseDir();
- String lessonDirName = EduNames.LESSON + String.valueOf(lessonIndex + 1);
+ String lessonDirName = EduNames.LESSON + String.valueOf(lessonIndex);
if (projectDir == null) {
return;
}
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;
*/
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;
*/
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);
}
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);
}
}
}
- /**
- * @return courses from memory or from cash file or parses course directory
- */
public List<CourseInfo> getCourses() {
if (!myCourses.isEmpty()) {
return myCourses;
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) {
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) {
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) {
@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) {
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")