/** * Constructor for tunneling editor controller * * @param config The node module configuration * @param ureq The user request * @param wControl The window controller * @param tuCourseNode The current single page course node * @param course */ public LTIEditController( final ModuleConfiguration config, final UserRequest ureq, final WindowControl wControl, final BasicLTICourseNode ltCourseNode, final ICourse course, final UserCourseEnvironment euce) { super(ureq, wControl); this.config = config; this.courseNode = ltCourseNode; this.editCourseEnv = course.getCourseEnvironment(); myContent = this.createVelocityContainer("edit"); previewButton = LinkFactory.createButtonSmall("command.preview", myContent, this); ltConfigForm = new LTIConfigForm(ureq, wControl, config); listenTo(ltConfigForm); myContent.put("ltConfigForm", ltConfigForm.getInitialComponent()); final CourseGroupManager groupMgr = course.getCourseEnvironment().getCourseGroupManager(); final CourseEditorTreeModel editorModel = course.getEditorTreeModel(); // Accessibility precondition final Condition accessCondition = courseNode.getPreConditionAccess(); accessibilityCondContr = new ConditionEditController( ureq, getWindowControl(), groupMgr, accessCondition, "accessabilityConditionForm", AssessmentHelper.getAssessableNodes(editorModel, ltCourseNode), euce); this.listenTo(accessibilityCondContr); // Enable preview button only if node configuration is valid if (!(ltCourseNode.isConfigValid().isError())) { myContent.contextPut("showPreviewButton", Boolean.TRUE); } else { myContent.contextPut("showPreviewButton", Boolean.FALSE); } }
/** * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, * org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event) */ @Override public void event(final UserRequest ureq, final Controller source, final Event event) { if (source == accessibilityCondContr) { if (event == Event.CHANGED_EVENT) { final Condition cond = accessibilityCondContr.getCondition(); courseNode.setPreConditionAccess(cond); fireEvent(ureq, NodeEditController.NODECONFIG_CHANGED_EVENT); } } else if (source == ltConfigForm) { if (event == Event.CANCELLED_EVENT) { // do nothing } else if (event == Event.DONE_EVENT) { config = ltConfigForm.getUpdatedConfig(); fireEvent(ureq, NodeEditController.NODECONFIG_CHANGED_EVENT); // form valid -> node config valid -> show preview button myContent.contextPut("showPreviewButton", Boolean.TRUE); } } }