Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java =================================================================== diff -u -r0badad92963e07de13c104187ca773f8d1abec70 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 0badad92963e07de13c104187ca773f8d1abec70) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -218,7 +218,7 @@ throw new ObjectExtractorException("activityTypeID missing"); } - Object activityObject = Activity.getActivityInstance(activityTypeID.intValue()); + Activity activityObject = Activity.getActivityInstance(activityTypeID.intValue()); processActivityType(activityObject,activityDetails); Activity activity =(Activity)activityObject; activity.setActivityTypeId(activityTypeID); @@ -279,13 +279,13 @@ activity.setGroupingSupportType(WDDXProcessor.convertToInteger(activityDetails,"groupingSupportType")); return activity; } - private void processActivityType(Object activity, Hashtable activityDetails) + private void processActivityType(Activity activity, Hashtable activityDetails) throws WDDXProcessorConversionException, ObjectExtractorException { - if(activity instanceof GroupingActivity) + if(activity.isGroupingActivity()) buildGroupingActivity((GroupingActivity)activity,activityDetails); - else if(activity instanceof ToolActivity) + else if(activity.isToolActivity()) buildToolActivity((ToolActivity)activity,activityDetails); - else if(activity instanceof GateActivity) + else if(activity.isGateActivity()) buildGateActivity(activity,activityDetails); else buildComplexActivity(activity,activityDetails); Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -r49de4737694691f60400ecd00745eaa646bcd724 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 49de4737694691f60400ecd00745eaa646bcd724) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -36,21 +36,10 @@ import org.lamsfoundation.lams.authoring.ObjectExtractorException; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ActivityOrderComparator; -import org.lamsfoundation.lams.learningdesign.ChosenGrouping; -import org.lamsfoundation.lams.learningdesign.ComplexActivity; -import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.learningdesign.Grouping; import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.LearningLibrary; -import org.lamsfoundation.lams.learningdesign.OptionsActivity; -import org.lamsfoundation.lams.learningdesign.ParallelActivity; -import org.lamsfoundation.lams.learningdesign.PermissionGateActivity; -import org.lamsfoundation.lams.learningdesign.RandomGrouping; -import org.lamsfoundation.lams.learningdesign.ScheduleGateActivity; -import org.lamsfoundation.lams.learningdesign.SequenceActivity; -import org.lamsfoundation.lams.learningdesign.SynchGateActivity; -import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.learningdesign.Transition; import org.lamsfoundation.lams.learningdesign.dao.hibernate.ActivityDAO; import org.lamsfoundation.lams.learningdesign.dao.hibernate.GroupDAO; @@ -66,9 +55,9 @@ import org.lamsfoundation.lams.themes.dao.ICSSThemeDAO; import org.lamsfoundation.lams.themes.dto.CSSThemeBriefDTO; import org.lamsfoundation.lams.themes.dto.CSSThemeDTO; -import org.lamsfoundation.lams.tool.dao.hibernate.ToolDAO; -import org.lamsfoundation.lams.tool.ToolContentIDGenerator; import org.lamsfoundation.lams.tool.Tool; +import org.lamsfoundation.lams.tool.ToolContentIDGenerator; +import org.lamsfoundation.lams.tool.dao.hibernate.ToolDAO; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; @@ -281,7 +270,8 @@ * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#copyLearningDesign(org.lamsfoundation.lams.learningdesign.LearningDesign, java.lang.Integer, org.lamsfoundation.lams.usermanagement.User) */ public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user){ - WorkspaceFolder runSequencesFolder = workspaceFolderDAO.getRunSequencesFolderForUser(user.getUserId()); + Integer userId = user.getUserId(); + WorkspaceFolder runSequencesFolder = workspaceFolderDAO.getRunSequencesFolderForUser(userId); return copyLearningDesign(originalLearningDesign,copyType,user, runSequencesFolder); } @@ -334,7 +324,7 @@ oldParentActivities.addAll(originalLearningDesign.getParentActivities()); Iterator iterator = oldParentActivities.iterator(); while(iterator.hasNext()){ - Object parentActivity = iterator.next(); + Activity parentActivity = (Activity)iterator.next(); Activity newParentActivity = getActivityCopy(parentActivity); newParentActivity.setLearningDesign(newLearningDesign); activityDAO.insert(newParentActivity); @@ -391,71 +381,20 @@ * @param activity The object to be deep-copied * @return Activity The new deep-copied Activity object */ - private Activity getActivityCopy(Object activity){ - if(activity instanceof GroupingActivity){ - GroupingActivity newGroupingActivity = GroupingActivity.createCopy((GroupingActivity)activity); - createGroupingForGroupingActivity(newGroupingActivity,(GroupingActivity)activity); + private Activity getActivityCopy(Activity activity){ + if ( Activity.GROUPING_ACTIVITY_TYPE == activity.getActivityTypeId().intValue() ) { + GroupingActivity newGroupingActivity = (GroupingActivity) activity.createCopy(); + // now we need to manually add the grouping to the session, as we can't easily + // set up a cascade + Grouping grouping = newGroupingActivity.getCreateGrouping(); + if ( grouping != null ) + groupingDAO.insert(grouping); return newGroupingActivity; } - else if(activity instanceof ComplexActivity) - return createComplexActivityCopy(activity); - else if(activity instanceof GateActivity) - return createGateActivityCopy(activity); else - return ToolActivity.createCopy((ToolActivity)activity); + return activity.createCopy(); } /** - * This function creates a new Grouping for the new GroupingActivity - * based on the grouping type of the old GroupingActivity from - * which it has been deep-copied. - * - * @param groupingActivity The new GroupingActivity - * @param oldActivity The old GroupingActivity - */ - private void createGroupingForGroupingActivity(GroupingActivity groupingActivity, GroupingActivity oldActivity){ - Grouping grouping = oldActivity.getCreateGrouping(); - - if(grouping.getGroupingTypeId()==Grouping.CHOSEN_GROUPING_TYPE){ - ChosenGrouping chosenGrouping = ChosenGrouping.createCopy((ChosenGrouping)grouping); - groupingDAO.insert(chosenGrouping); - groupingActivity.setCreateGrouping(chosenGrouping); - } - else{ - RandomGrouping randomGrouping = RandomGrouping.createCopy((RandomGrouping)grouping); - groupingDAO.insert(randomGrouping); - groupingActivity.setCreateGrouping(randomGrouping); - } - } - /** - * This function creates a deep copy of ComplexActivity object - * - * @param activity The object to be deep copied - * @return Activity The deep-copied object - */ - private Activity createComplexActivityCopy(Object activity){ - if(activity instanceof OptionsActivity) - return OptionsActivity.createCopy((OptionsActivity)activity); - else if (activity instanceof ParallelActivity) - return ParallelActivity.createCopy((ParallelActivity)activity); - else - return SequenceActivity.createCopy((SequenceActivity)activity); - - } - /** - * This function creates a deep copy of the GateActivity object - * - * @param activity The object to be deep copied - * @return Activity The deep-copied object - */ - private Activity createGateActivityCopy(Object activity){ - if(activity instanceof ScheduleGateActivity) - return ScheduleGateActivity.createCopy((ScheduleGateActivity)activity); - else if (activity instanceof PermissionGateActivity) - return PermissionGateActivity.createCopy((PermissionGateActivity)activity); - else - return SynchGateActivity.createCopy((SynchGateActivity)activity); - } - /** * Returns a set of child activities for the given parent activitity * * @param parentActivity The parent activity Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -254,7 +254,7 @@ this.transitionFrom = transitionFrom; } - public static Object getActivityInstance(int activityType) + public static Activity getActivityInstance(int activityType) { switch(activityType){ case TOOL_ACTIVITY_TYPE: @@ -658,6 +658,16 @@ return getActivityTypeId().intValue()==SEQUENCE_ACTIVITY_TYPE; } + public boolean isParallelActivity() + { + return getActivityTypeId().intValue()== PARALLEL_ACTIVITY_TYPE; + } + + public boolean isOptionsActivity() + { + return getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE; + } + public boolean isComplexActivity() { return getActivityTypeId().intValue()== SEQUENCE_ACTIVITY_TYPE || @@ -716,15 +726,16 @@ return new ProgressActivityDTO(this.activityId); } - - public Set getMonitoringActivityDTO(Integer[] contributionType) + + /** Get the monitoring DTO for this activity. Overridden by SimpleActivity + * to include the contribution types */ + public Set getMonitoringActivityDTO() { HashSet dtoSet = new HashSet(); - for(int i=0;i + * Note: the grouping + * object will be created here but the calling class will need to insert + * it into the database otherwise it won't be persisted (can't easily set + * it up to cascade). Call getCreateGrouping() to get the grouping object + * to be stored via the session. + * + * @return GroupActivity, which is copy of this activity. */ - public static GroupingActivity createCopy(GroupingActivity originalActivity){ + public Activity createCopy(){ GroupingActivity groupingActivity = new GroupingActivity(); - groupingActivity.setActivityUIID(originalActivity.getActivityUIID()); - groupingActivity.setDescription(originalActivity.getDescription()); - groupingActivity.setTitle(originalActivity.getTitle()); - groupingActivity.setHelpText(originalActivity.getHelpText()); - groupingActivity.setXcoord(originalActivity.getXcoord()); - groupingActivity.setYcoord(originalActivity.getYcoord()); - groupingActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + groupingActivity.setActivityUIID(this.getActivityUIID()); + groupingActivity.setDescription(this.getDescription()); + groupingActivity.setTitle(this.getTitle()); + groupingActivity.setHelpText(this.getHelpText()); + groupingActivity.setXcoord(this.getXcoord()); + groupingActivity.setYcoord(this.getYcoord()); + groupingActivity.setActivityTypeId(this.getActivityTypeId()); - groupingActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); - groupingActivity.setApplyGrouping(originalActivity.getApplyGrouping()); - groupingActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + groupingActivity.setGroupingSupportType(this.getGroupingSupportType()); + groupingActivity.setApplyGrouping(this.getApplyGrouping()); + groupingActivity.setActivityCategoryID(this.getActivityCategoryID()); - groupingActivity.setDefineLater(originalActivity.getDefineLater()); + groupingActivity.setDefineLater(this.getDefineLater()); groupingActivity.setCreateDateTime(new Date()); - groupingActivity.setRunOffline(originalActivity.getRunOffline()); - groupingActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); + groupingActivity.setRunOffline(this.getRunOffline()); + groupingActivity.setLibraryActivityUiImage(this.getLibraryActivityUiImage()); + + Grouping currentGrouping = this.getCreateGrouping(); + Grouping newGrouping = currentGrouping.createCopy(); + groupingActivity.setCreateGrouping(newGrouping); + return groupingActivity; } + public String toString() { return new ToStringBuilder(this) Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java =================================================================== diff -u -rb3dbc137e110d79b6aae154a808b7ca6e7de403d -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision b3dbc137e110d79b6aae154a808b7ca6e7de403d) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -402,14 +402,13 @@ HashMap parentActivities = new HashMap(); Iterator iterator = this.getActivities().iterator(); while(iterator.hasNext()){ - Object object = iterator.next(); - if(object instanceof ComplexActivity){ - ComplexActivity complexActivity =(ComplexActivity)object; + Activity act = (Activity) iterator.next(); + if(act.isComplexActivity()){ + ComplexActivity complexActivity =(ComplexActivity)act; parentActivities.put(complexActivity.getActivityId(),complexActivity.getActivities()); }else{ - Activity activity = (Activity)object; - if(activity.getParentActivity()==null) - parentActivities.put(activity.getActivityId(),new HashSet()); + if(act.getParentActivity()==null) + parentActivities.put(act.getActivityId(),new HashSet()); } } return parentActivities; Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullActivity.java =================================================================== diff -u -r55901923afea1cbd769d8daa05051aa050bb99b6 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullActivity.java (.../NullActivity.java) (revision 55901923afea1cbd769d8daa05051aa050bb99b6) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/NullActivity.java (.../NullActivity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -37,4 +37,12 @@ return true; } + /** Create a deep copy of the this activity. It should return the same + * subclass as the activity being copied + * @return deep copy of this object + */ + public Activity createCopy() { + return new NullActivity(); + } + } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsActivity.java =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsActivity.java (.../OptionsActivity.java) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsActivity.java (.../OptionsActivity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -121,35 +121,35 @@ activities); super.activityStrategy = new OptionsActivityStrategy(this); } - public static OptionsActivity createCopy(OptionsActivity originalActivity){ + public Activity createCopy(){ OptionsActivity newOptionsActivity = new OptionsActivity(); /** OptionsActivity Specific Attributes */ - newOptionsActivity.setMaxNumberOfOptions(originalActivity.getMaxNumberOfOptions()); - newOptionsActivity.setMinNumberOfOptions(originalActivity.getMinNumberOfOptions()); - newOptionsActivity.setOptionsInstructions(originalActivity.getOptionsInstructions()); + newOptionsActivity.setMaxNumberOfOptions(this.getMaxNumberOfOptions()); + newOptionsActivity.setMinNumberOfOptions(this.getMinNumberOfOptions()); + newOptionsActivity.setOptionsInstructions(this.getOptionsInstructions()); /** Generic Activity Attributes */ - newOptionsActivity.setActivityUIID(originalActivity.getActivityUIID()); - newOptionsActivity.setDescription(originalActivity.getDescription()); - newOptionsActivity.setTitle(originalActivity.getTitle()); - newOptionsActivity.setHelpText(originalActivity.getHelpText()); - newOptionsActivity.setXcoord(originalActivity.getXcoord()); - newOptionsActivity.setYcoord(originalActivity.getYcoord()); - newOptionsActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + newOptionsActivity.setActivityUIID(this.getActivityUIID()); + newOptionsActivity.setDescription(this.getDescription()); + newOptionsActivity.setTitle(this.getTitle()); + newOptionsActivity.setHelpText(this.getHelpText()); + newOptionsActivity.setXcoord(this.getXcoord()); + newOptionsActivity.setYcoord(this.getYcoord()); + newOptionsActivity.setActivityTypeId(this.getActivityTypeId()); - newOptionsActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); - newOptionsActivity.setApplyGrouping(originalActivity.getApplyGrouping()); - newOptionsActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newOptionsActivity.setGroupingSupportType(this.getGroupingSupportType()); + newOptionsActivity.setApplyGrouping(this.getApplyGrouping()); + newOptionsActivity.setActivityCategoryID(this.getActivityCategoryID()); - newOptionsActivity.setGrouping(originalActivity.getGrouping()); - newOptionsActivity.setGroupingUIID(originalActivity.getGroupingUIID()); - newOptionsActivity.setDefineLater(originalActivity.getDefineLater()); - newOptionsActivity.setLearningLibrary(originalActivity.getLearningLibrary()); + newOptionsActivity.setGrouping(this.getGrouping()); + newOptionsActivity.setGroupingUIID(this.getGroupingUIID()); + newOptionsActivity.setDefineLater(this.getDefineLater()); + newOptionsActivity.setLearningLibrary(this.getLearningLibrary()); newOptionsActivity.setCreateDateTime(new Date()); - newOptionsActivity.setRunOffline(originalActivity.getRunOffline()); - newOptionsActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); - newOptionsActivity.setLibraryActivity(originalActivity.getLibraryActivity()); + newOptionsActivity.setRunOffline(this.getRunOffline()); + newOptionsActivity.setLibraryActivityUiImage(this.getLibraryActivityUiImage()); + newOptionsActivity.setLibraryActivity(this.getLibraryActivity()); return newOptionsActivity; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ParallelActivity.java =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ParallelActivity.java (.../ParallelActivity.java) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ParallelActivity.java (.../ParallelActivity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -108,36 +108,34 @@ } /** * Makes a copy of the ParallelActivity for authoring, preview and monitoring enviornment - * - * @param originalActivity The activity that needs to be deep-copied * @return ParallelActivity Returns a deep-copy of the originalActivity */ - public static ParallelActivity createCopy(ParallelActivity originalActivity){ + public Activity createCopy(){ ParallelActivity newParallelActivity = new ParallelActivity(); - newParallelActivity.setActivityUIID(originalActivity.getActivityUIID()); - newParallelActivity.setDescription(originalActivity.getDescription()); - newParallelActivity.setTitle(originalActivity.getTitle()); - newParallelActivity.setHelpText(originalActivity.getHelpText()); - newParallelActivity.setXcoord(originalActivity.getXcoord()); - newParallelActivity.setYcoord(originalActivity.getYcoord()); - newParallelActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + newParallelActivity.setActivityUIID(this.getActivityUIID()); + newParallelActivity.setDescription(this.getDescription()); + newParallelActivity.setTitle(this.getTitle()); + newParallelActivity.setHelpText(this.getHelpText()); + newParallelActivity.setXcoord(this.getXcoord()); + newParallelActivity.setYcoord(this.getYcoord()); + newParallelActivity.setActivityTypeId(this.getActivityTypeId()); - newParallelActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); - newParallelActivity.setApplyGrouping(originalActivity.getApplyGrouping()); - newParallelActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newParallelActivity.setGroupingSupportType(this.getGroupingSupportType()); + newParallelActivity.setApplyGrouping(this.getApplyGrouping()); + newParallelActivity.setActivityCategoryID(this.getActivityCategoryID()); - newParallelActivity.setGrouping(originalActivity.getGrouping()); - newParallelActivity.setLearningLibrary(originalActivity.getLearningLibrary()); - newParallelActivity.setGroupingUIID(originalActivity.getGroupingUIID()); + newParallelActivity.setGrouping(this.getGrouping()); + newParallelActivity.setLearningLibrary(this.getLearningLibrary()); + newParallelActivity.setGroupingUIID(this.getGroupingUIID()); - newParallelActivity.setDefineLater(originalActivity.getDefineLater()); + newParallelActivity.setDefineLater(this.getDefineLater()); newParallelActivity.setCreateDateTime(new Date()); - newParallelActivity.setRunOffline(originalActivity.getRunOffline()); + newParallelActivity.setRunOffline(this.getRunOffline()); - newParallelActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); - newParallelActivity.setLibraryActivity(originalActivity.getLibraryActivity()); + newParallelActivity.setLibraryActivityUiImage(this.getLibraryActivityUiImage()); + newParallelActivity.setLibraryActivity(this.getLibraryActivity()); return newParallelActivity; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/PermissionGateActivity.java =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/PermissionGateActivity.java (.../PermissionGateActivity.java) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/PermissionGateActivity.java (.../PermissionGateActivity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -118,36 +118,34 @@ } /** * Makes a copy of the PermissionGateActivity for authoring, preview and monitoring enviornment - * - * @param originalActivity The activity that needs to be deep-copied * @return PermissionGateActivity Returns a deep-copy of the originalActivity */ - public static PermissionGateActivity createCopy(PermissionGateActivity originalActivity){ + public Activity createCopy(){ PermissionGateActivity newPermissionGateActivity = new PermissionGateActivity(); newPermissionGateActivity.setGateOpen(new Boolean(false)); - newPermissionGateActivity.setGateActivityLevelId(originalActivity.getGateActivityLevelId()); + newPermissionGateActivity.setGateActivityLevelId(this.getGateActivityLevelId()); - newPermissionGateActivity.setActivityUIID(originalActivity.getActivityUIID()); - newPermissionGateActivity.setDescription(originalActivity.getDescription()); - newPermissionGateActivity.setTitle(originalActivity.getTitle()); - newPermissionGateActivity.setHelpText(originalActivity.getHelpText()); - newPermissionGateActivity.setXcoord(originalActivity.getXcoord()); - newPermissionGateActivity.setYcoord(originalActivity.getYcoord()); - newPermissionGateActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + newPermissionGateActivity.setActivityUIID(this.getActivityUIID()); + newPermissionGateActivity.setDescription(this.getDescription()); + newPermissionGateActivity.setTitle(this.getTitle()); + newPermissionGateActivity.setHelpText(this.getHelpText()); + newPermissionGateActivity.setXcoord(this.getXcoord()); + newPermissionGateActivity.setYcoord(this.getYcoord()); + newPermissionGateActivity.setActivityTypeId(this.getActivityTypeId()); - newPermissionGateActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); - newPermissionGateActivity.setApplyGrouping(originalActivity.getApplyGrouping()); - newPermissionGateActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newPermissionGateActivity.setGroupingSupportType(this.getGroupingSupportType()); + newPermissionGateActivity.setApplyGrouping(this.getApplyGrouping()); + newPermissionGateActivity.setActivityCategoryID(this.getActivityCategoryID()); - newPermissionGateActivity.setGrouping(originalActivity.getGrouping()); - newPermissionGateActivity.setGroupingUIID(originalActivity.getGroupingUIID()); - newPermissionGateActivity.setLearningLibrary(originalActivity.getLearningLibrary()); - newPermissionGateActivity.setDefineLater(originalActivity.getDefineLater()); + newPermissionGateActivity.setGrouping(this.getGrouping()); + newPermissionGateActivity.setGroupingUIID(this.getGroupingUIID()); + newPermissionGateActivity.setLearningLibrary(this.getLearningLibrary()); + newPermissionGateActivity.setDefineLater(this.getDefineLater()); newPermissionGateActivity.setCreateDateTime(new Date()); - newPermissionGateActivity.setRunOffline(originalActivity.getRunOffline()); - newPermissionGateActivity.setLibraryActivity(originalActivity.getLibraryActivity()); - newPermissionGateActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); + newPermissionGateActivity.setRunOffline(this.getRunOffline()); + newPermissionGateActivity.setLibraryActivity(this.getLibraryActivity()); + newPermissionGateActivity.setLibraryActivityUiImage(this.getLibraryActivityUiImage()); return newPermissionGateActivity; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java =================================================================== diff -u -r55901923afea1cbd769d8daa05051aa050bb99b6 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java (.../RandomGrouping.java) (revision 55901923afea1cbd769d8daa05051aa050bb99b6) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/RandomGrouping.java (.../RandomGrouping.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -96,20 +96,17 @@ return true; } /** - * This method creates a deep copy of the Grouping passed - * as an argument. - * - * @param originalGrouping The Grouping object to be deep copied + * This method creates a deep copy of the Grouping * @return RandomGrouping The deep copied Grouping object */ - public static RandomGrouping createCopy(RandomGrouping originalGrouping){ + public Grouping createCopy(){ RandomGrouping randomGrouping = new RandomGrouping(); - randomGrouping.setMaxNumberOfGroups(originalGrouping.getMaxNumberOfGroups()); - randomGrouping.setGroupingUIID(originalGrouping.getGroupingUIID()); + randomGrouping.setMaxNumberOfGroups(this.getMaxNumberOfGroups()); + randomGrouping.setGroupingUIID(this.getGroupingUIID()); - randomGrouping.setNumberOfGroups(originalGrouping.getNumberOfGroups()); - randomGrouping.setLearnersPerGroup(originalGrouping.getLearnersPerGroup()); + randomGrouping.setNumberOfGroups(this.getNumberOfGroups()); + randomGrouping.setLearnersPerGroup(this.getLearnersPerGroup()); return randomGrouping; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ScheduleGateActivity.java =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ScheduleGateActivity.java (.../ScheduleGateActivity.java) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ScheduleGateActivity.java (.../ScheduleGateActivity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -176,41 +176,39 @@ } /** * Makes a copy of the ScheduleGateActivity for authoring, preview and monitoring enviornment - * - * @param originalActivity The activity that needs to be deep-copied * @return ScheduleGateActivity Returns a deep-copy of the originalActivity */ - public static ScheduleGateActivity createCopy(ScheduleGateActivity originalActivity){ + public Activity createCopy(){ ScheduleGateActivity newScheduleGateActivity = new ScheduleGateActivity(); - newScheduleGateActivity.setGateActivityLevelId(originalActivity.getGateActivityLevelId()); + newScheduleGateActivity.setGateActivityLevelId(this.getGateActivityLevelId()); newScheduleGateActivity.setGateOpen(new Boolean(false)); - newScheduleGateActivity.setGateEndTimeOffset(originalActivity.getGateEndTimeOffset()); - newScheduleGateActivity.setGateStartTimeOffset(originalActivity.getGateStartTimeOffset()); - newScheduleGateActivity.setGateEndDateTime(originalActivity.getGateEndDateTime()); - newScheduleGateActivity.setGateStartDateTime(originalActivity.getGateStartDateTime()); + newScheduleGateActivity.setGateEndTimeOffset(this.getGateEndTimeOffset()); + newScheduleGateActivity.setGateStartTimeOffset(this.getGateStartTimeOffset()); + newScheduleGateActivity.setGateEndDateTime(this.getGateEndDateTime()); + newScheduleGateActivity.setGateStartDateTime(this.getGateStartDateTime()); - newScheduleGateActivity.setActivityUIID(originalActivity.getActivityUIID()); - newScheduleGateActivity.setDescription(originalActivity.getDescription()); - newScheduleGateActivity.setTitle(originalActivity.getTitle()); - newScheduleGateActivity.setHelpText(originalActivity.getHelpText()); - newScheduleGateActivity.setXcoord(originalActivity.getXcoord()); - newScheduleGateActivity.setYcoord(originalActivity.getYcoord()); - newScheduleGateActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + newScheduleGateActivity.setActivityUIID(this.getActivityUIID()); + newScheduleGateActivity.setDescription(this.getDescription()); + newScheduleGateActivity.setTitle(this.getTitle()); + newScheduleGateActivity.setHelpText(this.getHelpText()); + newScheduleGateActivity.setXcoord(this.getXcoord()); + newScheduleGateActivity.setYcoord(this.getYcoord()); + newScheduleGateActivity.setActivityTypeId(this.getActivityTypeId()); - newScheduleGateActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); - newScheduleGateActivity.setApplyGrouping(originalActivity.getApplyGrouping()); - newScheduleGateActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newScheduleGateActivity.setGroupingSupportType(this.getGroupingSupportType()); + newScheduleGateActivity.setApplyGrouping(this.getApplyGrouping()); + newScheduleGateActivity.setActivityCategoryID(this.getActivityCategoryID()); - newScheduleGateActivity.setGrouping(originalActivity.getGrouping()); - newScheduleGateActivity.setGroupingUIID(originalActivity.getGroupingUIID()); - newScheduleGateActivity.setLearningLibrary(originalActivity.getLearningLibrary()); - newScheduleGateActivity.setDefineLater(originalActivity.getDefineLater()); + newScheduleGateActivity.setGrouping(this.getGrouping()); + newScheduleGateActivity.setGroupingUIID(this.getGroupingUIID()); + newScheduleGateActivity.setLearningLibrary(this.getLearningLibrary()); + newScheduleGateActivity.setDefineLater(this.getDefineLater()); newScheduleGateActivity.setCreateDateTime(new Date()); - newScheduleGateActivity.setRunOffline(originalActivity.getRunOffline()); - newScheduleGateActivity.setLibraryActivity(originalActivity.getLibraryActivity()); - newScheduleGateActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); + newScheduleGateActivity.setRunOffline(this.getRunOffline()); + newScheduleGateActivity.setLibraryActivity(this.getLibraryActivity()); + newScheduleGateActivity.setLibraryActivityUiImage(this.getLibraryActivityUiImage()); return newScheduleGateActivity; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java (.../SequenceActivity.java) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/SequenceActivity.java (.../SequenceActivity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -111,34 +111,32 @@ /** * Makes a copy of the SequenceActivity for authoring, preview and monitoring enviornment - * - * @param originalActivity The activity that needs to be deep-copied * @return SequenceActivity Returns a deep-copy of the originalActivity */ - public static SequenceActivity createCopy(SequenceActivity originalActivity){ + public Activity createCopy(){ SequenceActivity newSequenceActivity = new SequenceActivity(); - newSequenceActivity.setActivityUIID(originalActivity.getActivityUIID()); - newSequenceActivity.setDescription(originalActivity.getDescription()); - newSequenceActivity.setTitle(originalActivity.getTitle()); - newSequenceActivity.setHelpText(originalActivity.getHelpText()); - newSequenceActivity.setXcoord(originalActivity.getXcoord()); - newSequenceActivity.setYcoord(originalActivity.getYcoord()); - newSequenceActivity.setActivityTypeId(originalActivity.getActivityTypeId()); + newSequenceActivity.setActivityUIID(this.getActivityUIID()); + newSequenceActivity.setDescription(this.getDescription()); + newSequenceActivity.setTitle(this.getTitle()); + newSequenceActivity.setHelpText(this.getHelpText()); + newSequenceActivity.setXcoord(this.getXcoord()); + newSequenceActivity.setYcoord(this.getYcoord()); + newSequenceActivity.setActivityTypeId(this.getActivityTypeId()); - newSequenceActivity.setGroupingSupportType(originalActivity.getGroupingSupportType()); - newSequenceActivity.setApplyGrouping(originalActivity.getApplyGrouping()); - newSequenceActivity.setActivityCategoryID(originalActivity.getActivityCategoryID()); + newSequenceActivity.setGroupingSupportType(this.getGroupingSupportType()); + newSequenceActivity.setApplyGrouping(this.getApplyGrouping()); + newSequenceActivity.setActivityCategoryID(this.getActivityCategoryID()); - newSequenceActivity.setGrouping(originalActivity.getGrouping()); - newSequenceActivity.setGroupingUIID(originalActivity.getGroupingUIID()); - newSequenceActivity.setLearningLibrary(originalActivity.getLearningLibrary()); - newSequenceActivity.setDefineLater(originalActivity.getDefineLater()); + newSequenceActivity.setGrouping(this.getGrouping()); + newSequenceActivity.setGroupingUIID(this.getGroupingUIID()); + newSequenceActivity.setLearningLibrary(this.getLearningLibrary()); + newSequenceActivity.setDefineLater(this.getDefineLater()); newSequenceActivity.setCreateDateTime(new Date()); - newSequenceActivity.setRunOffline(originalActivity.getRunOffline()); + newSequenceActivity.setRunOffline(this.getRunOffline()); - newSequenceActivity.setLibraryActivity(originalActivity.getLibraryActivity()); - newSequenceActivity.setLibraryActivityUiImage(originalActivity.getLibraryActivityUiImage()); + newSequenceActivity.setLibraryActivity(this.getLibraryActivity()); + newSequenceActivity.setLibraryActivityUiImage(this.getLibraryActivityUiImage()); return newSequenceActivity; } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/SimpleActivity.java =================================================================== diff -u -r42ddbd4c509c956cc9f5328cea8d45d6e593e796 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/SimpleActivity.java (.../SimpleActivity.java) (revision 42ddbd4c509c956cc9f5328cea8d45d6e593e796) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/SimpleActivity.java (.../SimpleActivity.java) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -24,7 +24,11 @@ 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.dto.MonitoringActivityDTO; import org.lamsfoundation.lams.learningdesign.strategy.SimpleActivityStrategy; @@ -109,7 +113,14 @@ } - public Integer[] getContributionType(){ - return simpleActivityStrategy.getContributionType(); + public Set getMonitoringActivityDTO() + { + HashSet dtoSet = new HashSet(); + Integer[] contributionType = simpleActivityStrategy.getContributionType(); + for(int i=0;i + - + + + @@ -64,7 +67,7 @@ @@ -73,20 +76,25 @@ path="/TestScheduler.jsp" redirect="false" /> + @@ -105,11 +113,6 @@ path=".viewScheduleGate" redirect="false" /> - Index: lams_monitoring/test/web/WEB-INF/web.xml =================================================================== diff -u -r6e5832d17263bc6c6f7683733e91e22f97eab569 -r79c858a92c17ab3ca404cab4a0cf6094254e68d5 --- lams_monitoring/test/web/WEB-INF/web.xml (.../web.xml) (revision 6e5832d17263bc6c6f7683733e91e22f97eab569) +++ lams_monitoring/test/web/WEB-INF/web.xml (.../web.xml) (revision 79c858a92c17ab3ca404cab4a0cf6094254e68d5) @@ -31,10 +31,13 @@ contextConfigLocation - /WEB-INF/spring/applicationContext.xml /WEB-INF/spring/toolApplicationContext.xml - /WEB-INF/spring/monitoringApplicationContext.xml /WEB-INF/spring/lessonApplicationContext.xml - /WEB-INF/spring/authoringApplicationContext.xml - /WEB-INF/spring/dataAccessContext.xml /WEB-INF/spring/surveyApplicationContext.xml + classpath:/org/lamsfoundation/lams/applicationContext.xml + classpath:/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml + classpath:/org/lamsfoundation/lams/tool/toolApplicationContext.xml + classpath:/org/lamsfoundation/lams/learning/learningApplicationContext.xml + classpath:/org/lamsfoundation/lams/authoring/authoringApplicationContext.xml + classpath:/org/lamsfoundation/lams/monitoring/monitoringApplicationContext.xml + classpath*:applicationContext.xml @@ -61,7 +64,7 @@ HibernateFilter - org.springframework.orm.hibernate3.support.OpenSessionInViewFilter + org.lamsfoundation.lams.util.CustomizedOpenSessionInViewFilter sessionFactoryBeanName coreSessionFactory @@ -101,11 +104,11 @@ *.jsp - + + + org.springframework.web.context.ContextLoaderListener + + - - context - org.springframework.web.context.ContextLoaderServlet - 1 - - action org.apache.struts.action.ActionServlet