use of org.olat.core.gui.control.Event in project openolat by klemens.
the class IQDisplayController method event.
@Override
public void event(UserRequest ureq, Component source, Event event) {
if (retrievedFlag) {
fireEvent(ureq, new IQEvent(IQEvent.TEST_PULLED));
return;
} else if (retrievedFlag || stoppedFlag) {
fireEvent(ureq, new IQEvent(IQEvent.TEST_STOPPED));
return;
}
if (source == myContent || source == qticomp) {
// those must be links
String wfCommand = event.getCommand();
// process workflow
AssessmentInstance ai = qticomp.getAssessmentInstance();
if (qticomp == null || ai == null) {
throw new RuntimeException("AssessmentInstance not valid.");
}
Navigator navig = ai.getNavigator();
if (wfCommand.equals("mark")) {
ai.mark(ureq.getParameter("id"), "true".equals(ureq.getParameter("p")));
ai.persist();
return;
}
if (wfCommand.equals("memo")) {
try {
String memo = java.net.URLDecoder.decode(ureq.getParameter("p"), "UTF-8");
ai.setMemo(ureq.getParameter("id"), memo);
ai.persist();
return;
} catch (UnsupportedEncodingException ex) {
log.info("Could not decode memo text " + ureq.getParameter("p"));
}
}
logAudit(ureq);
if (wfCommand.equals("sitse")) {
// submitItemorSection
ItemsInput iInp = iqm.getItemsInput(ureq);
if (iInp.getItemCount() > 0) {
navig.submitItems(iInp);
}
if (ai.isClosed()) {
// do all the finishing stuff
if (navig.getInfo().isFeedback()) {
// render the feedback
} else {
event(ureq, source, new Event(QTIConstants.QTI_WF_SUBMIT));
return;
}
}
} else if (wfCommand.equals("sitsec")) {
// submit
if (ai.isClosed()) {
// do all the finishing stuff
if (!qtistatus.isSurvey()) {
// for test and self-assessment, generate detailed results
generateDetailsResults(ureq, ai);
} else {
// Send also finished event in case of survey
fireEvent(ureq, new IQSubmittedEvent());
}
return;
}
} else if (wfCommand.equals("sflash")) {
// submit flash answer
//
navig.submitItems(iqm.getItemsInput(ureq));
if (ai.isClosed()) {
// do all the finishing stuff
event(ureq, source, new Event(QTIConstants.QTI_WF_SUBMIT));
return;
}
} else if (wfCommand.equals("git")) {
// goToItem
String seid = ureq.getParameter("seid");
String itid = ureq.getParameter("itid");
if (seid != null && seid.length() != 0 && itid != null && itid.length() != 0) {
int sectionPos = Integer.parseInt(seid);
int itemPos = Integer.parseInt(itid);
navig.goToItem(sectionPos, itemPos);
// fxdiff BAKS-7 Resume function
OLATResourceable sres = OresHelper.createOLATResourceableInstance("gse", new Long(sectionPos));
WindowControl bwControl = addToHistory(ureq, sres, null, getWindowControl(), false);
OLATResourceable ires = OresHelper.createOLATResourceableInstance("git", new Long(itemPos));
addToHistory(ureq, ires, null, bwControl, true);
}
} else if (wfCommand.equals("gse")) {
// goToSection
String seid = ureq.getParameter("seid");
if (seid != null && seid.length() != 0) {
int sectionPos = Integer.parseInt(seid);
navig.goToSection(sectionPos);
// fxdiff BAKS-7 Resume function
OLATResourceable sres = OresHelper.createOLATResourceableInstance("gse", new Long(sectionPos));
addToHistory(ureq, sres, null);
}
} else if (wfCommand.equals(QTIConstants.QTI_WF_SUBMIT)) {
// submit
// Assessment
navig.submitAssessment();
postSubmitAssessment(ureq, ai);
} else if (wfCommand.equals(QTIConstants.QTI_WF_CANCEL)) {
// cancel
// assessment
navig.cancelAssessment();
} else if (wfCommand.equals(QTIConstants.QTI_WF_SUSPEND)) {
// suspend
// assessment
// just close the controller
fireEvent(ureq, Event.DONE_EVENT);
return;
} else if (wfCommand.equals("close")) {
qtistatus.update(null);
// Parent controller need to pop, if they pushed previously
fireEvent(ureq, Event.DONE_EVENT);
return;
}
qtistatus.update(ai);
if (!qtistatus.isSurvey())
qtiscoreprogress.setActual(ai.getAssessmentContext().getScore());
updateQuestionProgressDisplay(ai);
} else if (source == closeButton) {
// close component
qtistatus.update(null);
// Parent controller need to pop, if they pushed previously
fireEvent(ureq, Event.DONE_EVENT);
return;
}
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class PreviewRunController method event.
/**
* @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
* org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
*/
@Override
public void event(UserRequest ureq, Component source, Event event) {
if (source == luTree) {
if (event.getCommand().equals(MenuTree.COMMAND_TREENODE_CLICKED)) {
TreeEvent tev = (TreeEvent) event;
// goto node:
// after a click in the tree, evaluate the model anew, set the tree
// model anew, and set the selection of the tree again
NodeClickedRef nclr = navHandler.evaluateJumpToTreeNode(ureq, getWindowControl(), treeModel, tev, this, null, currentNodeController);
if (!nclr.isVisible()) {
getWindowControl().setWarning(translate("warn.notvisible"));
return;
}
if (nclr.isHandledBySubTreeModelListener()) {
// not used:
return;
}
// set the new treemodel
treeModel = nclr.getTreeModel();
luTree.setTreeModel(treeModel);
// set the new tree selection
luTree.setSelectedNodeId(nclr.getSelectedNodeId());
luTree.setOpenNodeIds(nclr.getOpenNodeIds());
// get the controller (in this case it is a preview controller). Dispose only if not already disposed in navHandler.evaluateJumpToTreeNode()
if (nclr.getRunController() != null) {
if (currentNodeController != null && !currentNodeController.isDisposed() && !navHandler.isListening(currentNodeController)) {
currentNodeController.dispose();
}
currentNodeController = nclr.getRunController();
}
CourseNode cn = nclr.getCalledCourseNode();
if (cn != null) {
Condition c = cn.getPreConditionVisibility();
String visibilityExpr = (c.getConditionExpression() == null ? translate("details.visibility.none") : c.getConditionExpression());
detail.contextPut("visibilityExpr", visibilityExpr);
detail.contextPut("coursenode", cn);
currentCourseNode = cn;
}
Component nodeComp = currentNodeController.getInitialComponent();
content.setContent(nodeComp);
}
} else if (source == configButton) {
fireEvent(ureq, new Event("command.config"));
}
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class FolderComponent method doDispatchRequest.
@Override
protected void doDispatchRequest(UserRequest ureq) {
if (ureq.getParameter(ListRenderer.PARAM_EDTID) != null) {
fireEvent(ureq, new Event(FolderCommandFactory.COMMAND_EDIT));
return;
} else if (ureq.getParameter(ListRenderer.PARAM_CONTENTEDITID) != null) {
fireEvent(ureq, new Event(FolderCommandFactory.COMMAND_EDIT_CONTENT));
return;
} else if (ureq.getParameter(ListRenderer.PARAM_SERV) != null) {
// this is a link on a file... deliver it
fireEvent(ureq, new Event(FolderCommandFactory.COMMAND_SERV));
// don't redraw the file listing when serving a resource -> timestamp not consumed
setDirty(false);
return;
} else if (ureq.getParameter(ListRenderer.PARAM_SORTID) != null) {
// user clicked on table header for sorting column
setSortAsc(ureq.getParameter(ListRenderer.PARAM_SORTID));
// just pass selected column
sort(ureq.getParameter(ListRenderer.PARAM_SORTID));
return;
} else if (ureq.getParameter("cid") != null) {
// user clicked add layer...
fireEvent(ureq, new Event(ureq.getParameter("cid")));
return;
} else if (ureq.getParameter(ListRenderer.PARAM_VERID) != null) {
fireEvent(ureq, new Event(FolderCommandFactory.COMMAND_VIEW_VERSION));
return;
} else if (ureq.getParameter(ListRenderer.PARAM_EPORT) != null) {
fireEvent(ureq, new Event(FolderCommandFactory.COMMAND_ADD_EPORTFOLIO));
return;
} else if (ureq.getParameter(ListRenderer.PARAM_SERV_THUMBNAIL) != null) {
// this is a link on a file... deliver it
fireEvent(ureq, new Event(FolderCommandFactory.COMMAND_SERV_THUMBNAIL));
// don't redraw the file listing when serving a resource -> timestamp not consumed
setDirty(false);
return;
}
// regular browsing, set current container
setCurrentContainerPath(ureq.getModuleURI());
// do logging
ThreadLocalUserActivityLogger.log(FolderLoggingAction.BC_FOLDER_READ, getClass(), CoreLoggingResourceable.wrapBCFile(getCurrentContainerPath()));
fireEvent(ureq, new Event(FolderCommandFactory.COMMAND_BROWSE));
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class ResumeController method formInnerEvent.
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (source.equals(noButton)) {
savePreferences(ureq, "none");
fireEvent(ureq, new Event("no"));
} else if (source.equals(landingButton)) {
savePreferences(ureq, "none");
fireEvent(ureq, new Event("landing"));
}
}
use of org.olat.core.gui.control.Event in project openolat by klemens.
the class SegmentViewComponent method doDispatchRequest.
@Override
protected void doDispatchRequest(UserRequest ureq) {
Event e = null;
String cmd = ureq.getParameter(VelocityContainer.COMMAND_ID);
int count = 0;
for (Component segment : segments) {
if (segment.getComponentName().equals(cmd)) {
boolean selected = selectedSegments.contains(segment);
if (selected) {
if (isAllowNoSelection() || selectedSegments.size() > 1) {
e = new SegmentViewEvent(SegmentViewEvent.DESELECTION_EVENT, segment.getComponentName(), count);
selectedSegments.remove(segment);
} else if (isReselect()) {
e = new SegmentViewEvent(SegmentViewEvent.SELECTION_EVENT, segment.getComponentName(), count);
}
} else {
if (!isAllowMultipleSelection()) {
deselectAllSegments();
}
e = new SegmentViewEvent(SegmentViewEvent.SELECTION_EVENT, segment.getComponentName(), count);
selectSegment(segment);
}
break;
}
count++;
}
if (e != null) {
setDirty(true);
fireEvent(ureq, e);
}
}
Aggregations