use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project openolat by klemens.
the class AssessmentItemEditorController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (event instanceof AssessmentItemEvent) {
AssessmentItemEvent aie = (AssessmentItemEvent) event;
if (AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED.equals(aie.getCommand())) {
doBuildAndSaveAssessmentItem();
doBuildAndCommitMetadata();
fireEvent(ureq, new AssessmentItemEvent(aie.getCommand(), aie.getAssessmentItem(), itemRef, aie.getQuestionType()));
} else if (AssessmentItemEvent.ASSESSMENT_ITEM_NEED_RELOAD.equals(aie.getCommand())) {
fireEvent(ureq, event);
}
} else if (poolEditor == source) {
if (event instanceof DetachFromPoolEvent) {
fireEvent(ureq, event);
}
}
super.event(ureq, source, event);
}
use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project openolat by klemens.
the class AssessmentTreeComponentRenderer method renderAssessmentItemLink.
/**
* @param sb
* @param component
* @param itemNode
* @return The event used or null
*/
private Event renderAssessmentItemLink(StringOutput sb, AssessmentTreeComponent component, TestPlanNode itemNode, Translator translator) {
String key = itemNode.getKey().toString();
Form form = component.getQtiItem().getRootForm();
String dispatchId = component.getQtiItem().getFormDispatchId();
TestSessionController testSessionController = component.getTestSessionController();
TestSessionState testSessionState = testSessionController.getTestSessionState();
TestPart testPart = testSessionController.getCurrentTestPart();
TestPlanNodeKey currentTestPartKey = testSessionState.getCurrentTestPartKey();
TestPartSessionState currentTestPartSessionState = testSessionState.getTestPartSessionStates().get(currentTestPartKey);
Event event;
if (testPart == null || testPart.getNavigationMode() == NavigationMode.NONLINEAR) {
if (testSessionState.isEnded() || currentTestPartSessionState.isEnded()) {
if (itemNode.getEffectiveItemSessionControl().isAllowReview() || itemNode.getEffectiveItemSessionControl().isShowFeedback()) {
event = Event.reviewItem;
} else {
event = null;
}
} else {
event = Event.selectItem;
}
} else {
event = null;
}
if (event == null) {
sb.append("<span class='o_assessmentitem_nav_disabled'>");
} else {
sb.append("<a href='javascript:;' onclick=\"").append(FormJSHelper.getXHRFnCallFor(form, dispatchId, 1, true, true, new NameValuePair("cid", event.name()), new NameValuePair("item", key))).append(";\" class='o_sel_assessmentitem'>");
}
String title;
if (component.isShowTitles()) {
title = StringHelper.escapeHtml(itemNode.getSectionPartTitle());
} else {
int num = component.getCandidateSessionContext().getNumber(itemNode);
title = translator.translate("question.title", new String[] { Integer.toString(num) });
}
sb.append("<span class='questionTitle'>").append(title).append("</span>");
if (event == null) {
sb.append("</span>");
} else {
sb.append("</a>");
}
return event;
}
use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project openolat by klemens.
the class QTI21AssessmentRunController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (source == displayCtrl) {
if (event == Event.CANCELLED_EVENT) {
doCancelAssessment(ureq);
initAssessment(ureq);
showInfo("assessment.test.cancelled");
} else if ("suspend".equals(event.getCommand())) {
doExitAssessment(ureq, event, false);
initAssessment(ureq);
showInfo("assessment.test.suspended");
} else if (event instanceof QTI21Event) {
QTI21Event qe = (QTI21Event) event;
if (QTI21Event.EXIT.equals(qe.getCommand())) {
if (!displayCtrl.isResultsVisible()) {
doExitAssessment(ureq, event, true);
initAssessment(ureq);
}
} else if (QTI21Event.CLOSE_RESULTS.equals(qe.getCommand())) {
doExitAssessment(ureq, event, true);
initAssessment(ureq);
}
}
}
super.event(ureq, source, event);
}
use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project OpenOLAT by OpenOLAT.
the class QTI21AssessmentRunController method event.
@Override
protected void event(UserRequest ureq, Controller source, Event event) {
if (source == displayCtrl) {
if (event == Event.CANCELLED_EVENT) {
doCancelAssessment(ureq);
initAssessment(ureq);
showInfo("assessment.test.cancelled");
} else if ("suspend".equals(event.getCommand())) {
doExitAssessment(ureq, event, false);
initAssessment(ureq);
showInfo("assessment.test.suspended");
} else if (event instanceof QTI21Event) {
QTI21Event qe = (QTI21Event) event;
if (QTI21Event.EXIT.equals(qe.getCommand())) {
if (!displayCtrl.isResultsVisible()) {
doExitAssessment(ureq, event, true);
initAssessment(ureq);
}
} else if (QTI21Event.CLOSE_RESULTS.equals(qe.getCommand())) {
doExitAssessment(ureq, event, true);
initAssessment(ureq);
}
}
}
super.event(ureq, source, event);
}
use of org.olat.ims.qti21.ui.QTIWorksAssessmentTestEvent.Event in project OpenOLAT by OpenOLAT.
the class QTI21ServiceImpl method recordCandidateItemEvent.
@Override
public CandidateEvent recordCandidateItemEvent(AssessmentTestSession candidateSession, RepositoryEntryRef testEntry, RepositoryEntryRef entry, CandidateItemEventType itemEventType, ItemSessionState itemSessionState, NotificationRecorder notificationRecorder) {
CandidateEvent event = new CandidateEvent(candidateSession, testEntry, entry);
event.setItemEventType(itemEventType);
return event;
}
Aggregations