Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java,v diff -u -r1.7 -r1.8 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java 12 Dec 2013 17:10:24 -0000 1.7 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java 5 Jan 2014 16:10:07 -0000 1.8 @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.tool.scratchie.service; import java.util.List; +import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; @@ -32,8 +33,9 @@ import org.lamsfoundation.lams.tool.ToolOutputDefinition; 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.ScratchieItem; import org.lamsfoundation.lams.tool.scratchie.model.ScratchieSession; -import org.lamsfoundation.lams.tool.scratchie.model.ScratchieUser; public class ScratchieOutputFactory extends OutputFactory { @@ -44,9 +46,26 @@ public SortedMap getToolOutputDefinitions(Object toolContentObject, int definitionType) throws ToolException { TreeMap definitionMap = new TreeMap(); - ToolOutputDefinition definition = buildRangeDefinition(ScratchieConstants.LEARNER_MARK, new Long(0), null, true); - definitionMap.put(ScratchieConstants.LEARNER_MARK, definition); + if (toolContentObject != null) { + + // calculate totalMarksPossible + Scratchie scratchie = (Scratchie) toolContentObject; + Set items = scratchie.getScratchieItems(); + Long totalMarksPossible = 0L; + for (ScratchieItem item : items) { + totalMarksPossible += item.getAnswers().size(); + } + if (scratchie.isExtraPoint()) { + totalMarksPossible += items.size(); + } + + ToolOutputDefinition definition = buildRangeDefinition(ScratchieConstants.LEARNER_MARK, new Long(0), + totalMarksPossible, true); + definitionMap.put(ScratchieConstants.LEARNER_MARK, definition); + + } + return definitionMap; }