Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== diff -u -r97612142f4697066beb66064e83ff31fef1712b9 -r245c3e8e3ffd8e00786cd143f3467990b838ed9e --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 97612142f4697066beb66064e83ff31fef1712b9) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 245c3e8e3ffd8e00786cd143f3467990b838ed9e) @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.learningdesign; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; import java.util.HashSet; import java.util.Iterator; @@ -36,6 +37,7 @@ import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.lamsfoundation.lams.learningdesign.dto.AuthoringActivityDTO; +import org.lamsfoundation.lams.learningdesign.dto.BranchActivityEntryDTO; import org.lamsfoundation.lams.learningdesign.dto.LibraryActivityDTO; import org.lamsfoundation.lams.learningdesign.dto.ProgressActivityDTO; import org.lamsfoundation.lams.learningdesign.dto.ValidationErrorDTO; @@ -983,18 +985,13 @@ /** Get the authoring DTO for this activity. Overidden by ComplexActivity. */ - public Set getAuthoringActivityDTOSet() + public Set getAuthoringActivityDTOSet(ArrayList branchMappings) { Set dtoSet = new TreeSet(new ActivityDTOOrderComparator()); - dtoSet.add(new AuthoringActivityDTO(this)); + dtoSet.add(new AuthoringActivityDTO(this, branchMappings)); return dtoSet; } - private AuthoringActivityDTO getAuthoringActivityDTO() - { - return new AuthoringActivityDTO(this); - } - public LibraryActivityDTO getLibraryActivityDTO(){ return new LibraryActivityDTO(this); } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java =================================================================== diff -u -r87ec6bd0708e9da634182eacca8c74e442bc748f -r245c3e8e3ffd8e00786cd143f3467990b838ed9e --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java (.../BranchActivityEntry.java) (revision 87ec6bd0708e9da634182eacca8c74e442bc748f) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java (.../BranchActivityEntry.java) (revision 245c3e8e3ffd8e00786cd143f3467990b838ed9e) @@ -178,7 +178,7 @@ } - public BranchActivityEntryDTO getBranchActivityDTO() { + public BranchActivityEntryDTO getBranchActivityEntryDTO() { BranchActivityEntryDTO entryDTO = null; if ( getCondition() != null ) { @@ -191,7 +191,9 @@ entryDTO.setEntryID(getEntryId()); entryDTO.setEntryUIID(getEntryUIID()); - entryDTO.setGroupUIID(getGroup().getGroupUIID()); + if ( getGroup() != null ) { + entryDTO.setGroupUIID(getGroup().getGroupUIID()); + } entryDTO.setSequenceActivityUIID(getBranchSequenceActivity().getActivityUIID()); entryDTO.setBranchingActivityUIID(getBranchingActivity().getActivityUIID()); return entryDTO; Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java =================================================================== diff -u -r97612142f4697066beb66064e83ff31fef1712b9 -r245c3e8e3ffd8e00786cd143f3467990b838ed9e --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java (.../ComplexActivity.java) (revision 97612142f4697066beb66064e83ff31fef1712b9) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java (.../ComplexActivity.java) (revision 245c3e8e3ffd8e00786cd143f3467990b838ed9e) @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.learningdesign; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; import java.util.HashSet; import java.util.Iterator; @@ -33,6 +34,7 @@ import org.apache.commons.lang.builder.ToStringBuilder; import org.lamsfoundation.lams.learningdesign.dto.AuthoringActivityDTO; +import org.lamsfoundation.lams.learningdesign.dto.BranchActivityEntryDTO; import org.lamsfoundation.lams.learningdesign.strategy.ComplexActivityStrategy; import org.lamsfoundation.lams.learningdesign.strategy.SimpleActivityStrategy; import org.lamsfoundation.lams.lesson.LearnerProgress; @@ -210,16 +212,16 @@ } - public Set getAuthoringActivityDTOSet() + public Set getAuthoringActivityDTOSet(ArrayList branchMappings) { Set dtoSet = new TreeSet(new ActivityDTOOrderComparator()); - dtoSet.add(new AuthoringActivityDTO(this)); //add parent activity + dtoSet.add(new AuthoringActivityDTO(this, branchMappings)); //add parent activity //add the DTO for all child activities for(Iterator i = this.getActivities().iterator();i.hasNext();) { Activity child = (Activity)i.next(); - dtoSet.addAll(child.getAuthoringActivityDTOSet()); + dtoSet.addAll(child.getAuthoringActivityDTOSet(branchMappings)); } return dtoSet; Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java =================================================================== diff -u -r97612142f4697066beb66064e83ff31fef1712b9 -r245c3e8e3ffd8e00786cd143f3467990b838ed9e --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision 97612142f4697066beb66064e83ff31fef1712b9) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision 245c3e8e3ffd8e00786cd143f3467990b838ed9e) @@ -28,6 +28,7 @@ import java.util.Iterator; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.BranchActivityEntry; import org.lamsfoundation.lams.learningdesign.BranchingActivity; import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.learningdesign.Grouping; @@ -309,8 +310,8 @@ this.endYCoord = endYCoord; } - public AuthoringActivityDTO(Activity activity){ - processActivityType(activity); + public AuthoringActivityDTO(Activity activity, ArrayList branchMappings){ + processActivityType(activity, branchMappings); this.activityID = activity.getActivityId(); this.activityUIID = activity.getActivityUIID(); this.description = activity.getDescription(); @@ -365,25 +366,25 @@ - private void processActivityType(Activity activity){ + private void processActivityType(Activity activity, ArrayList branchMappings){ if(activity.isGroupingActivity()) addGroupingActivityAttributes((GroupingActivity)activity); else if(activity.isToolActivity()) addToolActivityAttributes((ToolActivity)activity); else if(activity.isGateActivity()) addGateActivityAttributes(activity); else - addComplexActivityAttributes(activity); + addComplexActivityAttributes(activity, branchMappings); } - private void addComplexActivityAttributes(Activity activity){ + private void addComplexActivityAttributes(Activity activity, ArrayList branchMappings){ if(activity.isOptionsActivity()) addOptionsActivityAttributes((OptionsActivity)activity); else if (activity.isParallelActivity()) addParallelActivityAttributes((ParallelActivity)activity); else if(activity.isBranchingActivity()) addBranchingActivityAttributes((BranchingActivity)activity); else - addSequenceActivityAttributes((SequenceActivity)activity); + addSequenceActivityAttributes((SequenceActivity)activity, branchMappings); } private void addGroupingActivityAttributes(GroupingActivity groupingActivity){ @@ -408,9 +409,12 @@ this.endXCoord = activity.getEndXcoord(); this.endYCoord = activity.getEndYcoord(); } - private void addSequenceActivityAttributes(SequenceActivity activity){ - if ( activity.getDefaultActivity() != null ) - defaultActivityUIID = activity.getDefaultActivity().getActivityUIID(); + private void addSequenceActivityAttributes(SequenceActivity activity, ArrayList branchMappings){ + Iterator iter = activity.getBranchEntries().iterator(); + while ( iter.hasNext() ) { + BranchActivityEntry ba = (BranchActivityEntry) iter.next(); + branchMappings.add(ba.getBranchActivityEntryDTO()); + } } private void addToolActivityAttributes(ToolActivity toolActivity){ this.toolContentID = toolActivity.getToolContentId(); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java =================================================================== diff -u -r87ec6bd0708e9da634182eacca8c74e442bc748f -r245c3e8e3ffd8e00786cd143f3467990b838ed9e --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java (.../LearningDesignDTO.java) (revision 87ec6bd0708e9da634182eacca8c74e442bc748f) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java (.../LearningDesignDTO.java) (revision 245c3e8e3ffd8e00786cd143f3467990b838ed9e) @@ -411,21 +411,6 @@ { Grouping grouping = (Grouping) groupingIter.next(); groupingList.add(grouping.getGroupingDTO(false)); - - if ( grouping.getGroups().size() > 0 ) { - Iterator iter = grouping.getGroups().iterator(); - while ( iter.hasNext() ) { - Group group = (Group) iter.next(); - if ( group.getBranchActivities().size() > 0 ) { - Iterator iter2 = group.getBranchActivities().iterator(); - while ( iter2.hasNext() ) { - BranchActivityEntry ba = (BranchActivityEntry) iter2.next(); - branchMappings.add(ba.getBranchActivityDTO()); - } - } - } - } - } } return groupingList; @@ -441,12 +426,12 @@ //getAuthoringActivityDTOSet() method will: //for complex activity: It already populate its children activities. //for other activity: only get itself DTO object. - dtoSet.addAll(object.getAuthoringActivityDTOSet()); - } - + dtoSet.addAll(object.getAuthoringActivityDTOSet(branchMappings)); + } return new ArrayList(dtoSet); } - public ArrayList populateTransitions(LearningDesign design){ + +public ArrayList populateTransitions(LearningDesign design){ ArrayList transitions = new ArrayList(); if(design.getTransitions()!=null){ Iterator iterator = design.getTransitions().iterator();