Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml,v
diff -u -r1.39 -r1.40
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml 29 Aug 2007 03:45:13 -0000 1.39
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml 16 Oct 2007 02:19:52 -0000 1.40
@@ -130,7 +130,7 @@
-
+
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java,v
diff -u -r1.67 -r1.68
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 5 Sep 2007 23:24:43 -0000 1.67
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java 16 Oct 2007 02:19:52 -0000 1.68
@@ -1051,5 +1051,31 @@
return null;
}
-
+ /** Get the input activity UIIDs in a format suitable for Flash. See also getToolInputActivityID */
+ public ArrayList getInputActivityUIIDs() {
+ ArrayList list = new ArrayList();
+ if ( getInputActivities() != null && getInputActivities().size() > 0 ) {
+ Iterator iter = getInputActivities().iterator();
+ while ( iter.hasNext() ) {
+ Activity inputAct = (Activity) iter.next();
+ list.add(inputAct.getActivityUIID());
+ }
+ }
+ return list;
+ }
+
+ /**
+ * Get the first input activity's UIID as the tool input activity. The db is set up to allow multiple input
+ * activities, but at present we only support one. See also getInputActivityUIIDs.
+ */
+ public Integer getToolInputActivityUIID() {
+ if ( getInputActivities() != null ) {
+ Iterator iter = getInputActivities().iterator();
+ if ( iter.hasNext() ) {
+ return ((Activity)iter.next()).getActivityUIID();
+ }
+ }
+ return null;
+ }
+
}
\ No newline at end of file
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.37 -r1.38
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java 15 Oct 2007 01:57:32 -0000 1.37
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java 16 Oct 2007 02:19:52 -0000 1.38
@@ -313,6 +313,8 @@
}
public AuthoringActivityDTO(Activity activity, ArrayList branchMappings){
+ processActivityType(activity, branchMappings);
+
this.activityID = activity.getActivityId();
this.activityUIID = activity.getActivityUIID();
this.description = activity.getDescription();
@@ -353,36 +355,24 @@
this.initialised = activity.isInitialised();
this.stopAfterActivity = activity.isStopAfterActivity();
- if ( activity.getInputActivities() != null && activity.getInputActivities().size() > 0 ) {
- ArrayList list = new ArrayList();
- Iterator iter = activity.getInputActivities().iterator();
- while ( iter.hasNext() ) {
- Activity inputAct = (Activity) iter.next();
- list.add(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);
+ this.inputActivities = activity.getInputActivityUIIDs();
+ this.toolActivityUIID = activity.getToolInputActivityUIID();
}
- private void processActivityType(Activity activity, ArrayList branchMappings, Integer toolActivityUIID){
+ 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, branchMappings, toolActivityUIID);
+ addComplexActivityAttributes(activity, branchMappings);
}
- private void addComplexActivityAttributes(Activity activity, ArrayList branchMappings, Integer toolActivityUIID){
+ private void addComplexActivityAttributes(Activity activity, ArrayList branchMappings){
ComplexActivity complex = (ComplexActivity) activity;
if ( complex.getDefaultActivity() != null ) {
defaultActivityUIID = complex.getDefaultActivity().getActivityUIID();
@@ -395,7 +385,7 @@
else if(activity.isBranchingActivity())
addBranchingActivityAttributes((BranchingActivity)activity);
else
- addSequenceActivityAttributes((SequenceActivity)activity, branchMappings, toolActivityUIID);
+ addSequenceActivityAttributes((SequenceActivity)activity, branchMappings);
}
private void addGroupingActivityAttributes(GroupingActivity groupingActivity){
@@ -420,13 +410,18 @@
this.endXCoord = activity.getEndXcoord();
this.endYCoord = activity.getEndYcoord();
}
- private void addSequenceActivityAttributes(SequenceActivity activity, ArrayList branchMappings, Integer toolActivityUIID){
+ private void addSequenceActivityAttributes(SequenceActivity activity, ArrayList branchMappings){
+
+ Activity parentActivity = activity.getParentActivity();
+ Integer toolActivityUIID = parentActivity != null ? parentActivity.getToolInputActivityUIID() : null;
+
Iterator iter = activity.getBranchEntries().iterator();
while ( iter.hasNext() ) {
BranchActivityEntry ba = (BranchActivityEntry) iter.next();
branchMappings.add(ba.getBranchActivityEntryDTO(toolActivityUIID));
}
}
+
private void addToolActivityAttributes(ToolActivity toolActivity){
this.toolContentID = toolActivity.getToolContentId();
this.toolID = toolActivity.getTool().getToolId();