Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== diff -u -r8bbaae4777d25bac513a7adc0b42b2d8480e05cc -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 8bbaae4777d25bac513a7adc0b42b2d8480e05cc) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -27,11 +27,13 @@ import java.util.Iterator; import java.util.Set; import java.util.TreeSet; +import java.util.Vector; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; -import org.lamsfoundation.lams.learningdesign.dto.ProgressActivityDTO; +import org.lamsfoundation.lams.learningdesign.dto.MonitoringActivityDTO; +import org.lamsfoundation.lams.learningdesign.strategy.SimpleActivityStrategy; import org.lamsfoundation.lams.lesson.LearnerProgress; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.util.Nullable; @@ -66,6 +68,14 @@ public static final int CATEGORY_SPLIT = 5; /******************************************************************/ + /** + * static final variables indicating the grouping_support of activities + *******************************************************************/ + public static final int GROUPING_SUPPORT_NONE = 1; + public static final int GROUPING_SUPPORT_OPTIONAL = 2; + public static final int GROUPING_SUPPORT_REQUIRED = 3; + /******************************************************************/ + /** WDDX packet specific attribute created to identify the * type of object being passed.*/ public static final String OBJECT_TYPE ="Activity"; @@ -111,7 +121,10 @@ /** Offline Instruction for this activity*/ private String offlineInstructions; - + + /** Online Instructions for this activity*/ + private String onlineInstructions; + /** The image that represents the icon of this * activity in the UI*/ private String libraryActivityUiImage; @@ -155,8 +168,37 @@ /** the activity_ui_id of the parent activity */ private Integer parentUIID; - + + private Boolean applyGrouping; + + private Integer groupingSupportType; + + /** + * @return Returns the applyGrouping. + */ + public Boolean getApplyGrouping() { + return applyGrouping; + } + /** + * @param applyGrouping The applyGrouping to set. + */ + public void setApplyGrouping(Boolean applyGrouping) { + this.applyGrouping = applyGrouping; + } + /** + * @return Returns the groupingSupportType. + */ + public Integer getGroupingSupportType() { + return groupingSupportType; + } + /** + * @param groupingSupportType The groupingSupportType to set. + */ + public void setGroupingSupportType(Integer groupingSupportType) { + this.groupingSupportType = groupingSupportType; + } protected ActivityStrategy activityStrategy; + protected SimpleActivityStrategy simpleActivityStrategy; /** full constructor */ public Activity( @@ -585,6 +627,20 @@ { return getActivityTypeId().intValue()==SEQUENCE_ACTIVITY_TYPE; } + public boolean isComplexActivity(){ + return getActivityTypeId().intValue()== SEQUENCE_ACTIVITY_TYPE || + getActivityTypeId().intValue()== PARALLEL_ACTIVITY_TYPE || + getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE; + } + public boolean isGateActivity(){ + return getActivityTypeId().intValue()== SCHEDULE_GATE_ACTIVITY_TYPE || + getActivityTypeId().intValue()== PERMISSION_GATE_ACTIVITY_TYPE || + getActivityTypeId().intValue()== SYNCH_GATE_ACTIVITY_TYPE; + + } + public boolean isGroupingActivity(){ + return getActivityTypeId().intValue()== GROUPING_ACTIVITY_TYPE; + } /** * Delegate to activity strategy to check up the status of all children. * @@ -612,6 +668,7 @@ public Activity getNextActivityByParent(Activity currentChild) { return activityStrategy.getNextActivityByParent(this,currentChild); + } } public Integer getActivityCategoryID() { @@ -620,6 +677,42 @@ public void setActivityCategoryID(Integer activityCategoryID) { this.activityCategoryID = activityCategoryID; } + public Integer[] getContributionType(){ + return simpleActivityStrategy.getContributionType(this); + } + public MonitoringActivityDTO getMonitoringActivityDTO(){ + return new MonitoringActivityDTO(this); + } + public MonitoringActivityDTO getMonitoringActivityDTO(Activity activity){ + Integer contributionType[]= null; + if(activity.isGateActivity() || activity.isToolActivity() || activity.isGroupingActivity()){ + contributionType = activity.getContributionType(); + return new MonitoringActivityDTO(activity,contributionType); + } + else + return new MonitoringActivityDTO(activity); + } + public Vector getMonitoringActivityDTOSet(Set activities){ + Vector children = new Vector(); + Iterator iterator = activities.iterator(); + while(iterator.hasNext()){ + Activity activity = (Activity)iterator.next(); + children.add(getMonitoringActivityDTO(activity)); + } + return children; + } + /** + * @return Returns the onlineInstructions. + */ + public String getOnlineInstructions() { + return onlineInstructions; + } + /** + * @param onlineInstructions The onlineInstructions to set. + */ + public void setOnlineInstructions(String onlineInstructions) { + this.onlineInstructions = onlineInstructions; + } /** * Return the activity dto for progress view. Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java =================================================================== diff -u -rb6b326d086fe25330c98956012a4e5773fcfa1dc -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java (.../ComplexActivity.java) (revision b6b326d086fe25330c98956012a4e5773fcfa1dc) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ComplexActivity.java (.../ComplexActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -80,9 +80,15 @@ * */ public Set getActivities() { - if(this.activities==null) + if(this.activities==null){ setActivities(new TreeSet(new ActivityOrderComparator())); - return this.activities; + return this.activities; + } + else{ + TreeSet sortedActivities = new TreeSet(new ActivityOrderComparator()); + sortedActivities.addAll(this.activities); + return sortedActivities; + } } public void setActivities(Set activities) { Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupingActivity.java =================================================================== diff -u -r90e9d312233aaad8ee84b66f1f669ba242e2b4db -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupingActivity.java (.../GroupingActivity.java) (revision 90e9d312233aaad8ee84b66f1f669ba242e2b4db) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupingActivity.java (.../GroupingActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -3,6 +3,7 @@ import java.io.Serializable; import java.util.Date; import org.apache.commons.lang.builder.ToStringBuilder; +import org.lamsfoundation.lams.learningdesign.strategy.GroupingActivityStrategy; /** @@ -63,11 +64,13 @@ transitionFrom); this.createGrouping = createGrouping; this.createGroupingUIID = create_grouping_ui_id; + super.simpleActivityStrategy = new GroupingActivityStrategy(); } /** default constructor */ public GroupingActivity() { + super.simpleActivityStrategy = new GroupingActivityStrategy(); } /** minimal constructor */ @@ -97,6 +100,7 @@ transitionFrom); this.createGrouping = createGrouping; this.createGroupingUIID = create_grouping_ui_id; + super.simpleActivityStrategy = new GroupingActivityStrategy(); } /** * This function creates a deep copy of the GroupingActivity passed @@ -115,6 +119,9 @@ groupingActivity.setXcoord(originalActivity.getXcoord()); groupingActivity.setYcoord(originalActivity.getYcoord()); groupingActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + groupingActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + groupingActivity.setApplyGrouping(originalActivity.getApplyGrouping()); + groupingActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); groupingActivity.setDefineLater(originalActivity.getDefineLater()); groupingActivity.setCreateDateTime(new Date()); groupingActivity.setRunOffline(originalActivity.getRunOffline()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java =================================================================== diff -u -r044d9eb7becb79e6fd5992aee261c8665f808524 -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision 044d9eb7becb79e6fd5992aee261c8665f808524) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -5,9 +5,11 @@ import java.io.Serializable; import java.util.Date; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.TreeSet; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; @@ -222,6 +224,7 @@ newDesign.setDuration(design.getDuration()); newDesign.setLicense(design.getLicense()); newDesign.setLicenseText(design.getLicenseText()); + newDesign.setLastModifiedDateTime(new Date()); return newDesign; } public Long getLearningDesignId() { @@ -329,7 +332,15 @@ this.transitions = transitions; } public Set getActivities() { - return this.activities; + if(this.activities==null){ + setActivities(new TreeSet(new ActivityOrderComparator())); + return this.activities; + } + else{ + TreeSet sortedActivities = new TreeSet(new ActivityOrderComparator()); + sortedActivities.addAll(this.activities); + return sortedActivities; + } } public void setActivities(Set activities) { this.activities = activities; @@ -350,6 +361,22 @@ public int hashCode() { return new HashCodeBuilder().append(getReadOnly()).toHashCode(); } + public HashMap getActivityTree(){ + HashMap parentActivities = new HashMap(); + Iterator iterator = this.getActivities().iterator(); + while(iterator.hasNext()){ + Object object = iterator.next(); + if(object instanceof ComplexActivity){ + ComplexActivity complexActivity =(ComplexActivity)object; + parentActivities.put(complexActivity.getActivityId(),complexActivity.getActivities()); + }else{ + Activity activity = (Activity)object; + if(activity.getParentActivity()==null) + parentActivities.put(activity.getActivityId(),new HashSet()); + } + } + return parentActivities; + } public HashSet getParentActivities(){ HashSet parentActivities = new HashSet(); Iterator iterator = this.getActivities().iterator(); @@ -359,7 +386,7 @@ parentActivities.add(activity); } return parentActivities; - } + } public Activity calculateFirstActivity(){ Activity firstActivity = null; HashSet parentActivities = this.getParentActivities(); @@ -438,5 +465,5 @@ } public void setLastModifiedDateTime(Date lastModifiedDateTime) { this.lastModifiedDateTime = lastModifiedDateTime; - } + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsActivity.java =================================================================== diff -u -r90e9d312233aaad8ee84b66f1f669ba242e2b4db -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsActivity.java (.../OptionsActivity.java) (revision 90e9d312233aaad8ee84b66f1f669ba242e2b4db) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsActivity.java (.../OptionsActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -116,6 +116,9 @@ newOptionsActivity.setXcoord(originalActivity.getXcoord()); newOptionsActivity.setYcoord(originalActivity.getYcoord()); newOptionsActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + newOptionsActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + newOptionsActivity.setApplyGrouping(originalActivity.getApplyGrouping()); + newOptionsActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); newOptionsActivity.setGrouping(originalActivity.getGrouping()); newOptionsActivity.setGroupingUIID(originalActivity.getGroupingUIID()); newOptionsActivity.setDefineLater(originalActivity.getDefineLater()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ParallelActivity.java =================================================================== diff -u -r90e9d312233aaad8ee84b66f1f669ba242e2b4db -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ParallelActivity.java (.../ParallelActivity.java) (revision 90e9d312233aaad8ee84b66f1f669ba242e2b4db) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ParallelActivity.java (.../ParallelActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -103,6 +103,10 @@ newParallelActivity.setYcoord(originalActivity.getYcoord()); newParallelActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + newParallelActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + newParallelActivity.setApplyGrouping(originalActivity.getApplyGrouping()); + newParallelActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newParallelActivity.setGrouping(originalActivity.getGrouping()); newParallelActivity.setLearningLibrary(originalActivity.getLearningLibrary()); newParallelActivity.setGroupingUIID(originalActivity.getGroupingUIID()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/PermissionGateActivity.java =================================================================== diff -u -r90e9d312233aaad8ee84b66f1f669ba242e2b4db -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/PermissionGateActivity.java (.../PermissionGateActivity.java) (revision 90e9d312233aaad8ee84b66f1f669ba242e2b4db) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/PermissionGateActivity.java (.../PermissionGateActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -4,6 +4,7 @@ import java.util.Date; import org.apache.commons.lang.builder.ToStringBuilder; +import org.lamsfoundation.lams.learningdesign.strategy.PermissionGateActivityStrategy; /** @@ -54,11 +55,13 @@ transitionTo, transitionFrom, gateActivityLevelId); + super.simpleActivityStrategy = new PermissionGateActivityStrategy(); } /** default constructor */ public PermissionGateActivity() { + super.simpleActivityStrategy = new PermissionGateActivityStrategy(); } /** minimal constructor */ @@ -85,6 +88,7 @@ transitionTo, transitionFrom, gateActivityLevelId); + super.simpleActivityStrategy = new PermissionGateActivityStrategy(); } /** * Makes a copy of the PermissionGateActivity for authoring, preview and monitoring enviornment @@ -105,6 +109,11 @@ newPermissionGateActivity.setXcoord(originalActivity.getXcoord()); newPermissionGateActivity.setYcoord(originalActivity.getYcoord()); newPermissionGateActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + + newPermissionGateActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + newPermissionGateActivity.setApplyGrouping(originalActivity.getApplyGrouping()); + newPermissionGateActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newPermissionGateActivity.setGrouping(originalActivity.getGrouping()); newPermissionGateActivity.setGroupingUIID(originalActivity.getGroupingUIID()); newPermissionGateActivity.setLearningLibrary(originalActivity.getLearningLibrary()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ScheduleGateActivity.java =================================================================== diff -u -r90e9d312233aaad8ee84b66f1f669ba242e2b4db -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ScheduleGateActivity.java (.../ScheduleGateActivity.java) (revision 90e9d312233aaad8ee84b66f1f669ba242e2b4db) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ScheduleGateActivity.java (.../ScheduleGateActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -138,6 +138,11 @@ newScheduleGateActivity.setXcoord(originalActivity.getXcoord()); newScheduleGateActivity.setYcoord(originalActivity.getYcoord()); newScheduleGateActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + + newScheduleGateActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + newScheduleGateActivity.setApplyGrouping(originalActivity.getApplyGrouping()); + newScheduleGateActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newScheduleGateActivity.setGrouping(originalActivity.getGrouping()); newScheduleGateActivity.setGroupingUIID(originalActivity.getGroupingUIID()); newScheduleGateActivity.setLearningLibrary(originalActivity.getLearningLibrary()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java =================================================================== diff -u -r926492ea3681d769537e2d69305b2b9f8d17b4fd -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java (.../SequenceActivity.java) (revision 926492ea3681d769537e2d69305b2b9f8d17b4fd) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java (.../SequenceActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -104,6 +104,11 @@ newSequenceActivity.setXcoord(originalActivity.getXcoord()); newSequenceActivity.setYcoord(originalActivity.getYcoord()); newSequenceActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + + newSequenceActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + newSequenceActivity.setApplyGrouping(originalActivity.getApplyGrouping()); + newSequenceActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newSequenceActivity.setGrouping(originalActivity.getGrouping()); newSequenceActivity.setGroupingUIID(originalActivity.getGroupingUIID()); newSequenceActivity.setLearningLibrary(originalActivity.getLearningLibrary()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/SimpleActivity.java =================================================================== diff -u -r7f203b0b0a2e56896f7eee5367b52d1ec4db483e -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/SimpleActivity.java (.../SimpleActivity.java) (revision 7f203b0b0a2e56896f7eee5367b52d1ec4db483e) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/SimpleActivity.java (.../SimpleActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -10,7 +10,6 @@ */ public abstract class SimpleActivity extends Activity implements Serializable { - /** full constructor */ public SimpleActivity(Long activityId, Integer id, @@ -84,5 +83,4 @@ .append("activityId", getActivityId()) .toString(); } - } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/SynchGateActivity.java =================================================================== diff -u -r926492ea3681d769537e2d69305b2b9f8d17b4fd -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/SynchGateActivity.java (.../SynchGateActivity.java) (revision 926492ea3681d769537e2d69305b2b9f8d17b4fd) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/SynchGateActivity.java (.../SynchGateActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -102,6 +102,11 @@ newSynchGateActivity.setXcoord(originalActivity.getXcoord()); newSynchGateActivity.setYcoord(originalActivity.getYcoord()); newSynchGateActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + + newSynchGateActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + newSynchGateActivity.setApplyGrouping(originalActivity.getApplyGrouping()); + newSynchGateActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newSynchGateActivity.setGrouping(originalActivity.getGrouping()); newSynchGateActivity.setGroupingUIID(originalActivity.getGroupingUIID()); newSynchGateActivity.setLearningLibrary(originalActivity.getLearningLibrary()); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java =================================================================== diff -u -r926492ea3681d769537e2d69305b2b9f8d17b4fd -r0c87ef82b228f2c4e0593ce7884ea252799a114d --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java (.../ToolActivity.java) (revision 926492ea3681d769537e2d69305b2b9f8d17b4fd) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java (.../ToolActivity.java) (revision 0c87ef82b228f2c4e0593ce7884ea252799a114d) @@ -2,10 +2,10 @@ import java.io.Serializable; import java.util.Date; -import java.util.HashSet; import java.util.Set; import org.apache.commons.lang.builder.ToStringBuilder; +import org.lamsfoundation.lams.learningdesign.strategy.ToolActivityStrategy; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.tool.GroupedToolSession; import org.lamsfoundation.lams.tool.NonGroupedToolSession; @@ -27,6 +27,8 @@ /** List of sessions associated with this ToolActivity */ private Set toolSessions; + + /** full constructor */ public ToolActivity(Long activityId, @@ -72,10 +74,12 @@ transitionFrom); this.tool = tool; this.toolContentId = toolContentId; + super.simpleActivityStrategy = new ToolActivityStrategy(); } /** default constructor */ public ToolActivity(){ + super.simpleActivityStrategy = new ToolActivityStrategy(); } /** minimal constructor */ @@ -104,6 +108,7 @@ transitionFrom); this.tool = tool; this.toolContentId = toolContentId; + super.simpleActivityStrategy = new ToolActivityStrategy(); } /** @@ -117,6 +122,7 @@ newToolActivity.setTool(originalActivity.getTool()); + /* TODO Generate a new toolContentID for this new ToolActivity * For now setting it to the contentID of the old activity */ @@ -129,17 +135,22 @@ newToolActivity.setXcoord(originalActivity.getXcoord()); newToolActivity.setYcoord(originalActivity.getYcoord()); newToolActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + + newToolActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); + newToolActivity.setApplyGrouping(originalActivity.getApplyGrouping()); newToolActivity.setGrouping(originalActivity.getGrouping()); + newToolActivity.setGroupingUIID(originalActivity.getGroupingUIID()); newToolActivity.setOrderId(originalActivity.getOrderId()); newToolActivity.setDefineLater(originalActivity.getDefineLater()); newToolActivity.setLearningLibrary(originalActivity.getLearningLibrary()); newToolActivity.setCreateDateTime(new Date()); newToolActivity.setRunOffline(originalActivity.getRunOffline()); newToolActivity.setOfflineInstructions(originalActivity.getOfflineInstructions()); + newToolActivity.setOnlineInstructions(originalActivity.getOnlineInstructions()); + newToolActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); newToolActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); newToolActivity.setLibraryActivity(originalActivity.getLibraryActivity()); - newToolActivity.setToolSessions(new HashSet()); return newToolActivity; } @@ -151,7 +162,7 @@ */ public ToolSession createToolSessionForActivity(User learner,Lesson lesson) { - if(this.getTool().getSupportsGrouping()) + if(this.getTool().getGroupingSupportType().intValue()!= 1) return new GroupedToolSession(this, new Date(System.currentTimeMillis()), ToolSession.STARTED_STATE, @@ -231,5 +242,5 @@ public boolean isNull() { return false; - } + } }