Skip to content
Snippets Groups Projects
Commit 7933a3d6 authored by srosse's avatar srosse
Browse files

OO-2517: add a tab with the solution in the assessment item editor

parent 4439ea60
No related branches found
No related tags found
No related merge requests found
...@@ -83,9 +83,11 @@ public class AssessmentItemEditorController extends BasicController { ...@@ -83,9 +83,11 @@ public class AssessmentItemEditorController extends BasicController {
private final VelocityContainer mainVC; private final VelocityContainer mainVC;
private final int displayTabPosition; private final int displayTabPosition;
private final int solutionTabPosition;
private MetadataEditorController metadataEditor; private MetadataEditorController metadataEditor;
private AssessmentItemPreviewController displayCtrl; private AssessmentItemPreviewController displayCtrl;
private Controller itemEditor, scoreEditor, feedbackEditor; private Controller itemEditor, scoreEditor, feedbackEditor;
private AssessmentItemPreviewSolutionController solutionCtrl;
private final File itemFile; private final File itemFile;
private final File rootDirectory; private final File rootDirectory;
...@@ -125,6 +127,10 @@ public class AssessmentItemEditorController extends BasicController { ...@@ -125,6 +127,10 @@ public class AssessmentItemEditorController extends BasicController {
listenTo(displayCtrl); listenTo(displayCtrl);
displayTabPosition = tabbedPane.addTab(translate("preview"), displayCtrl); displayTabPosition = tabbedPane.addTab(translate("preview"), displayCtrl);
solutionCtrl = new AssessmentItemPreviewSolutionController(ureq, getWindowControl(), resolvedAssessmentItem, rootDirectory, itemFile);
listenTo(displayCtrl);
solutionTabPosition = tabbedPane.addTab(translate("preview.solution"), solutionCtrl);
putInitialPanel(mainVC); putInitialPanel(mainVC);
} }
...@@ -154,6 +160,10 @@ public class AssessmentItemEditorController extends BasicController { ...@@ -154,6 +160,10 @@ public class AssessmentItemEditorController extends BasicController {
resolvedAssessmentItem, itemRef, testEntry, assessmentEntry, rootDirectory, itemFile); resolvedAssessmentItem, itemRef, testEntry, assessmentEntry, rootDirectory, itemFile);
listenTo(displayCtrl); listenTo(displayCtrl);
displayTabPosition = tabbedPane.addTab(translate("preview"), displayCtrl); displayTabPosition = tabbedPane.addTab(translate("preview"), displayCtrl);
solutionCtrl = new AssessmentItemPreviewSolutionController(ureq, getWindowControl(), resolvedAssessmentItem, rootDirectory, itemFile);
listenTo(displayCtrl);
solutionTabPosition = tabbedPane.addTab(translate("preview.solution"), solutionCtrl);
putInitialPanel(mainVC); putInitialPanel(mainVC);
} }
...@@ -366,6 +376,11 @@ public class AssessmentItemEditorController extends BasicController { ...@@ -366,6 +376,11 @@ public class AssessmentItemEditorController extends BasicController {
listenTo(displayCtrl); listenTo(displayCtrl);
tabbedPane.replaceTab(displayTabPosition, displayCtrl); tabbedPane.replaceTab(displayTabPosition, displayCtrl);
} else if(selectedCtrl == solutionCtrl) {
solutionCtrl = new AssessmentItemPreviewSolutionController(ureq, getWindowControl(), resolvedAssessmentItem, rootDirectory, itemFile);
listenTo(displayCtrl);
tabbedPane.replaceTab(solutionTabPosition, solutionCtrl);
} }
} }
} }
......
/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at the
* <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Initial code contributed and copyrighted by<br>
* frentix GmbH, http://www.frentix.com
* <p>
*/
package org.olat.ims.qti21.ui.editor;
import java.io.File;
import org.olat.core.gui.UserRequest;
import org.olat.core.gui.components.Component;
import org.olat.core.gui.components.velocity.VelocityContainer;
import org.olat.core.gui.control.Event;
import org.olat.core.gui.control.WindowControl;
import org.olat.core.gui.control.controller.BasicController;
import org.olat.ims.qti21.AssessmentSessionAuditLogger;
import org.olat.ims.qti21.manager.audit.DefaultAssessmentSessionAuditLogger;
import org.olat.ims.qti21.ui.AssessmentItemDisplayController;
import uk.ac.ed.ph.jqtiplus.resolution.ResolvedAssessmentItem;
/**
*
* The controller show the assessment item in solution mode.
*
* Initial date: 13 févr. 2017<br>
* @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
*
*/
public class AssessmentItemPreviewSolutionController extends BasicController {
private final VelocityContainer mainVC;
private AssessmentItemDisplayController displayCtrl;
private final AssessmentSessionAuditLogger candidateAuditLogger = new PreviewAuditLogger();
public AssessmentItemPreviewSolutionController(UserRequest ureq, WindowControl wControl,
ResolvedAssessmentItem resolvedAssessmentItem, File rootDirectory, File itemFile) {
super(ureq, wControl);
displayCtrl = new AssessmentItemDisplayController(ureq, getWindowControl(),
resolvedAssessmentItem, rootDirectory, itemFile, candidateAuditLogger);
displayCtrl.requestSolution(ureq);
listenTo(displayCtrl);
mainVC = createVelocityContainer("assessment_item_preview");
mainVC.put("display", displayCtrl.getInitialComponent());
putInitialPanel(mainVC);
}
@Override
protected void doDispose() {
mainVC.removeListener(this);
}
@Override
protected void event(UserRequest ureq, Component source, Event event) {
//
}
public class PreviewAuditLogger extends DefaultAssessmentSessionAuditLogger {
}
}
...@@ -133,6 +133,7 @@ new.spots=Spots hinzuf\u00FCgen ...@@ -133,6 +133,7 @@ new.spots=Spots hinzuf\u00FCgen
new.testpart=Test Part new.testpart=Test Part
new.upload=Datei hochladen new.upload=Datei hochladen
preview=Vorschau preview=Vorschau
preview.solution=Vorschau L\u00F6sung
time.limit.max=Zeitbeschr\u00E4nkung (Minute) time.limit.max=Zeitbeschr\u00E4nkung (Minute)
title.add=$org.olat.ims.qti.editor\:title.add title.add=$org.olat.ims.qti.editor\:title.add
tools.change.copy=$org.olat.ims.qti.editor\:tools.change.copy tools.change.copy=$org.olat.ims.qti.editor\:tools.change.copy
......
...@@ -133,6 +133,7 @@ new.spots=Add spots ...@@ -133,6 +133,7 @@ new.spots=Add spots
new.testpart=Test part new.testpart=Test part
new.upload=Upload file new.upload=Upload file
preview=Preview preview=Preview
preview.solution=Preview solution
time.limit.max=Time limit (minute) time.limit.max=Time limit (minute)
title.add=$org.olat.ims.qti.editor\:title.add title.add=$org.olat.ims.qti.editor\:title.add
tools.change.copy=$org.olat.ims.qti.editor\:tools.change.copy tools.change.copy=$org.olat.ims.qti.editor\:tools.change.copy
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment