Index: lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java =================================================================== diff -u -rc2bfdabe240b93d6bdd8dd9aa84b274570eb0ae7 -r6d64356f052f244905a7f2974227e25cbd5b9687 --- lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision c2bfdabe240b93d6bdd8dd9aa84b274570eb0ae7) +++ lams_tool_scratchie/src/java/org/lamsfoundation/lams/tool/scratchie/service/ScratchieServiceImpl.java (.../ScratchieServiceImpl.java) (revision 6d64356f052f244905a7f2974227e25cbd5b9687) @@ -704,6 +704,7 @@ //clone it so it doesn't interfere with values from other sessions ScratchieAnswer answer = (ScratchieAnswer) dbAnswer.clone(); + answer.setUid(dbAnswer.getUid()); int[] attempts = new int[answers.size()]; answer.setAttempts(attempts); answerMap.put(dbAnswer.getUid(), answer); @@ -728,7 +729,40 @@ groupSummary.setAnswers(sortedAnswers); groupSummaryList.add(groupSummary); } + + //show total groupSummary if there is more than 1 group available + if (sessionList.size() > 1) { + Long sessionId = new Long(0); + GroupSummary groupSummaryTotal = new GroupSummary(sessionId, "Summary"); + Map answerMapTotal = new HashMap(); + for (ScratchieAnswer dbAnswer : (Set) answers) { + // clone it so it doesn't interfere with values from other sessions + ScratchieAnswer answer = (ScratchieAnswer) dbAnswer.clone(); + int[] attempts = new int[answers.size()]; + answer.setAttempts(attempts); + answerMapTotal.put(dbAnswer.getUid(), answer); + } + + for (GroupSummary groupSummary : groupSummaryList) { + Collection sortedAnswers = groupSummary.getAnswers(); + for (ScratchieAnswer sortedAnswer : sortedAnswers) { + int[] attempts = sortedAnswer.getAttempts(); + + ScratchieAnswer answerTotal = answerMapTotal.get(sortedAnswer.getUid()); + int[] attemptsTotal = answerTotal.getAttempts(); + for (int i = 0; i < attempts.length; i++) { + attemptsTotal[i] += attempts[i]; + } + } + } + + Collection sortedAnswers = new TreeSet(new ScratchieAnswerComparator()); + sortedAnswers.addAll(answerMapTotal.values()); + groupSummaryTotal.setAnswers(sortedAnswers); + groupSummaryList.add(0, groupSummaryTotal); + } + return groupSummaryList; }