Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -rc27d97af7a284e7fb373be1efb26af904643329b -r6e041b14d83c90f3f910fac33c7755fca1486b3e
Binary files differ
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml
===================================================================
diff -u -rfcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4 -r6e041b14d83c90f3f910fac33c7755fca1486b3e
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision fcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -263,9 +263,15 @@
@hibernate.class
-
+
@hibernate.class
+
+ @hibernate.class
+
+
+ @hibernate.class
+
Index: lams_common/db/sql/insert_types_data.sql
===================================================================
diff -u -rfcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4 -r6e041b14d83c90f3f910fac33c7755fca1486b3e
--- lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision fcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4)
+++ lams_common/db/sql/insert_types_data.sql (.../insert_types_data.sql) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -76,7 +76,9 @@
INSERT INTO lams_learning_activity_type VALUES (7, 'OPTIONS');
INSERT INTO lams_learning_activity_type VALUES (8, 'SEQUENCE');
INSERT INTO lams_learning_activity_type VALUES (9, 'GATE_SYSTEM');
-INSERT INTO lams_learning_activity_type VALUES (10, 'BRANCHING');
+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_gate_activity_level VALUES (1, 'LEARNER');
INSERT INTO lams_gate_activity_level VALUES (2, 'GROUP');
@@ -178,13 +180,30 @@
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)
-VALUES (6, 10, 'Branching', 'Contains multiple sequence activities.',
- 'learning/branching.do?method=performBranching', 'learning/branching.do?method=performBranching',
- 'learning/branching.do?method=viewBranching&mode=teacher', 'learning/branchingExportPortfolio?mode=learner',
- 'learning/branchingExportPortfolio?mode=teacher', 'monitoring/branching.do?method=startBranching',
- 'monitoring/branching.do?method=startBranching', now() );
+VALUES (6, 10, 'Monitor Chosen Branching', 'Select between multiple sequence activities, with the branch chosen in monitoring.',
+ 'learning/branching.do?method=performBranching&type=chosen', 'learning/branching.do?method=performBranching&type=chosen',
+ 'learning/branching.do?method=viewBranching&mode=teacher&type=chosen', 'learning/branchingExportPortfolio?mode=learner&type=chosen',
+ 'learning/branchingExportPortfolio?mode=teacher&type=chosen', 'monitoring/branching.do?method=assignBranch&type=chosen',
+ 'monitoring/branching.do?method=assignBranch&type=chosen', now());
+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)
+VALUES (7, 11, 'Group Based Branching', 'Select between multiple sequence activities, with the branch chosen by an existing group.',
+ 'learning/branching.do?method=performBranching&type=group', 'learning/branching.do?method=performBranching&type=group',
+ 'learning/branching.do?method=viewBranching&mode=teacher&type=group', 'learning/branchingExportPortfolio?mode=learner&type=group',
+ 'learning/branchingExportPortfolio?mode=teacher&type=group', 'monitoring/branching.do?method=assignBranch&type=group',
+ 'monitoring/branching.do?method=assignBranch&type=group', now());
+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)
+VALUES (8, 12, 'Tool Output Based Branching', 'Select between multiple sequence activities, with the branch chosen on results of another activity.',
+ 'learning/branching.do?method=performBranching&type=tool', 'learning/branching.do?method=performBranching&type=tool',
+ 'learning/branching.do?method=viewBranching&mode=teacher&type=tool', 'learning/branchingExportPortfolio?mode=learner&type=tool',
+ 'learning/branchingExportPortfolio?mode=teacher&type=tool', 'monitoring/branching.do?method=assignBranch&type=tool',
+ 'monitoring/branching.do?method=assignBranch&type=tool', now());
+
-- Supported Locales
INSERT INTO lams_supported_locale (locale_id, language_iso_code, country_iso_code, description, direction)
VALUES (1, 'en', 'AU', 'English (Australia)', 'LTR');
Index: lams_common/db/sql/updatescripts/alter_21_branching.sql
===================================================================
diff -u -rd7c09e6b65cd3caf6b63c9b806e10bc0b2834903 -r6e041b14d83c90f3f910fac33c7755fca1486b3e
--- lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision d7c09e6b65cd3caf6b63c9b806e10bc0b2834903)
+++ lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -1,13 +1,34 @@
-- Script to be run for LAMS 2.1 release, on LAMS 2.0.3 tables.
-- Adds all the data needed for branching
-INSERT INTO lams_learning_activity_type VALUES (10, 'BRANCHING');
+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_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)
-VALUES (6, 10, 'Branching', 'Contains multiple sequence activities.',
- 'learning/branching.do?method=performBranching', 'learning/branching.do?method=performBranching',
- 'learning/branching.do?method=viewBranching&mode=teacher', 'learning/branchingExportPortfolio?mode=learner',
- 'learning/branchingExportPortfolio?mode=teacher', 'monitoring/branching.do?method=startBranching',
- 'monitoring/branching.do?method=startBranching', now() );
+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)
+VALUES (6, 10, 'Monitor Chosen Branching', 'Select between multiple sequence activities, with the branch chosen in monitoring.',
+ 'learning/branching.do?method=performBranching&type=chosen', 'learning/branching.do?method=performBranching&type=chosen',
+ 'learning/branching.do?method=viewBranching&mode=teacher&type=chosen', 'learning/branchingExportPortfolio?mode=learner&type=chosen',
+ 'learning/branchingExportPortfolio?mode=teacher&type=chosen', 'monitoring/branching.do?method=assignBranch&type=chosen',
+ 'monitoring/branching.do?method=assignBranch&type=chosen', now());
+
+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)
+VALUES (7, 11, 'Group Based Branching', 'Select between multiple sequence activities, with the branch chosen by an existing group.',
+ 'learning/branching.do?method=performBranching&type=group', 'learning/branching.do?method=performBranching&type=group',
+ 'learning/branching.do?method=viewBranching&mode=teacher&type=group', 'learning/branchingExportPortfolio?mode=learner&type=group',
+ 'learning/branchingExportPortfolio?mode=teacher&type=group', 'monitoring/branching.do?method=assignBranch&type=group',
+ 'monitoring/branching.do?method=assignBranch&type=group', now());
+
+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)
+VALUES (8, 12, 'Tool Output Based Branching', 'Select between multiple sequence activities, with the branch chosen on results of another activi\
+ty.',
+ 'learning/branching.do?method=performBranching&type=tool', 'learning/branching.do?method=performBranching&type=tool',
+ 'learning/branching.do?method=viewBranching&mode=teacher&type=tool', 'learning/branchingExportPortfolio?mode=learner&type=tool',
+ 'learning/branchingExportPortfolio?mode=teacher&type=tool', 'monitoring/branching.do?method=assignBranch&type=tool',
+ 'monitoring/branching.do?method=assignBranch&type=tool', now());
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java
===================================================================
diff -u -rfcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4 -r6e041b14d83c90f3f910fac33c7755fca1486b3e
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision fcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -70,7 +70,9 @@
public static final int OPTIONS_ACTIVITY_TYPE = 7;
public static final int SEQUENCE_ACTIVITY_TYPE = 8;
public static final int SYSTEM_GATE_ACTIVITY_TYPE = 9;
- public static final int BRANCHING_ACTIVITY_TYPE = 10;
+ 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;
/******************************************************************/
/**
@@ -330,10 +332,18 @@
activity = new SystemGateActivity();
activity.setActivityCategoryID(CATEGORY_SYSTEM);
break;
- case BRANCHING_ACTIVITY_TYPE:
- activity = new BranchingActivity();
+ case CHOSEN_BRANCHING_ACTIVITY_TYPE:
+ activity = new ChosenBranchingActivity();
activity.setActivityCategoryID(CATEGORY_SYSTEM);
break;
+ case GROUP_BRANCHING_ACTIVITY_TYPE:
+ activity = new GroupBranchingActivity();
+ activity.setActivityCategoryID(CATEGORY_SYSTEM);
+ break;
+ case TOOL_BRANCHING_ACTIVITY_TYPE:
+ activity = new ToolBranchingActivity();
+ activity.setActivityCategoryID(CATEGORY_SYSTEM);
+ break;
default:
activity = new GroupingActivity();
activity.setActivityCategoryID(CATEGORY_SYSTEM);
@@ -799,7 +809,9 @@
return getActivityTypeId().intValue()== SEQUENCE_ACTIVITY_TYPE ||
getActivityTypeId().intValue()== PARALLEL_ACTIVITY_TYPE ||
getActivityTypeId().intValue()== OPTIONS_ACTIVITY_TYPE ||
- getActivityTypeId().intValue()== BRANCHING_ACTIVITY_TYPE;
+ getActivityTypeId().intValue()== CHOSEN_BRANCHING_ACTIVITY_TYPE ||
+ getActivityTypeId().intValue()== GROUP_BRANCHING_ACTIVITY_TYPE ||
+ getActivityTypeId().intValue()== TOOL_BRANCHING_ACTIVITY_TYPE;
}
public boolean isSystemToolActivity()
@@ -862,14 +874,44 @@
}
/**
- * Check up whether an activity is branching activity or not.
+ * Check up whether an activity is some sort of branching activity or not
* @return is this activity a branching activity
*/
public boolean isBranchingActivity()
{
- return getActivityTypeId().intValue()== BRANCHING_ACTIVITY_TYPE;
+ return getActivityTypeId().intValue()== CHOSEN_BRANCHING_ACTIVITY_TYPE ||
+ getActivityTypeId().intValue()== GROUP_BRANCHING_ACTIVITY_TYPE ||
+ getActivityTypeId().intValue()== TOOL_BRANCHING_ACTIVITY_TYPE;
}
+
+ /**
+ * Check up whether an activity is branching activity based on the monitor choice or not.
+ * @return is this activity a branching activity
+ */
+ public boolean isChosenBranchingActivity()
+ {
+ return getActivityTypeId().intValue()== CHOSEN_BRANCHING_ACTIVITY_TYPE;
+ }
+
+ /**
+ * Check up whether an activity is branching activity based on an existing group or not.
+ * @return is this activity a branching activity
+ */
+ public boolean isGroupBranchingActivity()
+ {
+ return getActivityTypeId().intValue()== GROUP_BRANCHING_ACTIVITY_TYPE;
+ }
+
+ /**
+ * Check up whether an activity is branching activity based on another activity's output or not.
+ * @return is this activity a branching activity
+ */
+ public boolean isToolBranchingActivity()
+ {
+ return getActivityTypeId().intValue()== TOOL_BRANCHING_ACTIVITY_TYPE;
+ }
+
public boolean isActivityReadOnly()
{
return readOnly.equals(Boolean.TRUE);
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchingActivity.java
===================================================================
diff -u -rfcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4 -r6e041b14d83c90f3f910fac33c7755fca1486b3e
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchingActivity.java (.../BranchingActivity.java) (revision fcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/BranchingActivity.java (.../BranchingActivity.java) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -36,9 +36,9 @@
*
* @hibernate.class
*/
-public class BranchingActivity extends ComplexActivity implements Serializable {
+abstract public class BranchingActivity extends ComplexActivity implements Serializable {
- /** full constructor */
+ /** full constructor */
public BranchingActivity(Long activityId,
Integer id,
String description,
@@ -112,29 +112,14 @@
activities);
super.activityStrategy = new BranchingActivityStrategy(this);
}
+
/**
- * Makes a copy of the BranchingActivity for authoring, preview and monitoring enviornment
- * @return BranchingActivity Returns a deep-copy of the originalActivity
- */
- public Activity createCopy(){
-
- BranchingActivity newBranchingActivity = new BranchingActivity();
- copyToNewActivity(newBranchingActivity);
- return newBranchingActivity;
- }
-
- public String toString() {
- return new ToStringBuilder(this)
- .append("activityId", getActivityId())
- .toString();
- }
-
- /**
* @see org.lamsfoundation.lams.util.Nullable#isNull()
*/
public boolean isNull()
{
return false;
}
+
}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenBranchingActivity.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenBranchingActivity.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenBranchingActivity.java (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -0,0 +1,132 @@
+/****************************************************************
+ * 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;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.lamsfoundation.lams.learningdesign.strategy.BranchingActivityStrategy;
+
+/**
+ * @author Mitchell Seaton
+ * @version 2.1
+ *
+ * @hibernate.class
+*/
+public class ChosenBranchingActivity extends BranchingActivity implements Serializable {
+
+ private static final long serialVersionUID = 2735761434798827294L;
+
+ /** full constructor */
+ public ChosenBranchingActivity(Long activityId,
+ Integer id,
+ String description,
+ String title,
+ Integer xcoord,
+ Integer ycoord,
+ Integer orderId,
+ Boolean defineLater,
+ java.util.Date createDateTime,
+ LearningLibrary learningLibrary,
+ Activity parentActivity,
+ Activity libraryActivity,
+ Integer parentUIID,
+ LearningDesign learningDesign,
+ Grouping grouping,
+ Integer activityTypeId,
+ Transition transitionTo,
+ Transition transitionFrom,
+ String languageFile,
+ Set activities) {
+ super(activityId,
+ id,
+ description,
+ title,
+ xcoord,
+ ycoord,
+ orderId,
+ defineLater,
+ createDateTime,
+ learningLibrary,
+ parentActivity,
+ libraryActivity,
+ parentUIID,
+ learningDesign,
+ grouping,
+ activityTypeId,
+ transitionTo,
+ transitionFrom,
+ languageFile,
+ activities);
+ }
+
+ /** default constructor */
+ public ChosenBranchingActivity() {
+ super();
+ }
+
+ /** minimal constructor */
+ public ChosenBranchingActivity(Long activityId,
+ Boolean defineLater,
+ java.util.Date createDateTime,
+ org.lamsfoundation.lams.learningdesign.LearningLibrary learningLibrary,
+ org.lamsfoundation.lams.learningdesign.Activity parentActivity,
+ org.lamsfoundation.lams.learningdesign.LearningDesign learningDesign,
+ org.lamsfoundation.lams.learningdesign.Grouping grouping,
+ Integer activityTypeId,
+ Transition transitionTo,
+ Transition transitionFrom,
+ Set activities) {
+ super(activityId,
+ defineLater,
+ createDateTime,
+ learningLibrary,
+ parentActivity,
+ learningDesign,
+ grouping,
+ activityTypeId,
+ transitionTo,
+ transitionFrom,
+ activities);
+ }
+ /**
+ * Makes a copy of the BranchingActivity for authoring, preview and monitoring enviornment
+ * @return BranchingActivity Returns a deep-copy of the originalActivity
+ */
+ public Activity createCopy(){
+
+ ChosenBranchingActivity newBranchingActivity = new ChosenBranchingActivity();
+ copyToNewActivity(newBranchingActivity);
+ return newBranchingActivity;
+ }
+
+ public String toString() {
+ return new ToStringBuilder(this)
+ .append("activityId", getActivityId())
+ .toString();
+ }
+
+ }
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupBranchingActivity.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupBranchingActivity.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupBranchingActivity.java (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -0,0 +1,130 @@
+/****************************************************************
+ * 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;
+
+import java.io.Serializable;
+import java.util.Set;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+/**
+ * @author Mitchell Seaton
+ * @version 2.1
+ *
+ * @hibernate.class
+*/
+public class GroupBranchingActivity extends BranchingActivity implements Serializable {
+
+ private static final long serialVersionUID = 7426228060060498158L;
+
+ /** full constructor */
+ public GroupBranchingActivity(Long activityId,
+ Integer id,
+ String description,
+ String title,
+ Integer xcoord,
+ Integer ycoord,
+ Integer orderId,
+ Boolean defineLater,
+ java.util.Date createDateTime,
+ LearningLibrary learningLibrary,
+ Activity parentActivity,
+ Activity libraryActivity,
+ Integer parentUIID,
+ LearningDesign learningDesign,
+ Grouping grouping,
+ Integer activityTypeId,
+ Transition transitionTo,
+ Transition transitionFrom,
+ String languageFile,
+ Set activities) {
+ super(activityId,
+ id,
+ description,
+ title,
+ xcoord,
+ ycoord,
+ orderId,
+ defineLater,
+ createDateTime,
+ learningLibrary,
+ parentActivity,
+ libraryActivity,
+ parentUIID,
+ learningDesign,
+ grouping,
+ activityTypeId,
+ transitionTo,
+ transitionFrom,
+ languageFile,
+ activities);
+ }
+
+ /** default constructor */
+ public GroupBranchingActivity() {
+ super();
+ }
+
+ /** minimal constructor */
+ public GroupBranchingActivity(Long activityId,
+ Boolean defineLater,
+ java.util.Date createDateTime,
+ org.lamsfoundation.lams.learningdesign.LearningLibrary learningLibrary,
+ org.lamsfoundation.lams.learningdesign.Activity parentActivity,
+ org.lamsfoundation.lams.learningdesign.LearningDesign learningDesign,
+ org.lamsfoundation.lams.learningdesign.Grouping grouping,
+ Integer activityTypeId,
+ Transition transitionTo,
+ Transition transitionFrom,
+ Set activities) {
+ super(activityId,
+ defineLater,
+ createDateTime,
+ learningLibrary,
+ parentActivity,
+ learningDesign,
+ grouping,
+ activityTypeId,
+ transitionTo,
+ transitionFrom,
+ activities);
+ }
+ /**
+ * Makes a copy of the BranchingActivity for authoring, preview and monitoring enviornment
+ * @return BranchingActivity Returns a deep-copy of the originalActivity
+ */
+ public Activity createCopy(){
+
+ GroupBranchingActivity newBranchingActivity = new GroupBranchingActivity();
+ copyToNewActivity(newBranchingActivity);
+ return newBranchingActivity;
+ }
+
+ public String toString() {
+ return new ToStringBuilder(this)
+ .append("activityId", getActivityId())
+ .toString();
+ }
+
+}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolBranchingActivity.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolBranchingActivity.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolBranchingActivity.java (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -0,0 +1,131 @@
+/****************************************************************
+ * 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;
+
+import java.io.Serializable;
+import java.util.Set;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+/**
+ * @author Mitchell Seaton
+ * @version 2.1
+ *
+ * @hibernate.class
+*/
+public class ToolBranchingActivity extends BranchingActivity implements Serializable {
+
+ private static final long serialVersionUID = 8343443197068061495L;
+
+ /** full constructor */
+ public ToolBranchingActivity(Long activityId,
+ Integer id,
+ String description,
+ String title,
+ Integer xcoord,
+ Integer ycoord,
+ Integer orderId,
+ Boolean defineLater,
+ java.util.Date createDateTime,
+ LearningLibrary learningLibrary,
+ Activity parentActivity,
+ Activity libraryActivity,
+ Integer parentUIID,
+ LearningDesign learningDesign,
+ Grouping grouping,
+ Integer activityTypeId,
+ Transition transitionTo,
+ Transition transitionFrom,
+ String languageFile,
+ Set activities) {
+ super(activityId,
+ id,
+ description,
+ title,
+ xcoord,
+ ycoord,
+ orderId,
+ defineLater,
+ createDateTime,
+ learningLibrary,
+ parentActivity,
+ libraryActivity,
+ parentUIID,
+ learningDesign,
+ grouping,
+ activityTypeId,
+ transitionTo,
+ transitionFrom,
+ languageFile,
+ activities);
+ }
+
+ /** default constructor */
+ public ToolBranchingActivity() {
+ super();
+ }
+
+ /** minimal constructor */
+ public ToolBranchingActivity(Long activityId,
+ Boolean defineLater,
+ java.util.Date createDateTime,
+ org.lamsfoundation.lams.learningdesign.LearningLibrary learningLibrary,
+ org.lamsfoundation.lams.learningdesign.Activity parentActivity,
+ org.lamsfoundation.lams.learningdesign.LearningDesign learningDesign,
+ org.lamsfoundation.lams.learningdesign.Grouping grouping,
+ Integer activityTypeId,
+ Transition transitionTo,
+ Transition transitionFrom,
+ Set activities) {
+ super(activityId,
+ defineLater,
+ createDateTime,
+ learningLibrary,
+ parentActivity,
+ learningDesign,
+ grouping,
+ activityTypeId,
+ transitionTo,
+ transitionFrom,
+ activities);
+ }
+
+ /**
+ * Makes a copy of the BranchingActivity for authoring, preview and monitoring enviornment
+ * @return BranchingActivity Returns a deep-copy of the originalActivity
+ */
+ public Activity createCopy(){
+
+ ToolBranchingActivity newBranchingActivity = new ToolBranchingActivity();
+ copyToNewActivity(newBranchingActivity);
+ return newBranchingActivity;
+ }
+
+ public String toString() {
+ return new ToStringBuilder(this)
+ .append("activityId", getActivityId())
+ .toString();
+ }
+
+}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java
===================================================================
diff -u -rfcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4 -r6e041b14d83c90f3f910fac33c7755fca1486b3e
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java (.../ActivityDAO.java) (revision fcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/ActivityDAO.java (.../ActivityDAO.java) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -28,6 +28,8 @@
import org.hibernate.Query;
import org.lamsfoundation.lams.dao.hibernate.BaseDAO;
import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.ChosenBranchingActivity;
+import org.lamsfoundation.lams.learningdesign.GroupBranchingActivity;
import org.lamsfoundation.lams.learningdesign.GroupingActivity;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.learningdesign.OptionsActivity;
@@ -37,8 +39,8 @@
import org.lamsfoundation.lams.learningdesign.SystemGateActivity;
import org.lamsfoundation.lams.learningdesign.SequenceActivity;
import org.lamsfoundation.lams.learningdesign.SynchGateActivity;
-import org.lamsfoundation.lams.learningdesign.BranchingActivity;
import org.lamsfoundation.lams.learningdesign.ToolActivity;
+import org.lamsfoundation.lams.learningdesign.ToolBranchingActivity;
import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO;
import org.springframework.dao.DataRetrievalFailureException;
@@ -100,8 +102,12 @@
return getActivityByActivityId(activityId,SequenceActivity.class);
case Activity.SYSTEM_GATE_ACTIVITY_TYPE:
return getActivityByActivityId(activityId,SystemGateActivity.class);
- case Activity.BRANCHING_ACTIVITY_TYPE:
- return getActivityByActivityId(activityId,BranchingActivity.class);
+ case Activity.CHOSEN_BRANCHING_ACTIVITY_TYPE:
+ return getActivityByActivityId(activityId,ChosenBranchingActivity.class);
+ case Activity.GROUP_BRANCHING_ACTIVITY_TYPE:
+ return getActivityByActivityId(activityId,GroupBranchingActivity.class);
+ case Activity.TOOL_BRANCHING_ACTIVITY_TYPE:
+ return getActivityByActivityId(activityId,ToolBranchingActivity.class);
default: break;
}
}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/BranchingActivityStrategy.java
===================================================================
diff -u -rfcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4 -r6e041b14d83c90f3f910fac33c7755fca1486b3e
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/BranchingActivityStrategy.java (.../BranchingActivityStrategy.java) (revision fcdf3f7584d020b2aeb399a8cb0d0b55fb0e6be4)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/strategy/BranchingActivityStrategy.java (.../BranchingActivityStrategy.java) (revision 6e041b14d83c90f3f910fac33c7755fca1486b3e)
@@ -23,9 +23,15 @@
/* $$Id$$ */
package org.lamsfoundation.lams.learningdesign.strategy;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+
import org.lamsfoundation.lams.learningdesign.Activity;
-import org.lamsfoundation.lams.learningdesign.ComplexActivity;
+import org.lamsfoundation.lams.learningdesign.ActivityOrderComparator;
import org.lamsfoundation.lams.learningdesign.BranchingActivity;
+import org.lamsfoundation.lams.learningdesign.ComplexActivity;
+import org.lamsfoundation.lams.learningdesign.NullActivity;
/**
@@ -36,22 +42,31 @@
*/
public class BranchingActivityStrategy extends ComplexActivityStrategy
{
+
+ private static final long serialVersionUID = -1861859105441615028L;
+
private BranchingActivity branchingActivity = null;
public BranchingActivityStrategy(BranchingActivity branchingActivity) {
this.branchingActivity = branchingActivity;
}
/**
- * Regarding incomplete parallel activity, the next activity will always
- * be a waiting activity, which will finally translated into waiting
- * message.
+ * @todo The real strategy is ???
*
+ * For the moment, always get the first branch.
+ *
* @see org.lamsfoundation.lams.learningdesign.strategy.ComplexActivityStrategy#getNextActivityByParent(Activity, Activity)
*/
public Activity getNextActivityByParent(ComplexActivity activity, Activity currentChild)
{
- return null;
+ Set children = new TreeSet(new ActivityOrderComparator());
+ children.addAll(activity.getActivities());
+ Iterator iter = children.iterator();
+ if ( iter.hasNext() )
+ return (Activity) iter.next();
+
+ return new NullActivity();
}
/**
@@ -76,4 +91,6 @@
protected ComplexActivity getComplexActivity() {
return branchingActivity;
}
+
+
}