Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml =================================================================== diff -u -r3fd86a5918d046985d4fb7053d30d208bc35f4f6 -rac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 3fd86a5918d046985d4fb7053d30d208bc35f4f6) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -269,6 +269,11 @@ @hibernate.property column="options_instructions" length="65535" + + + @hibernate.class + + Index: lams_common/db/sql/insert_types_data.sql =================================================================== diff -u -r3fd86a5918d046985d4fb7053d30d208bc35f4f6 -rac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83 --- lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision 3fd86a5918d046985d4fb7053d30d208bc35f4f6) +++ lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -79,6 +79,7 @@ INSERT INTO lams_learning_activity_type VALUES (10, 'BRANCHING_CHOSEN'); INSERT INTO lams_learning_activity_type VALUES (11, 'BRANCHING_GROUP'); INSERT INTO lams_learning_activity_type VALUES (12, 'BRANCHING_TOOL'); +INSERT INTO lams_learning_activity_type VALUES (13, 'OPTIONS_WITH_SEQUENCES'); INSERT INTO lams_gate_activity_level VALUES (1, 'LEARNER'); INSERT INTO lams_gate_activity_level VALUES (2, 'GROUP'); Index: lams_common/db/sql/updatescripts/alter_21_branching.sql =================================================================== diff -u -r07578aaa7f526c0c1b537c127cf5f88e0410d472 -rac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83 --- lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision 07578aaa7f526c0c1b537c127cf5f88e0410d472) +++ lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -65,7 +65,9 @@ INSERT INTO lams_learning_activity_type VALUES (10, 'BRANCHING_CHOSEN'); INSERT INTO lams_learning_activity_type VALUES (11, 'BRANCHING_GROUP'); INSERT INTO lams_learning_activity_type VALUES (12, 'BRANCHING_TOOL'); +INSERT INTO lams_learning_activity_type VALUES (13, 'OPTIONS_WITH_SEQUENCES'); + INSERT INTO lams_system_tool (system_tool_id, learning_activity_type_id, tool_display_name, description, learner_url, learner_preview_url, learner_progress_url, export_pfolio_learner_url, export_pfolio_class_url, monitor_url, contribute_url, create_date_time) Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== diff -u -r4bf4556646feb7431bf82f3eebc4c3353d5ae4f2 -rac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 4bf4556646feb7431bf82f3eebc4c3353d5ae4f2) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -62,6 +62,10 @@ * available for a LearningDesign. As new types of activities * are added, these constants must be updated, as well as * ActivityDAO.getActivityByActivityId() + * + * OPTIONS_WITH_SEQUENCES_TYPE is set up just to support Flash. + * The server treads OptionsActivity and OptionalSequenceActivity + * the same. */ /* *****************************************************************/ public static final int TOOL_ACTIVITY_TYPE = 1; @@ -76,6 +80,7 @@ public static final int CHOSEN_BRANCHING_ACTIVITY_TYPE = 10; public static final int GROUP_BRANCHING_ACTIVITY_TYPE = 11; public static final int TOOL_BRANCHING_ACTIVITY_TYPE = 12; + public static final int OPTIONS_WITH_SEQUENCES_TYPE = 13; /******************************************************************/ /** @@ -367,6 +372,10 @@ activity = new ToolBranchingActivity(); activity.setActivityCategoryID(CATEGORY_SYSTEM); break; + case OPTIONS_WITH_SEQUENCES_TYPE: + activity = new OptionsWithSequencesActivity(); + activity.setActivityCategoryID(CATEGORY_SYSTEM); + break; default: activity = new GroupingActivity(); activity.setActivityCategoryID(CATEGORY_SYSTEM); @@ -854,14 +863,15 @@ public boolean isOptionsActivity() { - return getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE; + return getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE || getActivityTypeId().intValue()==OPTIONS_WITH_SEQUENCES_TYPE ; } public boolean isComplexActivity() { return getActivityTypeId().intValue()== SEQUENCE_ACTIVITY_TYPE || getActivityTypeId().intValue()== PARALLEL_ACTIVITY_TYPE || getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE || + getActivityTypeId().intValue()== OPTIONS_WITH_SEQUENCES_TYPE || getActivityTypeId().intValue()== CHOSEN_BRANCHING_ACTIVITY_TYPE || getActivityTypeId().intValue()== GROUP_BRANCHING_ACTIVITY_TYPE || getActivityTypeId().intValue()== TOOL_BRANCHING_ACTIVITY_TYPE; Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsWithSequencesActivity.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsWithSequencesActivity.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/OptionsWithSequencesActivity.java (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -0,0 +1,35 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.learningdesign; + +/** + * The OptionsWithSequencesActivity was created to allow Flash to know whether or + * not to expect sequences. The progress engine treads OptionsWithSequencesActivity + * and OptionsActivity exactly the same. + * + * @hibernate.class + */ +public class OptionsWithSequencesActivity extends OptionsActivity { + +} Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java =================================================================== diff -u -r6e041b14d83c90f3f910fac33c7755fca1486b3e -rac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java (.../ActivityDAO.java) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java (.../ActivityDAO.java) (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -33,6 +33,7 @@ import org.lamsfoundation.lams.learningdesign.GroupingActivity; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.OptionsActivity; +import org.lamsfoundation.lams.learningdesign.OptionsWithSequencesActivity; import org.lamsfoundation.lams.learningdesign.ParallelActivity; import org.lamsfoundation.lams.learningdesign.PermissionGateActivity; import org.lamsfoundation.lams.learningdesign.ScheduleGateActivity; @@ -108,6 +109,8 @@ return getActivityByActivityId(activityId,GroupBranchingActivity.class); case Activity.TOOL_BRANCHING_ACTIVITY_TYPE: return getActivityByActivityId(activityId,ToolBranchingActivity.class); + case Activity.OPTIONS_WITH_SEQUENCES_TYPE: + return getActivityByActivityId(activityId,OptionsWithSequencesActivity.class); default: break; } } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java =================================================================== diff -u -r4bf4556646feb7431bf82f3eebc4c3353d5ae4f2 -rac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision 4bf4556646feb7431bf82f3eebc4c3353d5ae4f2) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -238,83 +238,7 @@ /***************************************************************************** * Constructors *****************************************************************************/ - public AuthoringActivityDTO(Long activityID, Integer activityUIID, - String description, String title, String helpText, Integer xcoord, - Integer ycoord, Long parentActivityID, Integer parentUIID, - Integer activityTypeId, Long groupingID, Integer groupingUIID, - Integer orderID, Boolean defineLater, Long learningDesignID, - Long learningLibraryID, Date createDateTime, Boolean runOffline, - String languageFile, - Integer maxOptions, Integer minOptions, - String optionsInstructions, String toolSignature, Long toolID, Long toolContentID, - Integer activityCategoryID, Integer gateActivityLevelID, - Boolean gateOpen, Long gateStartTimeOffset, Long gateEndTimeOffset, - Date gateStartDateTime, Date gateEndDateTime, - String libraryActivityUiImage, Long createGroupingID, - Integer createGroupingUIID, Long libraryActivityID, - Boolean applyGrouping,Integer groupingSupportType, - Integer groupingType,GroupingDTO groupingDTO, - Boolean readOnly, Boolean initialised, Boolean stopAfterActivity, - ArrayList inputActivities, Integer toolActivityUIID, Integer defaultActivityUIID, - Integer startXCoord, Integer startYCoord, Integer endXCoord, Integer endYCoord) { - super(); - this.activityID = activityID; - this.activityUIID = activityUIID; - this.description = description; - this.activityTitle = title; - this.helpText = helpText; - this.xCoord = xcoord; - this.yCoord = ycoord; - this.parentActivityID = parentActivityID; - this.parentUIID = parentUIID; - this.activityTypeID = activityTypeId; - this.groupingID = groupingID; - this.groupingUIID = groupingUIID; - this.orderID = orderID; - this.defineLater = defineLater; - this.learningDesignID = learningDesignID; - this.learningLibraryID = learningLibraryID; - this.createDateTime = createDateTime; - this.runOffline = runOffline; - this.languageFile = languageFile; - this.maxOptions = maxOptions; - this.minOptions = minOptions; - this.optionsInstructions = optionsInstructions; - this.toolSignature = toolSignature; - this.toolID = toolID; - this.toolContentID = toolContentID; - this.activityCategoryID = activityCategoryID; - this.gateActivityLevelID = gateActivityLevelID; - this.gateOpen = gateOpen; - this.gateStartTimeOffset = gateStartTimeOffset; - this.gateEndTimeOffset = gateEndTimeOffset; - this.gateStartDateTime = gateStartDateTime; - this.gateEndDateTime = gateEndDateTime; - this.libraryActivityUIImage = libraryActivityUiImage; - this.createGroupingID = createGroupingID; - this.createGroupingUIID = createGroupingUIID; - this.libraryActivityID = libraryActivityID; - this.applyGrouping = applyGrouping; - this.groupingSupportType = groupingSupportType; - this.groupingType = groupingType; - //this.groupingDTO = groupingDTO; - this.readOnly = readOnly; - this.initialised = initialised; - this.stopAfterActivity=stopAfterActivity; - this.toolActivityUIID=toolActivityUIID; - this.inputActivities=inputActivities; - // Complex Activity field - this.defaultActivityUIID = defaultActivityUIID; - // Branching Activity fields - this.startXCoord = startXCoord; - this.startYCoord = startYCoord; - this.endXCoord = endXCoord; - this.endYCoord = endYCoord; - - } public AuthoringActivityDTO(Activity activity, ArrayList branchMappings){ - processActivityType(activity, branchMappings); - this.activityID = activity.getActivityId(); this.activityUIID = activity.getActivityUIID(); this.description = activity.getDescription(); @@ -327,7 +251,7 @@ null; this.parentUIID = activity.getParentUIID(); this.activityTypeID = activity.getActivityTypeId(); - + this.groupingID = activity.getGrouping()!=null? activity.getGrouping().getGroupingId(): null; @@ -358,6 +282,7 @@ this.inputActivities = activity.getInputActivityUIIDs(); this.toolActivityUIID = activity.getToolInputActivityUIID(); + processActivityType(activity, branchMappings); } @@ -788,6 +713,7 @@ if(!activityTypeId.equals(WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER)) this.activityTypeID = activityTypeId; } + /** * @param activityUIID The activityUIID to set. */ Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== diff -u -r8e575523eb6ec3117a7e444cf86c74874bc56b94 -rac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 8e575523eb6ec3117a7e444cf86c74874bc56b94) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision ac99dd8a79daaa42b1e6cdbe9b1a5fd197107b83) @@ -593,18 +593,14 @@ else if(actDto.getActivityTypeID().equals(Activity.SCHEDULE_GATE_ACTIVITY_TYPE) || actDto.getActivityTypeID().equals(Activity.PERMISSION_GATE_ACTIVITY_TYPE) || actDto.getActivityTypeID().equals(Activity.SYNCH_GATE_ACTIVITY_TYPE)) att = new Attribute(IMS_ATTR_REF,IMS_PREFIX_ACTIVITY_REF + IMS_TAG_GATE + "-" + actDto.getActivityID()); - else if(actDto.getActivityTypeID() == Activity.SEQUENCE_ACTIVITY_TYPE - || actDto.getActivityTypeID() == Activity.PARALLEL_ACTIVITY_TYPE - || actDto.getActivityTypeID() == Activity.OPTIONS_ACTIVITY_TYPE) { - - if(actDto.getActivityTypeID().equals(Activity.OPTIONS_ACTIVITY_TYPE)) + else if (actDto.getActivityTypeID().equals(Activity.OPTIONS_ACTIVITY_TYPE) + || actDto.getActivityTypeID().equals(Activity.OPTIONS_WITH_SEQUENCES_TYPE)) att = new Attribute(IMS_ATTR_REF, IMS_PREFIX_COMPLEX_REF + IMS_TAG_OPTIONAL + "-" + actDto.getActivityID()); - else if(actDto.getActivityTypeID().equals(Activity.PARALLEL_ACTIVITY_TYPE)) + else if(actDto.getActivityTypeID().equals(Activity.PARALLEL_ACTIVITY_TYPE)) att = new Attribute(IMS_ATTR_REF, IMS_PREFIX_COMPLEX_REF + IMS_TAG_PARALLEL + "-" + actDto.getActivityID()); - else if(actDto.getActivityTypeID().equals(Activity.SEQUENCE_ACTIVITY_TYPE)) + else if(actDto.getActivityTypeID().equals(Activity.SEQUENCE_ACTIVITY_TYPE)) att = new Attribute(IMS_ATTR_REF, IMS_PREFIX_COMPLEX_REF + IMS_TAG_SEQUENCE + "-" + actDto.getActivityID()); - - } else + else att = new Attribute(IMS_ATTR_REF,IMS_PREFIX_ACTIVITY_REF + actDto.getToolSignature() + "-" + actDto.getToolContentID()); ref.setAttribute(att); @@ -2035,6 +2031,7 @@ case Activity.PARALLEL_ACTIVITY_TYPE: break; case Activity.OPTIONS_ACTIVITY_TYPE: + case Activity.OPTIONS_WITH_SEQUENCES_TYPE: ((OptionsActivity)act).setMaxNumberOfOptions(actDto.getMaxOptions()); ((OptionsActivity)act).setMinNumberOfOptions(actDto.getMinOptions()); ((OptionsActivity)act).setOptionsInstructions(actDto.getOptionsInstructions());