From 9269c07e9b1e1775d923c16edbc72a03c7fb0b12 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 5 Apr 2018 09:42:41 +0200 Subject: [PATCH] OO-3419: save the order of the answers in the KPrim editor --- .../model/xml/interactions/KPrimAssessmentItemBuilder.java | 6 ++++++ .../qti21/ui/editor/interactions/KPrimEditorController.java | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java index a31ded8e736..571c8dde418 100644 --- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java +++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java @@ -273,6 +273,12 @@ public class KPrimAssessmentItemBuilder extends AssessmentItemBuilder { public List<SimpleAssociableChoice> getKprimChoices() { return matchInteraction.getSimpleMatchSets().get(0).getSimpleAssociableChoices(); } + + public void setKprimChoices(List<SimpleAssociableChoice> choices) { + SimpleMatchSet matchSet = matchInteraction.getSimpleMatchSets().get(0); + matchSet.getSimpleAssociableChoices().clear(); + matchSet.getSimpleAssociableChoices().addAll(new ArrayList<>(choices)); + } @Override protected void buildResponseAndOutcomeDeclarations() { diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java index 901c4a8293d..c92c183648e 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java @@ -239,6 +239,7 @@ public class KPrimEditorController extends FormBasicController { //set associations if(!restrictedEdit) { + List<SimpleAssociableChoice> choices = new ArrayList<>(); for(KprimWrapper choiceWrapper:choiceWrappers) { SimpleAssociableChoice choice = choiceWrapper.getSimpleChoice(); Identifier choiceIdentifier = choice.getIdentifier(); @@ -248,7 +249,9 @@ public class KPrimEditorController extends FormBasicController { } else if("wrong".equals(association)) { itemBuilder.setAssociation(choiceIdentifier, QTI21Constants.WRONG_IDENTIFIER); } + choices.add(choice); } + itemBuilder.setKprimChoices(choices); } fireEvent(ureq, new AssessmentItemEvent(AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED, itemBuilder.getAssessmentItem(), QTI21QuestionType.kprim)); -- GitLab