Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java,v diff -u -r1.57 -r1.58 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java 27 Oct 2006 15:42:15 -0000 1.57 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java 31 Oct 2006 23:58:17 -0000 1.58 @@ -1836,15 +1836,47 @@ if (correct.equals("Correct")) { - logger.debug("there is at leat one Correct candidate, it is good."); + logger.debug("there is at least one Correct candidate, it is good."); return true; } } return false; } + + protected boolean validateOnlyOneCorrectCandidate(List caList) + { + int correctCandidatesCount= 0; + + Iterator itCaList= caList.iterator(); + while (itCaList.hasNext()) + { + McCandidateAnswersDTO mcCandidateAnswersDTO= (McCandidateAnswersDTO)itCaList.next(); + logger.debug("mcCandidateAnswersDTO:" + mcCandidateAnswersDTO); + + String candidateAnswer= mcCandidateAnswersDTO.getCandidateAnswer(); + String correct= mcCandidateAnswersDTO.getCorrect(); + logger.debug("correct:" + correct); + + if (correct.equals("Correct")) + { + logger.debug("there is at leat one Correct candidate, it is good."); + ++correctCandidatesCount; + } + } + logger.debug("correctCandidatesCount: " + correctCandidatesCount); + + if (correctCandidatesCount > 1) + return false; //not good + + return true; + } + + + + /** * buildDefaultQuestionContent(McContent mcContent, IMcService mcService) * Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java,v diff -u -r1.125 -r1.126 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java 3 Oct 2006 21:53:58 -0000 1.125 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java 31 Oct 2006 23:58:17 -0000 1.126 @@ -521,10 +521,14 @@ boolean validateSingleCorrectCandidate=authoringUtil.validateSingleCorrectCandidate(caList); logger.debug("validateSingleCorrectCandidate: " + validateSingleCorrectCandidate); + /* + boolean validateOnlyOneCorrectCandidate=authoringUtil.validateOnlyOneCorrectCandidate(caList); + logger.debug("validateOnlyOneCorrectCandidate: " + validateOnlyOneCorrectCandidate); + */ + ActionMessages errors = new ActionMessages(); - if (caList.size() == 0) { ActionMessage error = new ActionMessage("candidates.none.provided"); @@ -537,6 +541,16 @@ ActionMessage error = new ActionMessage("candidates.none.correct"); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } + + /* + if (!validateOnlyOneCorrectCandidate) + { + ActionMessage error = new ActionMessage("candidates.duplicate.correct"); + errors.add(ActionMessages.GLOBAL_MESSAGE, error); + } + */ + + logger.debug("errors: " + errors); if(!errors.isEmpty()){ @@ -941,6 +955,11 @@ boolean validateSingleCorrectCandidate=authoringUtil.validateSingleCorrectCandidate(caList); logger.debug("validateSingleCorrectCandidate: " + validateSingleCorrectCandidate); + /* + boolean validateOnlyOneCorrectCandidate=authoringUtil.validateOnlyOneCorrectCandidate(caList); + logger.debug("validateOnlyOneCorrectCandidate: " + validateOnlyOneCorrectCandidate); + */ + ActionMessages errors = new ActionMessages(); @@ -957,6 +976,15 @@ ActionMessage error = new ActionMessage("candidates.none.correct"); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } + + /* + if (!validateOnlyOneCorrectCandidate) + { + ActionMessage error = new ActionMessage("candidates.duplicate.correct"); + errors.add(ActionMessages.GLOBAL_MESSAGE, error); + } + */ + logger.debug("errors: " + errors); if(!errors.isEmpty()){ Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java,v diff -u -r1.39 -r1.40 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java 3 Oct 2006 21:53:57 -0000 1.39 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java 31 Oct 2006 23:58:17 -0000 1.40 @@ -121,6 +121,7 @@ private String feedback; private String candidateIndex; private String totalMarks; + protected String currentField; public void resetUserAction() { @@ -985,4 +986,16 @@ public void setClickedObj(String clickedObj) { this.clickedObj = clickedObj; } + /** + * @return Returns the currentField. + */ + public String getCurrentField() { + return currentField; + } + /** + * @param currentField The currentField to set. + */ + public void setCurrentField(String currentField) { + this.currentField = currentField; + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringAction.java,v diff -u -r1.30 -r1.31 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringAction.java 3 Oct 2006 21:53:58 -0000 1.30 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringAction.java 31 Oct 2006 23:58:17 -0000 1.31 @@ -1235,6 +1235,11 @@ boolean validateSingleCorrectCandidate=authoringUtil.validateSingleCorrectCandidate(caList); logger.debug("validateSingleCorrectCandidate: " + validateSingleCorrectCandidate); + + /* + boolean validateOnlyOneCorrectCandidate=authoringUtil.validateOnlyOneCorrectCandidate(caList); + logger.debug("validateOnlyOneCorrectCandidate: " + validateOnlyOneCorrectCandidate); + */ ActionMessages errors = new ActionMessages(); @@ -1252,6 +1257,15 @@ ActionMessage error = new ActionMessage("candidates.none.correct"); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } + + /* + if (!validateOnlyOneCorrectCandidate) + { + ActionMessage error = new ActionMessage("candidates.duplicate.correct"); + errors.add(ActionMessages.GLOBAL_MESSAGE, error); + } + */ + logger.debug("errors: " + errors); if(!errors.isEmpty()){ @@ -1634,7 +1648,12 @@ boolean validateSingleCorrectCandidate=authoringUtil.validateSingleCorrectCandidate(caList); logger.debug("validateSingleCorrectCandidate: " + validateSingleCorrectCandidate); + /* + boolean validateOnlyOneCorrectCandidate=authoringUtil.validateOnlyOneCorrectCandidate(caList); + logger.debug("validateOnlyOneCorrectCandidate: " + validateOnlyOneCorrectCandidate); + */ + ActionMessages errors = new ActionMessages(); if (caList.size() == 0) @@ -1649,15 +1668,21 @@ ActionMessage error = new ActionMessage("candidates.none.correct"); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } + + /* + if (!validateOnlyOneCorrectCandidate) + { + ActionMessage error = new ActionMessage("candidates.duplicate.correct"); + errors.add(ActionMessages.GLOBAL_MESSAGE, error); + } + */ logger.debug("errors: " + errors); if(!errors.isEmpty()){ saveErrors(request, errors); logger.debug("errors saved: " + errors); } - - logger.debug("errors saved: " + errors); if(errors.isEmpty()) Index: lams_tool_lamc/web/authoring/candidateAnswersAddList.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/authoring/candidateAnswersAddList.jsp,v diff -u -r1.5 -r1.6 --- lams_tool_lamc/web/authoring/candidateAnswersAddList.jsp 20 Oct 2006 09:25:42 -0000 1.5 +++ lams_tool_lamc/web/authoring/candidateAnswersAddList.jsp 31 Oct 2006 23:58:18 -0000 1.6 @@ -58,7 +58,7 @@