package org.sakaiproject.tool.assessment.ui.listener.samlite; import javax.faces.event.ActionEvent; import javax.faces.event.ActionListener; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.event.cover.EventTrackingService; import org.sakaiproject.tool.assessment.facade.AgentFacade; import org.sakaiproject.tool.assessment.facade.AssessmentFacade; import org.sakaiproject.tool.assessment.qti.constants.QTIVersion; import org.sakaiproject.tool.assessment.services.qti.QTIService; import org.sakaiproject.tool.assessment.ui.bean.samlite.SamLiteBean; import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil; import org.w3c.dom.Document; public class AssessmentListener implements ActionListener { private static Log log = LogFactory.getLog(AssessmentListener.class); public AssessmentListener() {} public void processAction(ActionEvent ae) { SamLiteBean samLiteBean = (SamLiteBean) ContextUtil.lookupBean("samLiteBean"); Document doc = samLiteBean.createDocument(); AssessmentFacade assessment = createImportedAssessment(doc, QTIVersion.VERSION_1_2, samLiteBean.getAssessmentTemplateId()); String templateId = samLiteBean.getAssessmentTemplateId(); if (null != templateId && !"".equals(templateId)) { try { assessment.setAssessmentTemplateId(Long.valueOf(templateId)); } catch (NumberFormatException nfe) { // Don't worry about it. log.warn("Unable to set the assessment template id ", nfe); } } samLiteBean.createAssessment(assessment); samLiteBean.setData(""); EventTrackingService.post(EventTrackingService.newEvent("sam.assessment.create", "siteId=" + AgentFacade.getCurrentSiteId() + ", assessmentId=" + assessment.getAssessmentId(), true)); } public AssessmentFacade createImportedAssessment(Document document, int qti, String templateId) { QTIService qtiService = new QTIService(); return qtiService.createImportedAssessment(document, qti, null, templateId); } }