From 4033812f9e8e191808e811cbde98042100ce37ae Mon Sep 17 00:00:00 2001 From: "Liana.Bakradze" Date: Thu, 29 Sep 2016 14:57:28 +0300 Subject: [PATCH] show preview for subtasks --- .../edu/coursecreator/actions/CCShowPreview.java | 4 +++- .../src/com/jetbrains/edu/learning/core/EduUtils.java | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java index ef6b7a6c960c..d4185c7e6a4d 100644 --- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java +++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCShowPreview.java @@ -52,6 +52,7 @@ import javax.swing.border.EmptyBorder; import java.awt.*; import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Collections; public class CCShowPreview extends DumbAwareAction { public static final String SHOW_PREVIEW = "Show Preview"; @@ -147,7 +148,8 @@ public class CCShowPreview extends DumbAwareAction { } }); for (AnswerPlaceholder answerPlaceholder : taskFile.getActivePlaceholders()) { - answerPlaceholder.setUseLength(true); + Integer minIndex = Collections.min(answerPlaceholder.getSubtaskInfos().keySet()); + answerPlaceholder.setUseLength(minIndex >= answerPlaceholder.getActiveSubtaskIndex()); EduAnswerPlaceholderPainter.drawAnswerPlaceholder(createdEditor, answerPlaceholder, JBColor.BLUE); } JPanel header = new JPanel(); diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduUtils.java b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduUtils.java index 6a7bb8c1b3e6..2d225567eba0 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduUtils.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/core/EduUtils.java @@ -20,6 +20,7 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.psi.PsiDirectory; +import com.intellij.util.containers.ContainerUtil; import com.jetbrains.edu.learning.StudyUtils; import com.jetbrains.edu.learning.courseFormat.*; import org.jetbrains.annotations.NonNls; @@ -164,6 +165,14 @@ public class EduUtils { studentDocument.addDocumentListener(listener); for (AnswerPlaceholder placeholder : taskFile.getActivePlaceholders()) { + Set indexes = placeholder.getSubtaskInfos().keySet(); + int activeSubtaskIndex = task.getActiveSubtaskIndex(); + if (Collections.min(indexes) < activeSubtaskIndex) { + Integer max = Collections.max(ContainerUtil.filter(indexes, i -> i < activeSubtaskIndex)); + String possibleAnswer = placeholder.getSubtaskInfos().get(max).getPossibleAnswer(); + replaceAnswerPlaceholder(project, studentDocument, placeholder, placeholder.getRealLength(), possibleAnswer); + continue; + } replaceAnswerPlaceholder(project, studentDocument, placeholder, placeholder.getRealLength(), placeholder.getTaskText()); } studentDocument.removeDocumentListener(listener); -- 2.23.3