Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java,v diff -u -r1.2 -r1.3 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java 5 Sep 2007 23:24:43 -0000 1.2 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchActivityEntry.java 15 Oct 2007 01:58:25 -0000 1.3 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java,v diff -u -r1.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java 17 Sep 2007 01:23:34 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchCondition.java 15 Oct 2007 01:58:03 -0000 1.5 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java,v diff -u -r1.36 -r1.37 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java 17 Sep 2007 01:23:34 -0000 1.36 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java 15 Oct 2007 01:57:32 -0000 1.37 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BranchConditionDTO.java,v diff -u -r1.3 -r1.4 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BranchConditionDTO.java 5 Sep 2007 08:08:56 -0000 1.3 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/BranchConditionDTO.java 15 Oct 2007 01:57:17 -0000 1.4 @@ -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; + } }