Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r9ec5982b26e0237f90e529fb7e0285ac6af0bc87 -r08be5501aa8570c5fa4c6e50aa615334c171ee58 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 9ec5982b26e0237f90e529fb7e0285ac6af0bc87) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 08be5501aa8570c5fa4c6e50aa615334c171ee58) @@ -1736,7 +1736,7 @@ */ private void initToolSessionIfSuitable(ToolActivity activity, Lesson lesson) { - if ( ! activity.getApplyGrouping().booleanValue() || ! isInBranch(activity, null) ) { + if ( activity.getApplyGrouping().equals(Boolean.FALSE) && ! isInBranch(activity, null) ) { activity.setToolSessions(new HashSet()); try { @@ -2106,11 +2106,21 @@ } BranchingActivity branchingActivity = (BranchingActivity) getActivityById(parentActivity.getActivityId()); grouping = branchingActivity.getGrouping(); - + + // Need the learning design to get the next uiid - which is needed if + // Live Edit is done, or Flash can't match the branch to the groups properly. + LearningDesign design = branchingActivity.getLearningDesign(); + group = lessonService.createGroup(grouping, branch.getTitle()); - group.allocateBranchToGroup(null, branch, (BranchingActivity)branchingActivity); + Integer nextUIID = new Integer(design.getMaxID().intValue()+1); + group.setGroupUIID(nextUIID); + nextUIID = new Integer(nextUIID.intValue()+1); + group.allocateBranchToGroup(nextUIID, branch, (BranchingActivity)branchingActivity); groupingDAO.update(group); + design.setMaxID(new Integer(nextUIID.intValue()+1)); + learningDesignDAO.update(design); + } else { grouping = group.getGrouping(); } @@ -2180,6 +2190,9 @@ BranchingActivity branchingActivity = (BranchingActivity) getActivityById(parentActivity.getActivityId()); Grouping grouping = branchingActivity.getGrouping(); + LearningDesign design = branchingActivity.getLearningDesign(); + Integer nextUIID = new Integer(design.getMaxID().intValue()+1); + for ( String groupIDString: groupIDs) { Long groupID = Long.parseLong(groupIDString); @@ -2196,10 +2209,13 @@ throw new MonitoringServiceException(error); } - group.allocateBranchToGroup(null, branch, branchingActivity); + group.allocateBranchToGroup(nextUIID, branch, branchingActivity); groupingDAO.update(group); } + design.setMaxID(new Integer(nextUIID.intValue()+1)); + learningDesignDAO.update(design); + } /** Remove group / branch mapping. Cannot be done if any users in the group have started the branch. Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ChosenBranchingAJAXAction.java =================================================================== diff -u -reb02d23e4734503baf51538aefd7e345b0c45ec4 -r08be5501aa8570c5fa4c6e50aa615334c171ee58 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ChosenBranchingAJAXAction.java (.../ChosenBranchingAJAXAction.java) (revision eb02d23e4734503baf51538aefd7e345b0c45ec4) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ChosenBranchingAJAXAction.java (.../ChosenBranchingAJAXAction.java) (revision 08be5501aa8570c5fa4c6e50aa615334c171ee58) @@ -25,8 +25,6 @@ package org.lamsfoundation.lams.monitoring.web; import java.io.IOException; -import java.util.Iterator; -import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -41,7 +39,6 @@ import org.lamsfoundation.lams.learningdesign.ActivityTitleComparator; import org.lamsfoundation.lams.learningdesign.BranchingActivity; import org.lamsfoundation.lams.learningdesign.Group; -import org.lamsfoundation.lams.learningdesign.BranchActivityEntry; import org.lamsfoundation.lams.learningdesign.SequenceActivity; import org.lamsfoundation.lams.lesson.service.LessonServiceException; import org.lamsfoundation.lams.monitoring.service.IMonitoringService;