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.8 -r1.8.2.1 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java 5 Jan 2014 16:10:07 -0000 1.8 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieOutputFactory.java 30 Oct 2014 17:50:10 -0000 1.8.2.1 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java,v diff -u -r1.51 -r1.51.2.1 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 13 Jun 2014 18:50:12 -0000 1.51 +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java 30 Oct 2014 17:50:10 -0000 1.51.2.1 @@ -1591,7 +1591,7 @@ throw new ToolException(e); } } - return getScratchieOutputFactory().getToolOutputDefinitions(content, definitionType); + return getScratchieOutputFactory().getToolOutputDefinitions(this, content, definitionType); } @Override