use of org.olat.ims.qti21.ui.editor.events.AssessmentItemEvent in project OpenOLAT by OpenOLAT.
the class FeedbacksEditorController method formOK.
@Override
protected void formOK(UserRequest ureq) {
if (restrictedEdit || readOnly)
return;
hintForm.commit();
hintForm.setVisible(!hintForm.isEmpty());
correctSolutionForm.commit();
correctSolutionForm.setVisible(!correctSolutionForm.isEmpty());
correctForm.commit();
correctForm.setVisible(!correctForm.isEmpty());
incorrectForm.commit();
incorrectForm.setVisible(!incorrectForm.isEmpty());
answeredForm.commit();
answeredForm.setVisible(!answeredForm.isEmpty());
emptyForm.commit();
emptyForm.setVisible(!emptyForm.isEmpty());
List<RuledFeedbackForm> validAdditionalForms = new ArrayList<>();
List<ModalFeedbackBuilder> additionalBuilders = new ArrayList<>();
for (RuledFeedbackForm additionalForm : additionalForms) {
ModalFeedbackBuilder additionalBuilder = additionalForm.commit();
if (additionalBuilder != null) {
additionalBuilders.add(additionalBuilder);
validAdditionalForms.add(additionalForm);
}
}
itemBuilder.setAdditionalFeedbackBuilders(additionalBuilders);
additionalForms.clear();
additionalForms.addAll(validAdditionalForms);
updateAddButtons();
fireEvent(ureq, new AssessmentItemEvent(AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED, itemBuilder.getAssessmentItem()));
}
use of org.olat.ims.qti21.ui.editor.events.AssessmentItemEvent in project OpenOLAT by OpenOLAT.
the class ChoiceScoreController method formOK.
@Override
protected void formOK(UserRequest ureq) {
if (restrictedEdit || readOnly)
return;
super.formOK(ureq);
String maxScoreValue = maxScoreEl.getValue();
Double maxScore = Double.parseDouble(maxScoreValue);
itemBuilder.setMaxScore(maxScore);
String minScoreValue = minScoreEl.getValue();
Double minScore = Double.parseDouble(minScoreValue);
itemBuilder.setMinScore(minScore);
if (maxChoicesEl != null && maxChoicesEl.isOneSelected()) {
int maxChoices = Integer.parseInt(maxChoicesEl.getSelectedKey());
itemBuilder.setMaxChoices(maxChoices);
}
if (minChoicesEl != null && minChoicesEl.isOneSelected()) {
int minChoices = Integer.parseInt(minChoicesEl.getSelectedKey());
itemBuilder.setMinChoices(minChoices);
}
if (assessmentModeEl.isOneSelected() && assessmentModeEl.isSelected(1)) {
itemBuilder.setScoreEvaluationMode(ScoreEvaluation.perAnswer);
itemBuilder.clearMapping();
for (ChoiceWrapper wrapper : wrappers) {
String pointsStr = wrapper.getPointsEl().getValue();
Double points = new Double(pointsStr);
itemBuilder.setMapping(wrapper.getChoice().getIdentifier(), points);
}
} else {
itemBuilder.setScoreEvaluationMode(ScoreEvaluation.allCorrectAnswers);
itemBuilder.clearMapping();
}
fireEvent(ureq, new AssessmentItemEvent(AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED, itemBuilder.getAssessmentItem(), null));
}
use of org.olat.ims.qti21.ui.editor.events.AssessmentItemEvent in project OpenOLAT by OpenOLAT.
the class MatchScoreController method formOK.
@Override
protected void formOK(UserRequest ureq) {
if (restrictedEdit || readOnly)
return;
super.formOK(ureq);
String maxScoreValue = maxScoreEl.getValue();
Double maxScore = Double.parseDouble(maxScoreValue);
itemBuilder.setMaxScore(maxScore);
String minScoreValue = minScoreEl.getValue();
Double minScore = Double.parseDouble(minScoreValue);
itemBuilder.setMinScore(minScore);
if (assessmentModeEl.isOneSelected() && assessmentModeEl.isSelected(1)) {
itemBuilder.setScoreEvaluationMode(ScoreEvaluation.perAnswer);
itemBuilder.clearMapping();
for (Map.Entry<DirectedPairValue, MatchScoreWrapper> entry : scoreWrappers.entrySet()) {
DirectedPairValue directedPair = entry.getKey();
MatchScoreWrapper scoreWrapper = entry.getValue();
String val = scoreWrapper.getScoreEl().getValue();
double score = Double.parseDouble(val);
itemBuilder.addScore(directedPair, score);
}
} else {
itemBuilder.setScoreEvaluationMode(ScoreEvaluation.allCorrectAnswers);
itemBuilder.clearMapping();
}
fireEvent(ureq, new AssessmentItemEvent(AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED, itemBuilder.getAssessmentItem(), null));
}
use of org.olat.ims.qti21.ui.editor.events.AssessmentItemEvent in project OpenOLAT by OpenOLAT.
the class FIBEditorController method formOK.
@Override
protected void formOK(UserRequest ureq) {
if (readOnly)
return;
// title
itemBuilder.setTitle(titleEl.getValue());
// set the question with the text entries
String questionText = textEl.getRawValue();
extractSolution(questionText);
itemBuilder.setQuestion(questionText);
fireEvent(ureq, new AssessmentItemEvent(AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED, itemBuilder.getAssessmentItem(), QTI21QuestionType.fib));
itemBuilder.extractQuestions();
itemBuilder.extractEntriesSettingsFromResponseDeclaration();
String question = itemBuilder.getQuestion();
textEl.setValue(question);
}
use of org.olat.ims.qti21.ui.editor.events.AssessmentItemEvent in project OpenOLAT by OpenOLAT.
the class QTI21EditorController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (source == editorCtrl) {
if (event instanceof AssessmentItemEvent) {
AssessmentItemEvent aie = (AssessmentItemEvent) event;
AssessmentItem assessmentItem = aie.getAssessmentItem();
qtiService.persistAssessmentObject(resourceFile, assessmentItem);
updateQuestionItem(ureq, assessmentItem);
}
}
}
Aggregations