Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java =================================================================== diff -u -r245c3e8e3ffd8e00786cd143f3467990b838ed9e -r039707d1e936b6be92842a45e442d37db9886513 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java (.../BranchActivityEntry.java) (revision 245c3e8e3ffd8e00786cd143f3467990b838ed9e) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java (.../BranchActivityEntry.java) (revision 039707d1e936b6be92842a45e442d37db9886513) @@ -178,12 +178,12 @@ } - public BranchActivityEntryDTO getBranchActivityEntryDTO() { + public BranchActivityEntryDTO getBranchActivityEntryDTO(Integer toolActivityUIID) { BranchActivityEntryDTO entryDTO = null; if ( getCondition() != null ) { ToolOutputBranchActivityEntryDTO toolEntryDTO = new ToolOutputBranchActivityEntryDTO(); - toolEntryDTO.setCondition(getCondition().getBranchConditionDTO()); + toolEntryDTO.setCondition(getCondition().getBranchConditionDTO(toolActivityUIID)); entryDTO = toolEntryDTO; } else { entryDTO = new BranchActivityEntryDTO(); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java =================================================================== diff -u -rd5feb2d3cd954ee0b118513f3f6301d00ba12962 -r039707d1e936b6be92842a45e442d37db9886513 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java (.../BranchCondition.java) (revision d5feb2d3cd954ee0b118513f3f6301d00ba12962) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java (.../BranchCondition.java) (revision 039707d1e936b6be92842a45e442d37db9886513) @@ -174,8 +174,8 @@ this.exactMatchValue = exactMatchValue; } - public BranchConditionDTO getBranchConditionDTO() { - return new BranchConditionDTO(this); + public BranchConditionDTO getBranchConditionDTO(Integer toolActivityUIID) { + return new BranchConditionDTO(this, toolActivityUIID); } public String toString() { Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java =================================================================== diff -u -rd5feb2d3cd954ee0b118513f3f6301d00ba12962 -r039707d1e936b6be92842a45e442d37db9886513 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision d5feb2d3cd954ee0b118513f3f6301d00ba12962) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision 039707d1e936b6be92842a45e442d37db9886513) @@ -313,7 +313,6 @@ } public AuthoringActivityDTO(Activity activity, ArrayList branchMappings){ - processActivityType(activity, branchMappings); this.activityID = activity.getActivityId(); this.activityUIID = activity.getActivityUIID(); this.description = activity.getDescription(); @@ -360,25 +359,30 @@ while ( iter.hasNext() ) { Activity inputAct = (Activity) iter.next(); list.add(inputAct.getActivityUIID()); - this.toolActivityUIID=inputAct.getActivityUIID(); + if ( this.toolActivityUIID == null ) + this.toolActivityUIID=inputAct.getActivityUIID(); } this.inputActivities = list; } + + // must be done last as it depends on toolActivityUIID + processActivityType(activity, branchMappings, toolActivityUIID); + } - private void processActivityType(Activity activity, ArrayList branchMappings){ + private void processActivityType(Activity activity, ArrayList branchMappings, Integer toolActivityUIID){ if(activity.isGroupingActivity()) addGroupingActivityAttributes((GroupingActivity)activity); else if(activity.isToolActivity()) addToolActivityAttributes((ToolActivity)activity); else if(activity.isGateActivity()) addGateActivityAttributes(activity); else - addComplexActivityAttributes(activity, branchMappings); + addComplexActivityAttributes(activity, branchMappings, toolActivityUIID); } - private void addComplexActivityAttributes(Activity activity, ArrayList branchMappings){ + private void addComplexActivityAttributes(Activity activity, ArrayList branchMappings, Integer toolActivityUIID){ ComplexActivity complex = (ComplexActivity) activity; if ( complex.getDefaultActivity() != null ) { defaultActivityUIID = complex.getDefaultActivity().getActivityUIID(); @@ -391,7 +395,7 @@ else if(activity.isBranchingActivity()) addBranchingActivityAttributes((BranchingActivity)activity); else - addSequenceActivityAttributes((SequenceActivity)activity, branchMappings); + addSequenceActivityAttributes((SequenceActivity)activity, branchMappings, toolActivityUIID); } private void addGroupingActivityAttributes(GroupingActivity groupingActivity){ @@ -416,11 +420,11 @@ this.endXCoord = activity.getEndXcoord(); this.endYCoord = activity.getEndYcoord(); } - private void addSequenceActivityAttributes(SequenceActivity activity, ArrayList branchMappings){ + private void addSequenceActivityAttributes(SequenceActivity activity, ArrayList branchMappings, Integer toolActivityUIID){ Iterator iter = activity.getBranchEntries().iterator(); while ( iter.hasNext() ) { BranchActivityEntry ba = (BranchActivityEntry) iter.next(); - branchMappings.add(ba.getBranchActivityEntryDTO()); + branchMappings.add(ba.getBranchActivityEntryDTO(toolActivityUIID)); } } private void addToolActivityAttributes(ToolActivity toolActivity){ Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BranchConditionDTO.java =================================================================== diff -u -r97612142f4697066beb66064e83ff31fef1712b9 -r039707d1e936b6be92842a45e442d37db9886513 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BranchConditionDTO.java (.../BranchConditionDTO.java) (revision 97612142f4697066beb66064e83ff31fef1712b9) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BranchConditionDTO.java (.../BranchConditionDTO.java) (revision 039707d1e936b6be92842a45e442d37db9886513) @@ -45,8 +45,9 @@ private String startValue; private String endValue; private String exactMatchValue; + private Integer toolActivityUIID; - public BranchConditionDTO( BranchCondition condition ) { + public BranchConditionDTO( BranchCondition condition, Integer toolActivityUIID ) { this.conditionId = condition.getConditionId(); this.conditionUIID = condition.getConditionUIID(); this.orderID = condition.getOrderId(); @@ -56,6 +57,7 @@ this.startValue = condition.getStartValue(); this.endValue = condition.getEndValue(); this.exactMatchValue = condition.getExactMatchValue(); + this.toolActivityUIID = toolActivityUIID; } public Long getConditionId() { @@ -131,5 +133,19 @@ public void setDisplayName(String displayName) { this.displayName = displayName; } + + /** The UIID of the tool activity that will be queried for the tool output. This should match the + * output field in the appropriate branching activity. It is here to make life easier on the Flash side - so that + * it has the UIID somewhere if the user changes from a tool based branch -> group/teacher based and + * back to tool based without saving. + * @return toolActivityUIID + */ + public Integer getToolActivityUIID() { + return toolActivityUIID; + } + + public void setToolActivityUIID(Integer toolActivityUIID) { + this.toolActivityUIID = toolActivityUIID; + } }