Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java =================================================================== diff -u -refee70db1d60af86692d3f2856a4f0df05188de9 -r8985ddefea0eab7214b15794ffa3a34a5748d61f --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision efee70db1d60af86692d3f2856a4f0df05188de9) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java (.../ScratchieOutputFactory.java) (revision 8985ddefea0eab7214b15794ffa3a34a5748d61f) @@ -34,30 +34,50 @@ import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.scratchie.ScratchieConstants; import org.lamsfoundation.lams.tool.scratchie.model.Scratchie; +import org.lamsfoundation.lams.tool.scratchie.model.ScratchieConfigItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession; public class ScratchieOutputFactory extends OutputFactory { /** - * {@inheritDoc} + * Returns null. Use @see org.lamsfoundation.lams.tool.OutputFactory#getToolOutputDefinitions(java.lang.Object, int) + * instead. */ @Override public SortedMap getToolOutputDefinitions(Object toolContentObject, int definitionType) throws ToolException { + return null; + } + + /** + * @see org.lamsfoundation.lams.tool.OutputFactory#getToolOutputDefinitions(java.lang.Object, int) + * + * @param scratchieService + * @param toolContentObject + * @param definitionType + * @return + * @throws ToolException + */ + public SortedMap getToolOutputDefinitions(IScratchieService scratchieService, + Object toolContentObject, int definitionType) throws ToolException { TreeMap definitionMap = new TreeMap(); if (toolContentObject != null) { - - // calculate totalMarksPossible + Scratchie scratchie = (Scratchie) toolContentObject; - Set items = scratchie.getScratchieItems(); - Long totalMarksPossible = 0L; - for (ScratchieItem item : items) { - totalMarksPossible += item.getAnswers().size(); - } + int itemsNumber = scratchie.getScratchieItems().size(); + + // calculate totalMarksPossible + String presetMarks = scratchieService.getConfigItem(ScratchieConfigItem.KEY_PRESET_MARKS).getConfigValue(); + String[] presetMarksArray = presetMarks.split(","); + long totalMarksPossible = (presetMarksArray.length > 0) ? itemsNumber + * Integer.parseInt(presetMarksArray[0]) : 0; + + // count in extra point if this option is ON + if (scratchie.isExtraPoint()) { - totalMarksPossible += items.size(); + totalMarksPossible += itemsNumber; } ToolOutputDefinition definition = buildRangeDefinition(ScratchieConstants.LEARNER_MARK, new Long(0), @@ -70,8 +90,7 @@ } /** - * Follows {@link PixlrService#getToolOutput(List, Long, Long)}. - * + * Follows {@link ScratchieService#getToolOutput(List, Long, Long)}. */ public SortedMap getToolOutput(List names, IScratchieService scratchieService, Long toolSessionId, Long learnerId) { Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -re5a3c4e8e88340e636c501f79cec1b91ab59a5cf -r8985ddefea0eab7214b15794ffa3a34a5748d61f --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision e5a3c4e8e88340e636c501f79cec1b91ab59a5cf) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 8985ddefea0eab7214b15794ffa3a34a5748d61f) @@ -1591,7 +1591,7 @@ throw new ToolException(e); } } - return getScratchieOutputFactory().getToolOutputDefinitions(content, definitionType); + return getScratchieOutputFactory().getToolOutputDefinitions(this, content, definitionType); } @Override