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 a31ded8e736583d24912e769ef44e2fb9f255835..571c8dde418253aae2bec8b575610512e9422e44 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 901c4a8293db6ed0c781cf3d35aaa6eccbacde33..c92c183648ec58a331c62d76579a5915ec09c028 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));